概述
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-ingress
namespace: 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-ingress
namespace: 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-ingress
namespace: dev
spec:
podSelector:
matchLabels:
app: nginx
ingress:
- from:
- ipBlock: #放行IP,也可以写namespaceSelector,podSelector
cidr: 10.244.0.0/16
except: #排除掉某个IP或者子网
- 10.244.10.2/24
ports:
- protocol: TCP #TCP
port: 80 #80端口
(4)允许dev空间下所有标签为app:nginx的pod访问所有
出站与入站是类似的就是ingress和egress的区别
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
namespace: dev
spec:
podSelector:
matchLabels:
app: nginx
egress:
- {}
policyTypes:
- Egress
(5)访问策略大概思路
①设置规则的时候需要想到,如果针对于一个名称空间下的pod设置来说,需要注意同一空间是否可以通信
网络策略:
名称空间:
②拒绝所有出站,入站;
③放行所有出战目标本名称空间内的所Pod
2和3执行以后同一个命名空间基本没问题,跨命名空间就需要额外设置
④根据具体的需求来设置ingress和egress,难点在于需求
最后
以上就是悲凉绿茶为你收集整理的Kubernetes基于canel的网络策略的全部内容,希望文章能够帮你解决Kubernetes基于canel的网络策略所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复