zoukankan      html  css  js  c++  java
  • k8s 切换容器引擎containerd

    k8s-切换容器引擎containerd

    1.k8s-切换容器引擎containerd

    • 1、配置先前条件

      [root@k8s-node02 ~]# cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
      > overlay
      > br_netfilter
      > EOF
      overlay
      br_netfilter
      [root@k8s-node02 ~]# modprobe overlay
      [root@k8s-node02 ~]# modprobe br_netfilter
      [root@k8s-node02 ~]# vim /etc/sysctl.d/99-sysctl-cri.conf
      [root@k8s-node02 ~]# cat /etc/sysctl.d/99-sysctl-cri.conf
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward  = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      [root@k8s-node02 ~]# sysctl --system
      
    • 2、 安装containerd

      [root@k8s-node02 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
      [root@k8s-node02 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      [root@k8s-node02 ~]# yum install -y containerd.io
      [root@k8s-node02 ~]# mkdir -p /etc/containerd
      [root@k8s-node02 ~]# containerd config default > /etc/containerd/config.toml
      [root@k8s-node02 ~]# systemctl restart containerd.service 
      
    • 3、停止docker服务

      [root@k8s-node02 ~]# /bin/systemctl stop docker
      Warning: Stopping docker.service, but it can still be activated by:
      docker.socket
      [root@k8s-node02 ~]# /bin/systemctl stop docker.socket 
      
    • 4、启动containerd服务

      [root@k8s-node02 ~]# /bin/systemctl start containerd.service 
      
    • 5、修改配置文件

      • pause 镜像设置过阿里云镜像仓库地址
      • cgroups 驱动设置为systemd
      • 拉取docker hub镜像配置加速地址设置为阿里云镜像仓库地址
      [root@k8s-node02 ~]# vim /etc/containerd/config.toml
       [plugins."io.containerd.grpc.v1.cri"]
          sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.2"
          .....
      
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
            SystemdCgroup = true
      
          ....
      
              [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
                endpoint = ["https://b9pmyelo.mirror.aliyuncs.com"]
                ....
      
    • 6、重启

      [root@k8s-node02 ~]# /bin/systemctl restart containerd.service 
      
    • 7、 配置kubelet使用containerd

      [root@k8s-node02 ~]# vim /etc/sysconfig/kubelet 
      [root@k8s-node02 ~]# cat /etc/sysconfig/kubelet 
      KUBELET_EXTRA_ARGS=--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --cgroup-driver=systemd
      [root@k8s-node02 ~]# /bin/systemctl restart kubelet
      
    • 8、 主master端验证,容器是否切换为containerd了

      [root@k8s-master ~]# kubectl get nodes -o wide
      NAME         STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
      k8s-master   Ready    master   31h   v1.19.0   172.17.0.2    <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   docker://20.10.8
      k8s-node01   Ready    <none>   31h   v1.19.0   172.17.0.13   <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   docker://20.10.8
      k8s-node02   Ready    <none>   31h   v1.19.0   172.17.0.16   <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   containerd://1.4.9
      

    2. 恢复到docker引擎

    • 编写kubelet文件

      [root@k8s-node02 ~]# vim /etc/sysconfig/kubelet  
      [root@k8s-node02 ~]# cat /etc/sysconfig/kubelet 
      KUBELET_EXTRA_ARGS=--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --cgroup-driver=systemd
      
      # 修改为原来模式
      [root@k8s-node02 ~]# vim /etc/sysconfig/kubelet 
      [root@k8s-node02 ~]# cat /etc/sysconfig/kubelet 
      KUBELET_EXTRA_ARGS=
      
    • 停止containerd

      [root@k8s-node02 ~]# /bin/systemctl stop containerd
      
    • 重新启动docker

      [root@k8s-node02 ~]# /bin/systemctl restart docker
      [root@k8s-node02 ~]# ps -ef |grep docker
      root      4901     1  1 20:38 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
      root      5199 31986  0 20:38 pts/1    00:00:00 grep --color=auto docker
      
    • 重启kubelet

      [root@k8s-node02 ~]# /bin/systemctl restart kubelet.service 
      
    • 验证是否恢复到docker引擎

      [root@k8s-master ~]# kubectl get nodes -o wide
      NAME         STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
      k8s-master   Ready    master   2d6h   v1.19.0   172.17.0.2    <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   docker://20.10.8
      k8s-node01   Ready    <none>   2d6h   v1.19.0   172.17.0.13   <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   docker://20.10.8
      k8s-node02   Ready    <none>   2d6h   v1.19.0   172.17.0.16   <none>        CentOS Linux 7 (Core)   3.10.0-1160.11.1.el7.x86_64   docker://20.10.8
      
  • 相关阅读:
    Vue自带的过滤器
    Spring Boot定时任务应用实践
    iOS中NSDate常用转换操作整合
    iOS中NSFileManager文件常用操作整合
    定位城市的封装
    微信支付和支付宝的封装
    App审核被拒(后台定位被拒,ipv6被拒,广告标示被拒的解决方案)
    按钮图片文字随意摆放
    设备信息大全
    Library not found for -lAPOpenSdk
  • 原文地址:https://www.cnblogs.com/scajy/p/15577903.html
Copyright © 2011-2022 走看看