k8s网络插件calico实现网络隔离

1、隔离模型

在这里插入图片描述

2、创建命名空间

创建明明空间sub1和sub2,分别打上对应标签ns:sub1和 ns:sub2

apiVersion: v1
kind: Namespace
metadata:
   name: sub1
   labels:
     ns: sub1
---
apiVersion: v1
kind: Namespace
metadata:
   name: sub2
   labels:
     ns: sub2

3、创建网络访问策略

.spec.PodSelector

顾名思义,它是pod选择器,基于标签选择与Network Policy处于同一namespace下的pod,如果pod被选中,则对其应用Network Policy中定义的规则。此为可选字段,当没有此字段时,表示选中所有pod。

.spec.PolicyTypes

Network Policy定义的规则可以分成两种,一种是入pod的Ingress规则,一种是出pod的Egress规则。本字段可以看作是一个开关,如果其中包含Ingress,则Ingress部分定义的规则生效,如果是Egress则Egress部分定义的规则生效,如果都包含则全部生效。当然此字段也可选,如果没有指定的话,则默认Ingress生效,如果Egress部分有定义的话,Egress才生效。怎么理解这句话,下文会提到,没有明确定义Ingress、Egress部分,它也是一种规则,默认规则而非没有规则。

.spec.ingress与.spec.egress

前者定义入pod规则,后者定义出pod规则,详细参考这里,这里只讲一下重点。上例中ingress与egress都只包含一条规则,两者都是数组,可以包含多条规则。当包含多条时,条目之间的逻辑关系是“或”,只要匹配其中一条就可以。.spec.ingress[].from
也是数组,数组成员对访问pod的外部source进行描述,符合条件的source才可以访问pod,有多种方法,如示例中的ip地址块、名称空间、pod标签等,数组中的成员也是逻辑或的关系。spec.ingress[].from.prots表示允许通过的协议及端口号。

.spec.egress.to定义的是pod想要访问的外部destination,其它与ingress相同。

.spec.ingress.to.namespaceSelector

namespace选择器,可以通过labels进行选择,此networkpolicy所属namespace下所有pod可以访问被选中的namespace下的pod

.spec.ingress.from.namespaceSelector

namespace选择器,可以通过labels进行选择,此networkpolicy所属namespace下所有pod可以被选中的namespace下的pod访问

1、为default创建访问策略

default中所有pod

只支持外网的入网和出网

屏蔽所有内网的出网和入网

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default
spec:
  podSelector: {
   }
  ingress:
    - from:
      - ipBlock:
          cidr: 0.0.0.0/0
          except:
          - 172.1.0.0/12
  egress:
    - to:
      - ipBlock:
          cidr: 0.0.0.0/0
          except:
          - 172.1.0.0/12
  policyTypes:
  - Egress
  - Ingress

2、为sub1和sub2创建访问策略

sub1和sub2相同

相比于default的访问策略

sub1和sub2中同一命名空间之中的pod可以相互访问

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: sub1
  namespace: sub1
s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值