k83calico网络策略

常见的CNI网络插件包含以下几种:

公司主营业务:成都做网站、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出徐水免费做网站回馈大家。

Flannel:为Kubernetes提供叠加网络的网络插件,基于TUN/TAP隧道技术,使用UDP封装IP报文进行创建叠 加网络,借助etcd维护网络的分配情况,缺点:无法支持网络策略访问控制。
Calico:基于BGP的三层网络插件,也支持网络策略进而实现网络的访问控制;它在每台主机上都运行一个虚拟路由,利用Linux内核转发网络数据包,并借助iptables实现防火墙功能。实际上Calico最后的实现就是将每台主机都变成了一台路由器,将各个网络进行连接起来,实现跨主机通信的功能。
Canal:由Flannel和Calico联合发布的一个统一网络插件,提供CNI网络插件,并支持网络策略实现。
其他的还包括Weave Net、Contiv、OpenContrail、Romana、NSX-T、kube-router等等。而Flannel和Calico是目前最流行的选择方案。

1.全部拒绝

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-egress
  namespace: cs1
  #应用于cs1 名称空间,不写名称空间对default应用
spec:
  podSelector: {}
  ingress:
  egress:
  #定义出站规则,这里没有写任何策略,表示全部拒绝。
  policyTypes:
  - Egress
  - Ingress
  #这里面有Egress就表示要定义出站规则,不写Egress就是默认通行,Ingress是入站原理一样
  #建议大家把两个都写上去 然后使用"podSelector:" 来控制是否能通行

2.全部允许

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-egress
  namespace: cs1
spec:
  podSelector: {}
  ingress:
  - {}
  #这样表示"ingress"方向的全部允许通行
  egress:
  - {}
  #这样表示"egress"方向的全部允许通行
  policyTypes:
  - Egress
  - Ingress

这个网络策略只对名称空间起效,宿主机依然可以访问

3.作用范围

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name:  deny-all
  namespace: default
  #只作用于 default 名称空间
spec:
  podSelector:
  #匹配pod 范围 如果匹配该名称空间的所有POD 输入"{}" 即可
    matchLabels:
      access: "true"
      #匹配POD中有 access=true的标签
  policyTypes:
  - Ingress
  - Egress
  ingress:
  egress:

4.限制IP策略

k83 calico 网络策略
#上图每个cs容器的IP

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name:  deny-all
spec:
  podSelector: {}
  policyTypes:
  - Egress
  - Ingress
  ingress:
  egress:
    - to:
    #注意:egress用to,ingress用from
      - ipBlock:
          cidr: 192.168.0.0/16
          #放行192.168.0.0/16网络
          except:
          - 192.168.94.134/32
          #但不包括这个ip

k83 calico 网络策略
exec进入pod 能看见ping192.168.94.134 这个IP是不通的

5.基于名称空间label限制

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: namespace-allow
  namespace: default
spec:
  policyTypes: ["Ingress"]
  podSelector: {}
  ingress:
   - from:
     - namespaceSelector:
        matchLabels:
          name: cs1
                    #表示只有打了"name=cs1"的名称空间才允许进

6.基于名称空间label限制满足多个条件

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: namespace-allow
  namespace: default
spec:
  policyTypes: ["Ingress","Egress"]
  podSelector: {}
  ingress:
  - from:
    - namespaceSelector:
        matchExpressions:
        - key: name
          operator: In
          values: ["cs1","cs2"]
          #中括号里面的可以 与default名称空间 ingress通信
                    #表示,名称空间有标签name=cs1,name=cs2 的 可以与default名称空间通信

7基于pod label

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: namespace-allow
  namespace: default
spec:
  policyTypes: ["Ingress"]
  podSelector: {}
  ingress:
  - from:
    - podSelector:
        matchLabels:
          access: "true"
   #允许pod 便签有 access=true的通行

#基于pod label 实验没成功不知道啥问题

当前题目:k83calico网络策略
网页链接:https://www.cdcxhl.com/article22/johocc.html

成都网站建设公司_创新互联,为您提供定制开发电子商务外贸网站建设软件开发面包屑导航微信公众号

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化