解决containerd+k8s集群搭建镜像拉取不到的问题

这篇具有很好参考价值的文章主要介绍了解决containerd+k8s集群搭建镜像拉取不到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前我写了一篇containerd+k8s搭建集群的文章,文章地址:

https://blog.csdn.net/m0_51510236/article/details/130842122

在上面这篇文章中有小伙伴给我反映镜像拉取不到的问题,现在我们就来解决这个问题

因为是对上一篇文章拉取不到镜像问题的解决,所以安装前的准备工作请参考上一篇文章

本片文章的视频教程地址为:https://www.bilibili.com/video/BV1dP411q7FD/?vd_source=98deeeab6739fa30792cfcffa994b50e

下载离线镜像

离线镜像我已经上传到百度网盘,可以使用根据下面的提取地址提取

链接:https://pan.baidu.com/s/1-ILbg0GG8jNHQhVaVhUKww?pwd=kfe2
提取码:kfe2

导入镜像

我已经上传这个文件到我的master节点:
解决containerd+k8s集群搭建镜像拉取不到的问题

接下来我们需要解压它,使用以下命令:

tar -zxvf k8s-image.tar.gz

解压之后我们可以看到两个文件,一个 k8s-master.tar.gz 另一个 k8s-node.tar.gz
解决containerd+k8s集群搭建镜像拉取不到的问题

其中两个文件的作用:

  • k8s-master.tar.gz: master上所有的镜像的离线文件
  • k8s-node.tar.gz: node上所有镜像的离线文件

需要使用文件传输命令把 k8s-node.tar.gz 传输到所有的node上:
解决containerd+k8s集群搭建镜像拉取不到的问题

命令:

scp k8s-node.tar.gz root@{你node的地址}:/usr/local/src/

接下来就可以开始导入镜像了,因为镜像需要导入到containerd的 k8s.io 命名空间当中,所以我们需要创建这个命名空间,使用命令:

ctr ns create k8s.io

创建完成后可以查看命名空间列表:
解决containerd+k8s集群搭建镜像拉取不到的问题

接下来我们可以使用以下命令导入镜像

  • k8s-master:
ctr -n k8s.io image import k8s-master.tar.gz
  • k8s所有node:
ctr -n k8s.io image import k8s-node.tar.gz

出现这个代表导入成功:
解决containerd+k8s集群搭建镜像拉取不到的问题

可以通过以下命令查看镜像:

ctr -n k8s.io images list

查看的结果:
解决containerd+k8s集群搭建镜像拉取不到的问题

初始化集群

现在镜像已经全部下载下来了,就可以直接初始化镜像,可以执行命令(注意修改IP地址和版本号):

kubeadm init \
--apiserver-advertise-address=192.168.3.160 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.26.5 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket=unix:///var/run/containerd/containerd.sock

因为我们这次搭建是提前导入了镜像,所以初始化步骤非常快:
解决containerd+k8s集群搭建镜像拉取不到的问题

因为之前的文章中讲过,所以这里将非常快的过一下,本地执行:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

所有的node节点执行(注意更换为自己的token):

kubeadm join 192.168.3.160:6443 --token mjdae0.b71g5of1dsor97e0 \
  --discovery-token-ca-cert-hash sha256:336be2f0acc7828cad61cd54b40ed50a9f8326d67e2144e3c0864b236e112fcb \
  --cri-socket=unix:///var/run/containerd/containerd.sock

节点加入成功:
解决containerd+k8s集群搭建镜像拉取不到的问题

安装calico插件

执行以下命令进行安装:

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/tigera-operator.yaml

和上面一样,因为镜像已经提前拉取完成,所以创建过程特别快:
解决containerd+k8s集群搭建镜像拉取不到的问题

初始化客户端资源

cat <<EOF > custom-resources.yaml
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  calicoNetwork:
    ipPools:
    - blockSize: 26
      cidr: 10.244.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

---

apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:
  name: default
spec: {}
EOF
kubectl create -f custom-resources.yaml

这个操作也能非常快完成:
解决containerd+k8s集群搭建镜像拉取不到的问题

安装MetalLB

需要修改配置:

kubectl edit configmap -n kube-system kube-proxy

需要修改的地方:
解决containerd+k8s集群搭建镜像拉取不到的问题

开始安装:

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml

安装完成:
解决containerd+k8s集群搭建镜像拉取不到的问题

分配IP地址池(注意修改为自己的网段里面没有用到的地址):

cat <<EOF > metallb-ippool-config.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.3.163-192.168.3.169

---

apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: example
  namespace: metallb-system
spec:
  ipAddressPools:
  - first-pool
EOF
kubectl apply -f metallb-ippool-config.yaml

部署一个nginx应用并暴露端口

部署应用:

kubectl create deployment nginx --image=registry.cn-hangzhou.aliyuncs.com/xiaohh-docker/nginx:latest

暴露端口:

kubectl expose deployment nginx --port=80 --type=LoadBalancer

可以看到成功暴露了一个IP地址:
解决containerd+k8s集群搭建镜像拉取不到的问题

且能够成功的访问:
解决containerd+k8s集群搭建镜像拉取不到的问题
好了下课文章来源地址https://www.toymoban.com/news/detail-492874.html

到了这里,关于解决containerd+k8s集群搭建镜像拉取不到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 通过containerd部署k8s集群环境及初始化时部分报错解决

    通过containerd部署k8s集群环境及初始化时部分报错解决

    目录 一.基础环境配置(每个节点都做) 1.hosts解析 2.防火墙和selinux 3.安装基本软件并配置时间同步 4.禁用swap分区 5.更改内核参数 6.配置ipvs 7.k8s下载 (1)配置镜像下载相关软件 (2)配置kubelet上的cgroup 二.下载containerd(每个节点都做) 1.下载基本软件 2.添加软件仓库信息 3.更

    2024年02月07日
    浏览(8)
  • K8S Containerd导入Docker image镜像

    K8S Containerd导入Docker image镜像

    Kubernetes在v1.20 版本宣布弃用 Dockershim (在v1.24正式移除),改用CRI接口去操作更为基础的containerd或CRI-O。 K8S在创建容器时,或多或少有些镜像无法正常拉取(网络等原因)。 还在使用 Docker Engine 时我们能方便的pull第三方同步的镜像,然后tag成需要的标签版本,让K8S从本地获

    2024年02月11日
    浏览(8)
  • K8S单Master集群安装(Containerd)

    K8S单Master集群安装(Containerd)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com 文章基于CentOS 7.8系统使用Containerdr作为容器运行时通过kubeadm指导搭建k8s单机master集群,使用calico作为k8s集群的网络插件。K8S官方在1.24版本彻底弃用docker。 需要服务器可以联网。

    2024年02月05日
    浏览(7)
  • jenkins发布Kubernetes(K8s)集群(基于containerd)

    jenkins发布Kubernetes(K8s)集群(基于containerd)

    上一篇文章 Jenkins入门与安装 1、k8s环境 版本 v1.26.5 ,容器为containerd 二进制安装Kubernetes(K8s)集群(基于containerd)—从零安装教程(带证书) 主机名 IP 系统版本 安装服务 master01 10.10.10.21 rhel7.5 nginx、etcd、api-server、scheduler、controller-manager、kubelet、proxy master02 10.10.10.22 rhel7.5 ngin

    2024年02月09日
    浏览(22)
  • debian11 安装 k8s,containerd ,阿里云镜像(已成功)

    系统要求:至少 2GB RAM(建议 4GB 或更多),网络连接。 节点准备:至少 3 台机器,1 台作为 Master 节点,2 台作为 Worker 节点。 安装sudo 设置主机名(在每台机器上): 替换 主机名 为 k8s-master、k8s-node1、k8s-node2 配置 /etc/hosts(在所有节点上): 将所有节点的 IP 地址和主机名

    2024年02月21日
    浏览(7)
  • k8s containerd集群配置安装完整踩坑教程

    k8s containerd集群配置安装完整踩坑教程

    完整踩坑和精简内容 containerd安装参考 k8s安装参考 两台机器 系统 CentOS 7.9 1、关闭swap 2、网桥设置 3、ipvs设置 4、关闭防火墙 5、禁用selinux 6、添加源 在所有节点上执行 1、安装最新的kubectl kubelet kubeadm 2、安装containerd 安装 配置 重启 3、安装crictl 编写配置文件 下载镜像 mast

    2024年02月09日
    浏览(13)
  • [kubernetes]二进制部署k8s集群-基于containerd

    k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。 除了containerd,比较流行的容器运行时还有podman,但是podman官方安装

    2024年02月12日
    浏览(15)
  • K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令

    K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令

    两种部署方式: kubeadm工具部署 。Kubeadm 是一个K8s 部署工具,提供 kubeadm init 和kubeadm join,用于快速部署 Kubernetes集群。 kubeadm 工具功能: kubeadm init:初始化一个 Master 节点。 kubeadm join:将工作节点加入集群。 kubeadm upgrade:升级 K8s 版本。 kubeadm token:管理 kubeadm join 使用的令

    2024年02月12日
    浏览(9)
  • k8s 1.27集群部署 容器运行时为containerd

    k8s 1.27集群部署 容器运行时为containerd

    1.1.1 主机操作系统说明 序号 操作系统及版本 备注 1 CentOS7u9 1.1.2 主机硬件配置说明 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.1.3 主机配置 1.1.3.1 主机名配置 由于本次使用3台主机完成kubern

    2024年02月03日
    浏览(7)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包