1. 程式人生 > >DaemonSet 案例分析 - 每天5分鐘玩轉 Docker 容器技術(130)

DaemonSet 案例分析 - 每天5分鐘玩轉 Docker 容器技術(130)

user 結構 lan border 部署 分析 需要 tex 1.5

本節詳細分析兩個 k8s 自己的 DaemonSet:kube-flannel-dskube-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)