Calico的官方地址:https://docs.projectcalico.org/v3.8/getting-started/kubernetes/installation/flannel
安装canel之前需要注意
如果您使用的是pod CIDR 10.244.0.0/16,请跳至下一步。如果您使用的是其他pod CIDR,请使用以下命令设置一个名为POD_CIDR包含pod CIDR 的环境变量,并使用pod CIDR替换10.244.0.0/16清单。
POD_CIDR=""
sed -i -e “s?10.244.0.0/16?$POD_CIDR?g” canal.yaml

1.拉取资源清单
wget https://docs.projectcalico.org/v3.8/manifests/canal.yaml

2.创建canal
因为某种不可藐视的原因可能无法拉取镜像,需要提前把镜像准备好(所有节点都准备)

kubectl apply -f canal.yaml
3.canal的规则示例


这里的Ingress跟ingress规则不同,这里指的是通信流量,podselecto表示pod标签选择器,那么我们就可以让一组pod作为整体设置规则

NetworkPolicy在命令行中可以简写为netpol
(1)dev空间下的所有pod拒绝所有人访问

piVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingressnamespace: dev             #在那个命名空间下表示针对那个命名空间下的某些资源
spec:podSelector: {} #pod选择器设置为空,表示选择所有pod,即控制整个名称空间policyTypes:- Ingress #表示只对ingress生效,但是我们上面又把podSelector设置为空,表示默认是ingress拒绝所有的#但是我们这里面又没有加egress,所以默认egress是允许所有的

(2)允许别人访问dev命名空间下所有pod

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingressnamespace: dev
spec:podSelector: {} #pod选择器设置为空,表示选择所有pod,即控制整个名称空间ingress:- {}        #这样就表示所有放行policyTypes:- Ingress #表示只对ingress生效,但是我们上面又把podSelector设置为空,表示>默认是ingress拒绝所有的#但是我们这里面又没有加egress,所以默认egress是允许所有的

(3)dev空间下标签是app:nginx的pod允许10.244.0.0/16来访问80端口拒绝10.244.10.2/24
kubectl explain NetworkPolicy.spec.ingress.from

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingressnamespace: dev
spec:podSelector: matchLabels:app: nginxingress:- from: - ipBlock:             #放行IP,也可以写namespaceSelector,podSelectorcidr: 10.244.0.0/16  except:            #排除掉某个IP或者子网- 10.244.10.2/24ports:- protocol: TCP       #TCPport: 80           #80端口

(4)允许dev空间下所有标签为app:nginx的pod访问所有
出站与入站是类似的就是ingress和egress的区别

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingressnamespace: dev
spec:podSelector:matchLabels:app: nginxegress:- {}policyTypes:- Egress

(5)访问策略大概思路
①设置规则的时候需要想到,如果针对于一个名称空间下的pod设置来说,需要注意同一空间是否可以通信
网络策略:
名称空间:
②拒绝所有出站,入站;
③放行所有出战目标本名称空间内的所Pod
2和3执行以后同一个命名空间基本没问题,跨命名空间就需要额外设置
④根据具体的需求来设置ingress和egress,难点在于需求

Kubernetes基于canel的网络策略相关推荐

  1. 基于canel的网络策略

    基于canel的网络策略 canel工作的默认网段是192.168.0.0/16的网段 官网:https://docs.projectcalico.org/v3.2/introduction/ 参考地 ...

  2. Kubernetes 学习19基于canel的网络策略

    一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project cal ...

  3. k8s基于canel的网络策略

    Kubernetes能够把集群中不同Node节点上的Pod连接起来,并且默认情况下,每个Pod之间是可以相互访问的.但在某些场景中,不同的Pod不应该互通,这个时候就需要进行访问控制. 亲测:在kub ...

  4. 十九、基于canel的网络策略

    说明 Calico的官方地址:https://docs.projectcalico.org/v3.8/getting-started/kubernetes/installation/flannel 安 ...

  5. kubernetes学习笔记之十三:基于calico的网络策略入门

    一..安装calico [root@k8s-master01 ~]# kubectl apply -f https://docs.projectcalico.org/v3.3/getting-star ...

  6. canel的网络策略

    资源: https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/flannel 基于pod Egress ...

  7. Kubernetes网络策略,这一篇就够了

    目前许多组织都在采用Kubernetes来运行他们的应用程序.以至于有些人将Kubernetes称为新的数据中心操作系统.因此,组织开始将Kubernetes(通常缩写为k8s)视为关键任务平台,它需 ...

  8. Kubernetes Egress 网络策略指南

    作者:Viswajith Venugopal 翻译:Bach(才云) 校对:bot(才云).星空下的文仔(才云) Kubernetes 中的网络策略用于指定 Pod 组之间以及其与外部网络端点之间的通 ...

  9. Kubernetes之(十七)网络模型和网络策略

    目录 Kubernetes之(十七)网络模型和网络策略 Kubernetes网络模型和CNI插件 Docker网络模型 Kubernetes网络模型 Flannel网络插件 Direct routin ...

最新文章

  1. 【GStreamer】gstreamer工具详解之:gst-launch-1.0
  2. CloudStack无法添加模板和iso
  3. java命令行 引用jar包_java命令行引用jar包
  4. Spring Cache 实战:兼容所有缓存中间件!
  5. LINUX中注销其他已登陆帐户
  6. 论文笔记_S2D.62_VIL-SLAM_立体视觉惯性激光雷达同时定位和建图
  7. 一批工业机械网站交换友情链接
  8. html页面阅读pdf,在HTML中查看PDF文件的最佳阅读器-HTML PDF Viewer
  9. 《白话大数据与机器学习》
  10. cmd_vel速度话题的使用
  11. linux僵尸程序,什么是僵尸进程(zombie)?
  12. android 桌面动画,Android 如何在Launcher的桌面滑动时添加动画效果? M
  13. java基础知识和JDBC
  14. android连接php的url,android编程-解析URL-类同php的parse_url函数
  15. Android 经典原生壁纸,福利:精选安卓之父手机原生壁纸 曾力抗苹果华为 如今仅剩经典!...
  16. 边缘检测之Robert算子
  17. 思考外语学习的底层逻辑(以英语、法语为例)
  18. scrapy custom_settings
  19. android中汉字转为拼音
  20. 用Matlab作出汽车驱动力图

热门文章

  1. Android仿美团切换城市
  2. 光传输-SDH技术总结
  3. Java新生管理系统的设计与实现
  4. 服务器主板信息花屏,黑屏花屏别慌 小诀窍帮你搞定常见问题
  5. python之父和c语言之父,Python之父 Guido van Rossum喜欢与讨厌的事情
  6. 如何用vnc远程到服务器,如何利用VNC远程控制Linux
  7. 修改SQL Server默认的数据库文件保存路径
  8. PAT乙级——1027(有格式错误,暂未解决,求指点)
  9. [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
  10. 最新软件库APP源码前端+后端整套独立后台