在kubernetes集群中部署pod时,哪个节点执行docker pull
命令?
- nodes:我假设它在pod被分配到的任何节点上执行,但是即使我的节点上没有安装
docker
,也会启动pulling。 - head:head节点上的docker配置不影响拉取:我为私有注册表添加了一些证书,这些证书在启动pod时不活动,只有当我直接与节点上的docker交互时才活动。
所以我很困惑当启动pod时,docker pull
在哪里执行,我如何修改它的配置?(即添加证书)
在kubernetes集群中部署pod时,哪个节点执行docker pull
命令?
docker
,也会启动pulling。所以我很困惑当启动pod时,docker pull
在哪里执行,我如何修改它的配置?(即添加证书)
2条答案
按热度按时间rqdpfwrv1#
当pod部署到Kubernetes集群时,pod规范中指定的容器镜像由pod计划运行的节点上运行的kubelet拉取。
kubelet负责管理节点上的容器,并从指定的容器镜像存储库(例如Docker Hub,Google Container Registry等)中拉取容器镜像。kubelet使用容器运行时(例如Docker,containerd,CRI-O等)来拉取镜像。
如果你的节点上没有安装Docker,很可能你使用的是不同的容器运行时,比如containerd或CRI-O。kubelet使用配置的容器运行时来拉取容器镜像。
要修改kubelet使用的Docker配置,您可以在每个安装Docker的节点上修改Docker配置文件。该文件通常位于
/etc/docker/daemon.json
。您可以在该文件中添加任何所需的证书,然后重新启动Docker守护进程以使更改生效。请注意,如果您正在使用不同的容器运行时,则需要修改该运行时的配置文件。例如,如果您使用containerd,则需要修改
/etc/containerd/config.toml
文件。wbgh16ku2#
前提:安装Kubernetes的第一步是在集群中的所有主机上激活 * 容器运行时 *。
在所有主机上安装容器运行时和kubeadm。
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#preparing-the-hosts
要在Pod中运行容器,Kubernetes使用容器运行时。默认情况下,Kubernetes使用容器运行时接口(CRI)与您选择的容器运行时进行交互。如果您不指定运行时,kubeadm会自动尝试通过扫描已知端点列表来检测已安装的容器运行时。如果检测到多个容器运行时或没有检测到容器运行时,kubeadm将抛出一个错误,并要求您指定要使用的容器运行时。
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-runtime
与 * 容器运行时 * 相关的所有内容都与Kubernetes“资源”分开管理。
只有 images 通过YAML Kubernetes(Deployments/StatefulSet)进行管理。
https://kubernetes.io/docs/concepts/containers/images/
要回答另一个问题,请从Private Registry Docker下载镜像--〉https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/