我正在运行 kubernetes 1.8.5,想知道是否有办法告诉 Kubelet 在主机上监视 /var/lib/docker 而不是 / 。
1 回答
根据Kubelet 文档页面:
除了来自 apiserver 的 PodSpec 之外,还可以通过三种方式将容器清单提供给 Kubelet。
文件:在命令行上作为标志传递的路径。将定期监视此路径下的文件是否有更新。监控周期默认为 20 秒,可通过标志配置。
HTTP 端点:在命令行上作为参数传递的 HTTP 端点。该端点每 20 秒检查一次(也可以使用标志进行配置)。
HTTP 服务器:kubelet 还可以侦听 HTTP 并响应一个简单的 API(当前未规范)以提交新的清单。
不太清楚你所说的“监控”是什么意思,所以这里列出了 Kubelet 二进制文件中所有与路径相关的命令行参数:
--boot-id-file string
要检查引导 ID 的文件的逗号分隔列表。使用第一个存在的。(默认“/proc/sys/kernel/random/boot_id”)
--bootstrap-checkpoint-path string
存储检查点的目录的路径
--bootstrap-kubeconfig string
kubeconfig
用于获取 kubelet 客户端证书的文件的路径。如果 指定的文件--kubeconfig
不存在,kubeconfig
则使用引导程序从 API 服务器请求客户端证书。成功后,kubeconfig
引用生成的客户端证书和密钥的文件将写入--kubeconfig
. 客户端证书和密钥文件将存储在--cert-dir
.
--cert-dir string
TLS 证书所在的目录。如果 提供--tls-cert-file
和--tls-private-key-file
,则此标志将被忽略。(默认/var/lib/kubelet/pki
)
--cloud-config string
云提供商配置文件的路径。
--cni-bin-dir string
在其中搜索 CNI 插件二进制文件的目录的完整路径。默认:/opt/cni/bin
--cni-conf-dir string
在其中搜索 CNI 配置文件的目录的完整路径。默认:/etc/cni/net.d
--container-hints string
容器提示文件的位置(默认/etc/cadvisor/container_hints.json
)
--docker-tls-ca string
可信 CA 的路径(默认ca.pem
)
--docker-tls-cert string
客户端证书的路径(默认cert.pem
)
--docker-tls-key string
私钥路径(默认key.pem
)
--dynamic-config-dir string
Kubelet 将使用这个目录来检查下载的配置和跟踪配置的健康状况。如果该目录尚不存在,Kubelet 将创建该目录。路径可以是绝对的或相对的;相对路径从 Kubelet 的当前工作目录开始。提供此标志可启用动态 Kubelet 配置。目前,您还必须启用DynamicKubeletConfig
功能门以传递此标志。
--experimental-mounter-path string
[实验性] 安装程序二进制文件的路径。留空以使用默认挂载。
--init-config-dir string
Kubelet 将在此目录中查找初始化配置。路径可以是绝对的或相对的;相对路径从 Kubelet 的当前工作目录开始。省略此参数以使用内置的默认配置值。目前,您还必须启用KubeletConfigFile
功能门以传递此标志。
--kubeconfig string
kubeconfig 文件的路径,指定如何连接到 API 服务器。(默认/var/lib/kubelet/kubeconfig
)
--lock-file string
kubelet 用作锁定文件的文件路径。
--log-dir string
如果非空,则在此目录中写入日志文件
--pod-manifest-path string
包含要运行的 pod 清单文件的目录的路径,或单个 pod 清单文件的路径。以点开头的文件将被忽略。
--resolv-conf string
解析器配置文件,用作容器 DNS 解析配置的基础。(默认/etc/resolv.conf
)
--rkt-path string
rkt 二进制文件的路径。留空以使用 $PATH 中的第一个 rkt。
--root-dir string
用于管理 kubelet 文件(卷挂载等)的目录路径。(默认/var/lib/kubelet
)
--seccomp-profile-root string
seccomp 配置文件的目录路径。(默认/var/lib/kubelet/seccomp
)
--tls-cert-file string
包含用于服务 HTTPS 的 x509 证书的文件(中间证书,如果有,连接在服务器证书之后)。如果未提供--tls-cert-file
和--tls-private-key-file
未提供,则会为公共地址生成自签名证书和密钥,并保存到传递给--cert-dir
.
--tls-private-key-file string
包含 x509 私钥匹配的文件--tls-cert-file
。
您可以通过在 Kubelet 启动期间提供带有参数的配置文件来设置 Kubelet 配置。--config
修改现有的 Kubelet 参数(CentOS 示例):
- 编辑 /usr/lib/systemd/syste/kubelet.service
重启 Kubelet:
systemctl daemon-reload systemctl restart kubelet