DaemonSet 案例分析 — Kubernetes(17)steemCreated with Sketch.

in kubernetes •  7 years ago  (edited)

本节详细分析两个 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 中:

637.png

注:配置文件的完整内容要复杂些,为了更好地学习 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

638.png

同样为了便于理解,这里只保留了最重要的信息。

kind: DaemonSet 指定这是一个 DaemonSet 类型的资源。

containers 定义了 kube-proxy 的容器。

status 是当前 DaemonSet 的运行时状态,这个部分是 kubectl edit 特有的。其实 Kubernetes 集群中每个当前运行的资源都可以通过 kubectl edit 查看其配置和运行状态,比如 kubectl edit deployment nginx-deployment

下节我们讨论如何运行自己的 DaemonSet。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

应该是hostNetwork,不是hostName 吧?

已更正,多谢!

书上还没有更正,希望下一版订正下:)

您好,请问有关于Kubernetes中yaml部分的文档说明吗?
我在官网上未找到
谢谢

谢谢!