DaemonSet 案例分析 — Kubernetes(17)
kubernetes·@cloudman6·
0.000 HBDDaemonSet 案例分析 — Kubernetes(17)
本节详细分析两个 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。
👍 cloudman6, hr1, zhailibao2013, ubg, squawell, yanzhiluo, buptliuwei, leon911, skyler1996, kong62, mlkkkfriend, tufei, beyondhfh, hechuan,