在CentOS上配置Kubernetes(k8s)網絡策略,您需要遵循以下步驟:
如果您還沒有安裝Calico,可以使用以下命令進行安裝:
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
Calico默認支持網絡策略。您可以通過以下命令啟用它:
kubectl patch networkpolicy -n kube-system calico-policy-controller -p '{"spec": {"type": "Calico"}}'
創建一個YAML文件來定義您的網絡策略。例如,創建一個名為deny-all.yaml
的文件,內容如下:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
這個策略會拒絕所有Pod之間的入站和出站流量。
使用kubectl
命令應用您創建的網絡策略:
kubectl apply -f deny-all.yaml
您可以使用以下命令查看當前的網絡策略:
kubectl get networkpolicy
并且可以通過嘗試Pod之間的通信來驗證策略是否生效。
假設您有兩個Pod,分別名為pod-a
和pod-b
,并且您希望它們之間可以通信。您可以創建一個名為allow-same-namespace.yaml
的文件,內容如下:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-same-namespace
spec:
podSelector:
matchLabels:
app: my-app
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
app: my-app
ports:
- protocol: TCP
port: 80
egress:
- to:
- podSelector:
matchLabels:
app: my-app
ports:
- protocol: TCP
port: 80
然后應用這個策略:
kubectl apply -f allow-same-namespace.yaml
通過以上步驟,您可以在CentOS上成功配置Kubernetes網絡策略。