当前位置: 首页 > news >正文

cri-docker部署高版本k8s

1.安装docker

  • 添加docker镜像到本地:

    wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 然后输入命令:

    yum install -y --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7  
  • 修改配置文件:

    mkdir /etc/docker
    #  Docker在默认情况下使用的Cgroup Driver为cgroupfs,而kubernetes推荐使用systemd来代替cgroupfs
    cat <<eof > /etc/docker/daemon.json
    {
    "storage-driver": "devicemapper",
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": [ "https://f633c540bf7445e6b69d3a41fa95b3da.mirror.swr.myhuaweicloud.com" ]
    }
    eof
    cat << eof > /etc/sysconfig/docker
    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
    eof
  • 重启,并设置开机自启:

    systemctl restart docker && systemctl enable docker

2.安装cri-Dockerd:

  • 下载:

    wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm
  • 安装:

    yum install -y cri-dockerd-0.3.2-3.el7.x86_64.rpm
  • 修改配置文件:

    vi /usr/lib/systemd/system/cri-docker.service
    # 修改10行的
    ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
  • 重启,并设置开机自启:

    systemctl restart cri-docker && systemctl enable cri-docker

3.安装k8s组件:

  • 配置k8syum仓库:

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
  • 安装kubeadm、kubelet和kubectl

    组件说明
    kubeadm搭建kubernetes集群的工具
    kubelet负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器
    kubectl用来与集群通信的命令行工具。
    yum install --setopt=obsoletes=0 kubelet-1.27.6 kubeadm-1.27.6 kubectl-1.27.6 -y
  • 编辑/etc/sysconfig/kubelet,配置kubelet的cgroup

    cat <<eof > /etc/sysconfig/kubelet
    KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
    KUBE_PROXY_MODE="ipvs"
    eof
  • 设置kubelet开机自启

    systemctl enable kubelet

4.准备集群镜像:

  • 在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需镜像可以通过下面命令查看

    kubeadm config images list
  • 下载镜像:此镜像在kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替代方案下载这些镜像

    kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

5.集群初始化:

  • 在 master 节点:

    • 创建集群

      # --apiserver-advertise-address:集群入口master的ip
      kubeadm init \
      --apiserver-advertise-address=192.168.235.131 \
      --image-repository registry.aliyuncs.com/google_containers \
      --service-cidr=10.96.0.0/16 \
      --pod-network-cidr=10.244.0.0/16 \
      --kubernetes-version v1.27.6 \
      --cri-socket=unix:///var/run/cri-dockerd.sock
      # 如果出现报错,可以清理集群初始化产生的文件重新尝试
      rm -rf /etc/kubernetes/*
      rm -rf /var/lib/etcd/*
      rm -rf ~/.kube/*
      # 如果忘记添加节点密钥,可以选择重新生成
      kubeadm token create --print-join-command
      # 成功执行后将给出将node节点加入集群的命令
      kubeadm join 192.168.235.131:6443 --token 4u7bkb.edx2uq5d27biwg2u \--discovery-token-ca-cert-hash sha256:62e2cec9f1db27ff2ec5b579f01fad00c6fb8cb56f6e749c80dfcb4cbb5c5a28
    • 创建必要文件(创建后用户可使用kubectl命令

      mkdir -p $HOME/.kube
      cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      chown $(id -u):$(id -g) $HOME/.kube/config
  • 在 node 节点,将node节点加入集群(命令各不相同,需要在住master节点创建集群后获取命令

    kubeadm join 192.168.235.131:6443 --token 4u7bkb.edx2uq5d27biwg2u \--discovery-token-ca-cert-hash sha256:62e2cec9f1db27ff2ec5b579f01fad00c6fb8cb56f6e749c80dfcb4cbb5c5a28
  • 在 master 节点,在查看集群状态 此时的集群状态为NotReady,这是因为还没有配置网络插件

    [root@master ~]# kubectl get nodes
    NAME     STATUS     ROLES    AGE     VERSION
    master   NotReady   master   12m     v1.17.4
    node1    NotReady   <none>   2m11s   v1.17.4
    node2    NotReady   <none>   10s     v1.17.4

http://www.dtcms.com/a/296332.html

相关文章:

  • Windows 11 24H2 中文版安装教程(2025年4月更新版/官方ISO/详细步骤)
  • 实验-OSPF
  • 完成多项问题修复,MaxKB开源企业级智能体平台v1.10.9 LTS版本发布
  • 华为OpenStack架构学习9篇 连载—— 01 OpenStack架构介绍【附全文阅读】
  • 学习游戏制作记录(技能系统)7.24
  • Selenium基础教程
  • day46.通道注意力
  • Vue2——5
  • set集合(HashSet、LinkedHashSet、TreeSet)
  • MySQL数据库迁移至国产数据库测试案例
  • 二、计算机网络技术——第6章:应用层
  • 深入理解 ThreadLocal:从原理到最佳实践
  • Vue实现地图图片动态轨迹组件,支持放大缩小重置,兼容触摸等
  • Uniapp中使用vue3语法
  • vue3升级了哪些重要功能
  • vite+vue3 工程-SVG图标配置使用指南——vite-plugin-svg-icons 插件
  • pytest中使用skip跳过某个函数
  • 4.1.2 XmlInclude 在 C# 中的作用及示例
  • 【软件与环境】--SSH连接远程服务器工具:FinalShell
  • C语言:详解文件操作
  • 【Java工程师面试全攻略】Day12:系统安全与高可用设计
  • 嵌入式linux I2C 设备开发调试 使用i2cget 工具失败的问题
  • JavaScript性能优化实战指南:从原理到最佳实践
  • Flink-1.19.0源码详解7-Flink集群端调度
  • 跨境支付入门~国际支付结算(区块链篇)
  • jina-embedding-v4 环境搭建全过程
  • 2025年“创新杯”(原钉钉杯) B题 详细建模思路
  • 牛客网刷题进阶挑战VL25——VL49
  • 【Linux网络编程】传输层协议 - UDP
  • 【数据结构初阶】--二叉树(二)