kubernetes -启动pod时docker pull在哪里执行?

e37o9pze  于 2023-03-29  发布在  Kubernetes
关注(0)|答案(2)|浏览(137)

在kubernetes集群中部署pod时,哪个节点执行docker pull命令?

  • nodes:我假设它在pod被分配到的任何节点上执行,但是即使我的节点上没有安装docker,也会启动pulling。
  • head:head节点上的docker配置不影响拉取:我为私有注册表添加了一些证书,这些证书在启动pod时不活动,只有当我直接与节点上的docker交互时才活动。

所以我很困惑当启动pod时,docker pull在哪里执行,我如何修改它的配置?(即添加证书)

rqdpfwrv

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文件。

wbgh16ku

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/

相关问题