DaemonSet 案例分析


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM