DaemonSet 案例分析 - 每天5分鐘玩轉 Docker 容器技術(130)
kube-flannel-ds
和 kube-proxy
。kube-flannel-ds
下面我們通過分析 kube-flannel-ds
來學習 DaemonSet。
還記得之前是如何部署 flannel 網絡的嗎?我們執行了如下兩個命令:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
flannel 的 DaemonSet 就定義在 kube-flannel.yml
中:
註:配置文件的完整內容要復雜些,為了更好地學習 DaemonSet,這裏只保留了最重要的內容。
① DaemonSet 配置文件的語法和結構與 Deployment 幾乎完全一樣,只是將 kind
設為 DaemonSet
。
② hostNetwork 指定 Pod 直接使用的是 Node 的網絡,相當於 docker run --network=host
。考慮到 flannel 需要為集群提供網絡連接,這個要求是合理的。
③ containers
定義了運行 flannel 服務的兩個容器。
我們再來分析另一個 DaemonSet kube-proxy
。
kube-proxy
由於無法拿到 kube-proxy
的 YAML 文件,只能運行如下命令查看其配置:
kubectl edit daemonset kube-proxy --namespace=kube-system
同樣為了便於理解,這裏只保留了最重要的信息。
① kind: DaemonSet
指定這是一個 DaemonSet 類型的資源。
② containers
定義了 kube-proxy
的容器。
③ status
是當前 DaemonSet 的運行時狀態,這個部分是 kubectl edit
特有的。其實 Kubernetes 集群中每個當前運行的資源都可以通過 kubectl edit
查看其配置和運行狀態,比如 kubectl edit deployment nginx-deployment
。
下節我們討論如何運行自己的 DaemonSet。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
DaemonSet 案例分析 - 每天5分鐘玩轉 Docker 容器技術(130)