總目錄索引:K8s網絡Calico 從入門到放棄系列
1、創建前端,後端,客戶端和管理用戶界面應用程序
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/00-namespace.yaml
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/01-management-ui.yaml
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/02-backend.yaml
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/03-frontend.yaml
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/04-client.yaml
等待所有pod狀態爲running
kubectl get pod --all-namespaces
http://worker IP:30002
一旦所有Pod啓動,它們就應該具有完全的連接性。您可以通過訪問UI來查看。每個服務由圖中的單個節點表示。
backend
frontend
->節點“ F”client
->節點“ C”
2、啓用隔離
運行以下命令將阻止所有對前端,後端和客戶端服務的訪問
kubectl create -n stars -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/default-deny.yaml
kubectl create -n client -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/default-deny.yaml
確認隔離
刷新管理用戶界面(更改最多可能需要10秒鐘才能反映在用戶界面中)。現在我們啓用了隔離,UI將不再能夠訪問窗格,因此它們將不再顯示在UI中。
3、允許UI使用網絡策略對象訪問服務
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/allow-ui.yaml
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/allow-ui-client.yaml
幾秒鐘後,刷新UI-現在應該顯示服務,但它們之間不再能夠訪問彼此
4、創建backend-policy.yaml文件,以允許從前端到後端的流量
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/backend-policy.yaml
刷新UI。您應該看到以下內容:
前端現在可以訪問後端(僅在TCP端口6379上)。
後端根本無法訪問前端。
客戶端無法訪問前端,也無法訪問後端。
5、將前端服務公開到客戶端名稱空間
kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/frontend-policy.yaml
客戶端現在可以訪問前端,但不能訪問後端。前端和後端都無法啓動與客戶端的連接。前端仍然可以訪問後端
6、清理名稱空間
kubectl delete ns client stars management-ui
參考文章:https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/kubernetes-demo