Igo*_*pin 12 kubernetes project-calico kubernetes-networkpolicy
带有kubectl get pod命令的Init容器用于获取其他pod的就绪状态.
打开Egress NetworkPolicy后,init容器无法访问Kubernetes API : Unable to connect to the server: dial tcp 10.96.0.1:443: i/o timeout. CNI是Calico.
尝试了几个规则,但它们都没有工作(服务和主机主机IP,不同的CIDR掩码):
...
egress:
- to:
- ipBlock:
cidr: 10.96.0.1/32
ports:
- protocol: TCP
port: 443
...
Run Code Online (Sandbox Code Playgroud)
或使用命名空间(默认和kube系统命名空间):
...
egress:
- to:
- namespaceSelector:
matchLabels:
name: default
ports:
- protocol: TCP
port: 443
...
Run Code Online (Sandbox Code Playgroud)
看起来ipBlock规则只是不起作用,命名空间规则不起作用,因为kubernetes api是非标准pod.
可以配置吗?Kubernetes是1.9.5,Calico是3.1.1.
小智 8
您需要获取使用的主站的真实 IPkubectl get endpoints --namespace default kubernetes并制定出口策略以允许这样做。
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-apiserver
namespace: test
spec:
policyTypes:
- Egress
podSelector: {}
egress:
- ports:
- port: 443
protocol: TCP
to:
- ipBlock:
cidr: x.x.x.x/32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |