新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)

这篇具有很好参考价值的文章主要介绍了新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、项目概述

使用Kuboard作为k8s集群的管理平台,Harbor作为镜像仓库,拉取Harbor镜像仓库的镜像运行。
从K8s1.24版本之后,k8s就逐渐弃用了docker,采用containerd来管理,这个很重要。

二、环境

服务器 IP地址 备注
K8sMaster 192.168.2.138 kuboard,Master管理节点
K8sWorker01 192.168.2.139 Worker工作节点
K8sWorker02 192.168.2.140 Worker工作节点
Harbor 192.168.2.142 Harbor镜像仓库

三、项目样式

Harbor

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

kuboard

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

运行样式

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

四、核心点

Harbor安装

Harbor安装网上有很多教程,可以使用http的,也可以使用https的,自行选择,我这里使用的http的,不过问题有点多,不过拉取镜像也能用,测试环境可以用http的,但是深生产环境建议使用https的。

config.toml文件修改(containerd)

K8s:v1.24版本以后拉取镜像采用containerd,所以你需要修改containerd的配置文件,记得每个节点都需要修改,修改一份后,使用scp或者ansible命令进行复制就可以

#scp
scp /etc/containerd/config.toml root@k8sworker01:/etc/containerd
scp /etc/containerd/config.toml root@k8sworker02:/etc/containerd

#ansible
ansible k8s -m copy -a "src=/etc/containerd/config.toml dest=/etc/containerd"

1、自动生成config.toml文件

# 生成默认配置
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

2、修改镜像源

# vi编辑配置文件
sudo vi /etc/containerd/config.toml

# 将 pause 修改为国内源镜像,找到 sanbox_image修改前缀为国内源
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"

# 找到 SystemdCgroup
SystemdCgroup = true

3、修改Habor镜像仓库相关配置:拉取Harbor镜像仓库,还需要修改如下信息,在文件144行左右,修改完成记得保存,重启containerd

systemctl daemon-reload
systemctl restart containerd

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

ctr、nerdctl相关命令

使用containerd,需要使用ctr与nerdctl命令来进行查看镜像,命名空间,进行推送等,k8sV1.24版本拉取本地镜像是从containerd镜像库里面拉取的,不是从docker images里面拉取的,如果你没有Harbor,要确保每个工作节点上面k8s.io命名空间有镜像都有镜像,这里是新版本k8s的坑
新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器
新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

#下载镜像nginx
ctr image pull docker.io/library/nginx:alpine
#查看命名空间
ctr ns ls
#查看default空间镜像
ctr image ls
#查看k8s.io空间镜像
ctr -n k8s.io image ls
#打标签
ctr -n k8s.io images tag docker.io/library/flaskweb:v1.0.0 192.168.2.142:8800/test/flaskweb:v1.0.0
#导入到k8s.io空间镜像
ctr -n k8s.io image import flaskweb.tar.gz
#从镜像仓库下载镜像,http需要如下写法,不然会报错
ctr images pull --plain-http=true --skip-verify  --user admin:Harbor12345 192.168.2.142:8800/test/flaskweb:v1.0.0
#推送镜像
ctr -n k8s.io image push --plain-http=true --skip-verify  --user admin:Harbor12345 192.168.2.142:8800/test/flaskweb:v1.0.0
#nerdctl命令与docker命令很像
nerdctl images
nerdctl run

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

kuboard工作负载

kuboard新建工作负载,在选择容器镜像时,新建一个密文,如果你有Harbor可以始终拉取新镜像,如果你走本地k8s.io空间的镜像时,改成Never从不拉取镜像。如果保存后,提示镜像无法拉取Error: ErrImagePull,可以在每台工作节点上面使用ctr images pull来拉取镜像实施试试。新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑),DevOps,kubernetes,docker,容器

五、总结

说实话有点后悔装Kubernetes:V1.28版本了,在1.24版本后弃用docker,改用containerd,在我完成整个实验前80%的时间我是不晓得的,所以就一直傻乎乎的使用docker login登录Harbor,docker pull 拉取镜像,docker images来查看镜像,所有节点都是可以从Harbor拉取镜像,登录Harbor,但就是k8s无法自动拉取Harbor镜像与本地镜像,查了很多资料,但都是说docker的配置,很少提到containerd的概念,最后查到k8s官网才晓得这个概念,最后换了一个思路才解决K8s1.28版本使用kuboard来拉取Harbor镜像仓库镜像。抱怨归抱怨,一个星期的尝试,对kubectl命令,k8s的架构也越来越熟悉,继续加油!文章来源地址https://www.toymoban.com/news/detail-809287.html

到了这里,关于新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • K8s集群使用容器镜像仓库Harbor

    1.1.1 docker-ce安装 1.1.1.1 获取YUM源 使用阿里云开源软件镜像站。 1.1.1.2 安装并设置启动及开机自启动 1.1.2 docker compose安装 1.1.3 获取harbor安装文件 1.1.4 修改配置文件 1.1.5 执行预备脚本 1.1.6 执行安装脚本 1.1.7 验证运行情况 1.1.8 访问harbor UI界面 2.1.1 新建一个harbor私有仓库 2.1.2

    2024年02月02日
    浏览(39)
  • k8s使用helm部署Harbor镜像仓库并启用SSL

    参照:https://zhaoll.blog.csdn.net/article/details/128155767 有多种安装方式,根据自己的k8s版本选择合适的helm版本 参考:https://blog.csdn.net/qq_30614345/article/details/131669319 我们这里使用helm安装harbor,项目地址:https://github.com/goharbor/harbor-helm (1)拉取项目文件 (2)解压并修改配置 tar -z

    2024年02月16日
    浏览(24)
  • 通过docker+cri-dockerd部署k8s集群环境(含harbor镜像仓库)

    目录 一.虚拟机准备 二.基础环境配置(各个节点都做) 1.IP和hosts解析 2.防火墙和selinux 3.安装基本软件 4.配置时间同步 5.禁用swap分区 6.修改内核参数并重载 7.配置ipvs 三.docker环境(各个节点都做) 1.配置软件源并安装docker-ce 2.配置docker加速 四.cri环境配置(各个节点都做)

    2024年02月05日
    浏览(29)
  • docker登录harbor、K8s拉取镜像报http: server gave HTTP response to HTTPS client

    当搭建完docker私有仓库后,准备docker login http://ip:端口 登录时会包如下错误 当我们使用docker私有仓库中的镜像在K8s集群中部署应用时会包如下错误 以上错误根据报错信息可以知道,不能使用不安全的http协议连接远程仓库。一种方式是使用https协议进行访问,但需要我们在d

    2024年02月13日
    浏览(26)
  • 第27关 在K8s集群上使用Helm3部署最新版本v2.10.0的私有镜像仓库Harbor

    ------ 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 在前面的几十关里面,博哥在k8s上部署服务一直都是用的docker hub上的公有镜像,对于企业服务来说,有些我们是不想把服务镜像放在公网上面的; 同时如果在有内部的镜像仓库,那拉取镜像的速度就会很快

    2024年02月01日
    浏览(28)
  • K8S:kubeadm搭建K8S+Harbor 私有仓库

    主机名及主机大小 主机ip 安装软件 master(2C/4G,cpu核心数要求大于2) 192.168.245.113 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.245.114 docker、kubeadm、kubelet、kubectl、flannel node02(2C/2G) 192.168.245.115 docker、kubeadm、kubelet、kubectl、flannel Harbor节点(hub.blue.com) 192.168.245

    2024年02月09日
    浏览(24)
  • kubernetes(k8s) v1.28.2 安装与部署

    版本:kubernetes(k8s) v1.28.2 并准备主机名映射。 设置好静态IP。 在Ubuntu的/etc/hosts文件中,填入如下内容。也可以在Windows的C:WindowsSystem32driversetchosts文件中填写相同内容。 关闭防火墙和SELinux。 关闭防火墙命令如下。 可使用命令 systemctl status firewalld 查看防火墙状态。 关闭

    2024年02月03日
    浏览(28)
  • ​二进制安装Kubernetes(k8s)v1.28.0

    https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。 我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。 若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可。 不配置IPV6,不影

    2024年02月05日
    浏览(25)
  • 二进制安装Kubernetes(k8s)v1.28.3

    https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。 我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。 若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可。 不配置IPV6,不影

    2024年02月05日
    浏览(38)
  • k8s拉取私有仓库镜像失败:rpc error: code = Unknown desc = failed to pull and unpack image【20221121】

    k8s拉取镜像并不是通过docker拉取,而是通过 crictl拉取的。 失败原因如下: 解决方法: 1、先拷贝一份 2、修改/etc/containerd/config.toml 找到plugins.“io.containerd.grpc.v1.cri”.registry的位置 修改之前: 修改之后: 3、 内容: 4、重启 5、再次拉取

    2024年02月11日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包