Kubernetes 1.24 1.25 集群使用docker作为容器

背景

在新版本Kubernetes环境(1.24以及以上版本)下官方不在支持docker作为容器运行时了,若要继续使用docker 需要对docker进行配置一番。需要安装cri-docker作为Kubernetes容器

查看当前容器运行时

  1.  
  1. # 查看指定节点容器运行时
  2. kubectl describe node k8s-node05 | grep Container
  3. Container Runtime Version: containerd://1.6.8
  4. # 查看所有节点容器运行时
  5. kubectl describe node | grep Container
  6. Container Runtime Version: containerd://1.6.8
  7. Container Runtime Version: containerd://1.6.8
  8. Container Runtime Version: containerd://1.6.8
  9. Container Runtime Version: containerd://1.6.8
  10. Container Runtime Version: containerd://1.6.8
  11. Container Runtime Version: containerd://1.6.8
  12. Container Runtime Version: containerd://1.6.8
  13. Container Runtime Version: containerd://1.6.8

安装docker

  1.  
  1. # 更新源信息
  2. yum update
  3. # 安装必要软件
  4. yum install -y yum-utils device-mapper-persistent-data lvm2
  5. # 写入docker源信息
  6. sudo yum-config-manager \
  7. --add-repo \
  8. https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
  9. # 更新源信息并进行安装
  10. yum update
  11. yum install docker-ce docker-ce-cli containerd.io
  12. # 配置加速器
  13. sudo mkdir -p /etc/docker
  14. sudo tee /etc/docker/daemon.json <<-'EOF'
  15. {
  16. "registry-mirrors": ["https://ted9wxpi.mirror.aliyuncs.com"],
  17. "exec-opts": ["native.cgroupdriver=systemd"]
  18. }
  19. EOF
  20. sudo systemctl daemon-reload
  21. sudo systemctl restart docker

安装cri-docker

  1.  
  1. # 由于1.24以及更高版本不支持docker所以安装cri-docker
  2. # 下载cri-docker
  3. wget https://ghproxy.com/https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5.amd64.tgz
  4. # 解压cri-docker
  5. tar xvf cri-dockerd-0.2.5.amd64.tgz
  6. cp cri-dockerd/cri-dockerd /usr/bin/
  7. # 写入启动配置文件
  8. cat > /usr/lib/systemd/system/cri-docker.service <<EOF
  9. [Unit]
  10. Description=CRI Interface for Docker Application Container Engine
  11. Documentation=https://docs.mirantis.com
  12. After=network-online.target firewalld.service docker.service
  13. Wants=network-online.target
  14. Requires=cri-docker.socket
  15. [Service]
  16. Type=notify
  17. ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
  18. ExecReload=/bin/kill -s HUP $MAINPID
  19. TimeoutSec=0
  20. RestartSec=2
  21. Restart=always
  22. StartLimitBurst=3
  23. StartLimitInterval=60s
  24. LimitNOFILE=infinity
  25. LimitNPROC=infinity
  26. LimitCORE=infinity
  27. TasksMax=infinity
  28. Delegate=yes
  29. KillMode=process
  30. [Install]
  31. WantedBy=multi-user.target
  32. EOF
  33. # 写入socket配置文件
  34. cat > /usr/lib/systemd/system/cri-docker.socket <<EOF
  35. [Unit]
  36. Description=CRI Docker Socket for the API
  37. PartOf=cri-docker.service
  38. [Socket]
  39. ListenStream=%t/cri-dockerd.sock
  40. SocketMode=0660
  41. SocketUser=root
  42. SocketGroup=docker
  43. [Install]
  44. WantedBy=sockets.target
  45. EOF
  46. # 进行启动cri-docker
  47. systemctl daemon-reload ; systemctl enable cri-docker --now

为kubelet配置容器运行时

  1. # 1.25 版本下 所有k8s节点配置kubelet service
  2. cat > /usr/lib/systemd/system/kubelet.service << EOF
  3. [Unit]
  4. Description=Kubernetes Kubelet
  5. Documentation=https://github.com/kubernetes/kubernetes
  6. After=containerd.service
  7. Requires=containerd.service
  8. [Service]
  9. ExecStart=/usr/local/bin/kubelet \\
  10. --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig \\
  11. --kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\
  12. --config=/etc/kubernetes/kubelet-conf.yml \\
  13. --container-runtime-endpoint=unix:///run/cri-dockerd.sock \\
  14. --node-labels=node.kubernetes.io/node=
  15. [Install]
  16. WantedBy=multi-user.target
  17. EOF
  18. # 1.24 版本下 所有k8s节点配置kubelet service
  19. cat > /usr/lib/systemd/system/kubelet.service << EOF
  20. [Unit]
  21. Description=Kubernetes Kubelet
  22. Documentation=https://github.com/kubernetes/kubernetes
  23. After=containerd.service
  24. Requires=containerd.service
  25. [Service]
  26. ExecStart=/usr/local/bin/kubelet \\
  27. --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig \\
  28. --kubeconfig=/etc/kubernetes/kubelet.kubeconfig \\
  29. --config=/etc/kubernetes/kubelet-conf.yml \\
  30. --container-runtime=remote \\
  31. --runtime-request-timeout=15m \\
  32. --container-runtime-endpoint=unix:///run/cri-dockerd.sock \\
  33. --cgroup-driver=systemd \\
  34. --node-labels=node.kubernetes.io/node= \\
  35. --feature-gates=IPv6DualStack=true
  36. [Install]
  37. WantedBy=multi-user.target
  38. EOF
  39. # 重启
  40. systemctl daemon-reload
  41. systemctl restart kubelet
  42. systemctl enable --now kubelet
  1. 验证
  1.  
  1. # 查看指定节点容器运行时
  2. kubectl describe node k8s-node05 | grep Container
  3. Container Runtime Version: docker://20.10.17
  4. # 查看所有节点容器运行时
  5. kubectl describe node | grep Container
  6. Container Runtime Version: containerd://1.6.8
  7. Container Runtime Version: containerd://1.6.8
  8. Container Runtime Version: containerd://1.6.8
  9. Container Runtime Version: containerd://1.6.8
  10. Container Runtime Version: containerd://1.6.8
  11. Container Runtime Version: containerd://1.6.8
  12. Container Runtime Version: containerd://1.6.8
  13. Container Runtime Version: docker://20.10.17

关于

https://www.oiox.cn/

https://www.oiox.cn/index.php/start-page.html

CSDN、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

文章主要发布于微信公众号

​k8s 1.24 1.25 集群使用docker作为容器的更多相关文章

  1. kubernetes集群中的pause容器

    昨天晚上搭建好了k8s多主集群,启动了一个nginx的pod,然而每启动一个pod就伴随这一个pause容器,考虑到之前在做kubelet的systemd unit文件时有见到: 1 2 3 4 5 ...

  2. mysql集群基于docker 在centos上

    新博客https://blog.koreyoshi.work/ mysql集群(PXC)基于docker 在centos上 常用设计方案 Replication(复制) 速度快 弱一致性 低价值 场景 ...

  3. Kubernetes 集群升级docker版本

    Kubernetes 集群升级docker版本   原则:升级完一台正常后再接着升下一台. Work Node 一.迁移上的pod(保证业务,但期间会出现抖动) kubectl drain $NODE ...

  4. 基于Ceph分布式集群实现docker跨主机共享数据卷

    上篇文章介绍了如何使用docker部署Ceph分布式存储集群,本篇在此基础之上,介绍如何基于Ceph分布式存储集群实现docker跨主机共享数据卷. 1.环境准备 在原来的环境基础之上,新增一台cen ...

  5. Kubernetes(k8s)1.12.2集群搭建

    本博客搭建k8s集群1.12.2版本 1. 准备2台以上最低2核4G的服务器 2. 关闭机器的防火墙 12 systemctl disable firewalldsystemctl stop fire ...

  6. [k8s]通过svc来访问集群podhttp://api:8080/api/v1/namespaces/default/services/mynginx/proxy/

    以往的套路是,安装完成k8s集群后-->安装dns-->安装ingress以便外面访问(或者映射nodeport方式) 如果你不想做任何关于ingress/nodeport一些操作.想通过 ...

  7. 基于Kubernetes v1.24.0的集群搭建(二)

    上一篇文章主要是介绍了,每台虚拟机的环境配置.接下来我们开始有关K8S的相关部署. 另外补充一下上一篇文章中的K8S的change​log链接: https://github.com/kubernet ...

  8. 基于Kubernetes v1.24.0的集群搭建(三)

    1 使用kubeadm部署Kubernetes 如无特殊说明,以下操作可以在所有节点上进行. 1.1 首先我们需要配置一下阿里源 cat <<EOF > /etc/yum.repos ...

  9. K8S学习笔记之CentOS7集群使用Chrony实现时间同步

    0x00 概述 容器集群对时间同步要求高,实际使用环境中必须确保集群中所有系统时间保持一致,openstack官方也推荐使用chrony代替ntp做时间同步. Chrony是一个开源的自由软件,像Ce ...

  10. mysql5.7.25集群部署和方案设计(附PXC一键部署脚本)

    还记得我们之前部署mysql集群有多麻烦嘛?波哥来救你们啦!~ 我已将项目上传到了我的github仓库中,大家可以点击仓库地址出现的连接登录查看相应的代码!如果觉得不错别忘了转发.点赞哦! 部署步骤: ...

随机推荐

  1. 01. JavaScript基础知识

    一.JavaScript简介   JavaScript 是一门解释型编程语言,解释型编程语言指代码不需要手动编译,而是通过解释器边解释边执行.所以,要运行 JS,我们需要在计算机中安装 JS 的解释器 ...

  2. openwrt扩容

    方法二.三记得先使用Linux系统打开 GParted -- Download 方法三偏移地址获取: 1. 运行的openwrt安装losetup 2. 安装完毕后执行:losetup 获取偏移地址. ...

  3. eclipse静态资源保存不重启(热部署静态资源/html)

    简单的来说就是windows->Prefrence->搜索 build automatically 并勾选就可以 不同的版本设置选项可能略微不同,其实比较简单但是新手可能不好找,所以帮到的 ...

  4. UG二次开发-CAM-执行方式

    以C#开发为例,通常先用[操作记录]功能录制关键代码,得到一个.cs文件. (1)可以直接使用[播放操作记录]的方式执行该.cs文件. (2)可以建立一个C#的类库工程,将上述.cs文件加载进去,添加 ...

  5. JQUERY选择器大全(转载)

    在Web应用程序中,大部分的客户端操作都是基于对象的操作,要操作对象就必须先获取对象,jQuery提供了强大的选择器让我们获取对象.我人为地将jQuery选择器分为两大部分:选择对象和筛选条件.选择对 ...

  6. MySql5.7基础配置

    MySql5.7基础配置 [client] #设置mysql客户端的字符集 default-character-set=utf8 [mysqld] #设置mysql端口为3306 port = 330 ...

  7. api加密与校验

    一.函数代码 /** * 校验 * @data (请求的数组) * @salt (加密盐) * */ private function verify(array $data, $salt){ $sig ...

  8. 记录linux上无法和本地传输文件

    在学习docker搭建nacos的过程中,涉及到上传本地文件,但是包括从xshell直接拖拽还是xftp上传,都是失败, 最后百度查找多种不同的结果,最后实验下来是文件夹没有权限的问题. 解决步骤如下 ...

  9. Promise和await、同步和异步

    1.同步和异步是什么: ​ ①同步:同步是指如果一个进程在执行某个请求的时候,如果该请求需要等待一段时间,那么该进程会一直等待下去,直到收到返回信息才继续执行下去 ​ ②异步: 指一个请求在执行某个请 ...

  10. mysql索引类型详解

    转载网址: http://c.biancheng.net/view/7897.html