Network Policy - 天天5分鐘玩轉 Docker 容器技術(171)

Network Policy 是 Kubernetes 的一種資源。Network Policy 經過 Label 選擇 Pod,並指定其餘 Pod 或外界如何與這些 Pod 通訊。html

默認狀況下,全部 Pod 是非隔離的,即任何來源的網絡流量都可以訪問 Pod,沒有任何限制。當爲 Pod 定義了 Network Policy,只有 Policy 容許的流量才能訪問 Pod。git

不過,不是全部的 Kubernetes 網絡方案都支持 Network Policy。好比 Flannel 就不支持,Calico 是支持的。咱們接下來將用 Canal 來演示 Network Policy。Canal 這個開源項目頗有意思,它用 Flannel 實現 Kubernetes 集羣網絡,同時又用 Calico 實現 Network Policy。github

部署 Canal

部署 Canal 與部署其餘 Kubernetes 網絡方案很是相似,都是在執行了 kubeadm init 初始化 Kubernetes 集羣以後經過 kubectl apply 安裝相應的網絡方案。也就是說,沒有太好的辦法直接切換使用不一樣的網絡方案,基本上只能從新建立集羣。api

要銷燬當前集羣,最簡單的方法是在每一個節點上執行 kubeadm reset。而後就能夠按照咱們在前面 「部署 Kubernetes Cluster」 一章的 「初始化 Master」 小節中的方法初始化集羣。網絡

kubeadm init --apiserver-advertise-address 192.168.56.105 --pod-network-cidr=10.244.0.0/16

而後按照文檔 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ 安裝 Canal。文檔列出了各類網絡方案的安裝方法:app

執行以下命令部署 Canalspa

kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/canal.yaml

部署成功後,能夠查看到 Canal 相關組件:code

Canal 做爲 DaemonSet 部署到每一個節點,地屬於 kube-system 這個 namespace。server

Canal 準備就緒,下節咱們將實踐 Network Policy。htm

書籍:

1.《天天5分鐘玩轉Kubernetes》
https://item.jd.com/26225745440.html

2.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html

3.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關文章
相關標籤/搜索