手动拉取 Kubernetes kubeadm 使用的容器镜像

这篇具有很好参考价值的文章主要介绍了手动拉取 Kubernetes kubeadm 使用的容器镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用kubeadmin设置 Kubernetes 集群时,会使用一个init命令选项来设置 Kubernetes 控制平面。Kubernetes 有许多将在引导集群时使用的容器镜像。

在互联网访问不可靠的环境中,或者当您使用代理服务器时互联网访问受限,或者如果您的 Kubernetes 节点根本没有互联网访问权限,预拉要使用的容器镜像是有意义的.

首先,您需要打印 kubeadm 将使用的图像列表(在安装了 kubeadm 的机器上)。

<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ <strong>sudo kubeadm config images list</strong>
k8s.gcr.io/kube-apiserver:v1.22.2
k8s.gcr.io/kube-controller-manager:v1.22.2
k8s.gcr.io/kube-scheduler:v1.22.2
k8s.gcr.io/kube-proxy:v1.22.2
k8s.gcr.io/pause:3.5
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/coredns/coredns:v1.8.4</code></span></span>

使用的默认注册表是k8s.gcr.io,您可以选择使用不同的注册表。例如使用码头工人:

<span style="background-color:#051e30"><span style="color:#ffffff"><code>$<strong> sudo kubeadm config images list --image-repository docker.io</strong>
docker.io/kube-apiserver:v1.22.2
docker.io/kube-controller-manager:v1.22.2
docker.io/kube-scheduler:v1.22.2
docker.io/kube-proxy:v1.22.2
docker.io/pause:3.5
docker.io/etcd:3.5.0-0
docker.io/coredns:v1.8.4</code></span></span>

这将使用最新稳定版本的 Kubernetes。您还可以指定要使用的 Kubernetes 版本,例如stablelatest

<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ sudo kubeadm config images list --kubernetes-version latest</code></span></span>

使用 kubeadm 命令拉取容器镜像

如果您的 Kubernetes 机器可以访问互联网以拉取容器镜像,您可以使用 kubeadm 命令预拉取所需的镜像:

<span style="background-color:#051e30"><span style="color:#ffffff"><code><strong><em>### Pull from default registry: k8s.gcr.io ###
</em></strong>$ sudo kubeadm config images pull

<strong><em>### Pull from a different registry, e.g docker.io or internal ###
</em></strong>$ sudo kubeadm config images pull --image-repository docker.io</code></span></span>

对于 docker,您可能需要登录才能拉取图像:

<span style="background-color:#051e30"><span style="color:#ffffff"><code>$<strong> sudo docker login</strong>
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: jmutai
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded</code></span></span>

请注意,如果更改容器存储库,则需要在运行init时执行相同的操作。

<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ sudo kubeadm init --image-repository <registry> <options></code></span></span>

使用 docker / podman 命令拉取容器镜像

对于无法访问 Internet 的 Kubernetes 节点,您需要从本地计算机下载图像并将其上传到您的 Kubernetes 节点。

  • 使用kubeadm列出要在机器上使用的图像
<span style="background-color:#051e30"><span style="color:#ffffff"><code>sudo kubeadm config images list </code></span></span>
  • 本地下载图片
<span style="background-color:#051e30"><span style="color:#ffffff"><code>for image in k8s.gcr.io/kube-apiserver:v1.22.2 \
  k8s.gcr.io/kube-controller-manager:v1.22.2 \
  k8s.gcr.io/kube-scheduler:v1.22.2 \
  k8s.gcr.io/kube-proxy:v1.22.2 \
  k8s.gcr.io/pause:3.5 \
  k8s.gcr.io/etcd:3.5.0-0 \
  k8s.gcr.io/coredns:1.8.4; do
sudo docker pull $image;
done</code></span></span>

如果使用 podman:

<span style="background-color:#051e30"><span style="color:#ffffff"><code>for image in k8s.gcr.io/kube-apiserver:v1.22.2 \
  k8s.gcr.io/kube-controller-manager:v1.22.2 \
  k8s.gcr.io/kube-scheduler:v1.22.2 \
  k8s.gcr.io/kube-proxy:v1.22.2 \
  k8s.gcr.io/pause:3.5 \
  k8s.gcr.io/etcd:3.5.0-0 \
  k8s.gcr.io/coredns/coredns:v1.8.4; do
sudo docker pull $image;
done</code></span></span>
  • 将图像另存为.tar文件
<span style="background-color:#051e30"><span style="color:#ffffff"><code># Example
mkdir ~/k8s-images
docker save k8s.gcr.io/kube-apiserver:v1.22.2 > ~/k8s-images/kube-apiserver.tar
# Do the same for all other images</code></span></span>
  • 将保存的图像上传到 Kubernetes 节点
<span style="background-color:#051e30"><span style="color:#ffffff"><code>rsync -av ~/k8s-images/* k8s-node:~/k8s-images/</code></span></span>
  • .tar图像文件导入 Docker。
<span style="background-color:#051e30"><span style="color:#ffffff"><code>cd k8s-images/
ls * | while read image; do sudo docker load < $image; done</code></span></span>

这是一个示例负载输出。

<span style="background-color:#051e30"><span style="color:#ffffff"><code># <strong>ls * | while read image; do docker load < $image; done</strong>
225df95e717c: Loading layer [==================================================>]  336.4kB/336.4kB
7c9b0f448297: Loading layer [==================================================>]  41.37MB/41.37MB
Loaded image: k8s.gcr.io/coredns:1.6.5
fe9a8b4f1dcc: Loading layer [==================================================>]  43.87MB/43.87MB
ce04b89b7def: Loading layer [==================================================>]  224.9MB/224.9MB
1b2bc745b46f: Loading layer [==================================================>]  21.22MB/21.22MB
Loaded image: k8s.gcr.io/etcd:3.4.3-0
fc4976bd934b: Loading layer [==================================================>]  53.88MB/53.88MB
f103db1d7ea4: Loading layer [==================================================>]  118.6MB/118.6MB
Loaded image: k8s.gcr.io/kube-apiserver:v1.17.0
01b437934b9d: Loading layer [==================================================>]  108.5MB/108.5MB
Loaded image: k8s.gcr.io/kube-controller-manager:v1.17.0
ac06623e44c6: Loading layer [==================================================>]   42.1MB/42.1MB
Loaded image: k8s.gcr.io/kube-scheduler:v1.17.0
682fbb19de80: Loading layer [==================================================>]  21.06MB/21.06MB
2dc2f2423ad1: Loading layer [==================================================>]  5.168MB/5.168MB
ad9fb2411669: Loading layer [==================================================>]  4.608kB/4.608kB
597151d24476: Loading layer [==================================================>]  8.192kB/8.192kB
0d8d54147a3a: Loading layer [==================================================>]  8.704kB/8.704kB
6bc5ae70fa9e: Loading layer [==================================================>]  37.81MB/37.81MB
Loaded image: k8s.gcr.io/kube-proxy:v1.17.0
e17133b79956: Loading layer [==================================================>]  744.4kB/744.4kB
Loaded image: k8s.gcr.io/pause:3.1</code></span></span>

确认图像已导入:

<span style="background-color:#051e30"><span style="color:#ffffff"><code>[root@k8s-master-01 ~]# <strong>crictl images</strong>
IMAGE                                 TAG                 IMAGE ID            SIZE
docker.io/calico/apiserver            v3.20.1             4e7da027faaa7       53.2MB
docker.io/calico/cni                  v3.20.1             e69ccb66d1b65       146MB
docker.io/calico/kube-controllers     v3.20.1             5df320a38f63a       63.2MB
docker.io/calico/node                 v3.20.1             355c1ee44040b       158MB
docker.io/calico/pod2daemon-flexvol   v3.20.1             55fa5eb71e097       21.8MB
docker.io/calico/typha                v3.20.1             8473ae43d01b8       59.4MB
k8s.gcr.io/coredns/coredns            v1.8.4              8d147537fb7d1       47.7MB
k8s.gcr.io/etcd                       3.5.0-0             0048118155842       296MB
k8s.gcr.io/kube-apiserver             v1.22.2             e64579b7d8862       130MB
k8s.gcr.io/kube-controller-manager    v1.22.2             5425bcbd23c54       123MB
k8s.gcr.io/kube-proxy                 v1.22.2             873127efbc8a7       105MB
k8s.gcr.io/kube-scheduler             v1.22.2             b51ddc1014b04       53.9MB
k8s.gcr.io/pause                      3.2                 80d28bedfe5de       688kB
k8s.gcr.io/pause                      3.5                 ed210e3e4a5ba       690kB
quay.io/tigera/operator               v1.20.3             98e04bee27575       48.2MB</code></span></span>

然后,您可以使用本地添加的映像继续 Kubernetes 安装。根据您使用的 CNI,如果进行离线安装,您可能还需要提前拉取其镜像。文章来源地址https://www.toymoban.com/news/detail-642219.html

到了这里,关于手动拉取 Kubernetes kubeadm 使用的容器镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 kubeadm 部署 kubernetes 1.27.1 版本

    目录 前言 一、搭建前的准备 1. 搭建k8s的平台规划 2. 服务器硬件配置要求 3. 搭建部署的方式 二、搭建流程 1. kubeadm搭建方式 a. 准备工作,系统初始化 c. 设置一下ipv4,否则会失败(此处为坑,不设置无法初始化成功) d. 安装containerd  e. 安装kubectl、kubelet、kubeadm  f. master节点

    2024年02月06日
    浏览(18)
  • 如何清理Kubernetes集群中的旧容器和镜像

    Kubernetes有一个内置的垃圾收集系统,可以清理不使用的镜像。它由Kubelet管理,它是Kubernetes 的工作进程并且在每个节点上运行。 Kubelet 会自动监控未使用的图像,并定期删除它们( https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection) 。通过评估镜像的磁盘使用情

    2024年02月16日
    浏览(24)
  • 【C站首发】全网最新Kubernetes(K8s)1.28版本探秘及部署 基于Containerd容器运行时(100年证书kubeadm)

    序号 操作系统及版本 备注 1 CentOS7u9 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.3.1 主机名配置 由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为wor

    2024年02月08日
    浏览(30)
  • 使用kubeadm安装和设置Kubernetes(k8s)

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署: 使用kubeadm方式搭建K8s集群主要分为以下几步 准备三台虚拟机,同时安装操作系统CentOS 7.x 对三个安装之后的操作系统进行初始化操作 在三个节点安装 dock

    2024年02月12日
    浏览(25)
  • Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)

             以两数相加求和为例,在kubernetes集群 拉取本地的镜像 ,实现如下效果:         1.实现两数相加求和         2.可以通过curl 实时调用 , 参数 以GET方式提供,并得到结果。(类似 调用函数 )         需要准备如下的文件。文件名与对应的功能如下所示

    2024年01月20日
    浏览(26)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(25)
  • centos安装部署Kubernetes(k8s)步骤使用kubeadm方式

    机器地址: 192.168.0.35 k8s-master 192.168.0.39 k8s-node1 192.168.0.116 k8s-node2 修改每台机器的名字 关闭防火墙和selinux 临时关闭selinux: 永久关闭: 修改selinux为disabled或者permissive 重启生效 配置本地解析 确保每个节点MAC地址和 product_uuid 的唯一性 同步时间 如果各机器上时间都没有问题

    2024年02月06日
    浏览(29)
  • kubernetes新版本使用kubeadm init的超全问题解决和建议

    这一篇能节省你在 kubeadm init 时遇到问题的排错时间⌚️。 整合了网上大佬的方案🧍‍♂️和官方建议⚠️。 个人被这个问题折磨了好久😭,希望总结出来能帮助到大家~ 目录 自定义配置文件初始化的建议 关注配置:  advertiseAddress imageRepository nodeRegistration.criSocket 问题解

    2023年04月08日
    浏览(15)
  • kubernetes部署应用时从harbor拉取镜像失败:repository does not exist or may require ‘docker login‘

    问题描述: kubernetes部署应用时,pod启动失败,通过kubectl describe pod查看失败原因类似下面的错误: Failed to pull image \\\"xxxx/oneapi-2/authtenantserver:15\\\": rpc error: code = Unknown desc = Error response from daemon: pull access denied for xxxx/oneapi-2/authtenantserver, repository does not exist or may require \\\'docker login\\\'

    2024年02月16日
    浏览(28)
  • Kubernetes技术--使用kubeadm搭建高可用的K8s集群(贴近实际环境)

    1.高可用k8s集群架构(多master) 2.安装硬件要求 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 注: 这里属于教学环境,所以使用三台虚拟机模拟实现。 3.部署规划 4.部署前准备 (1).关闭防火墙 (2).关闭selinux (3).关闭swap (4).根据规

    2024年02月10日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包