当前位置: 首页 > 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.lryc.cn/news/599010.html

相关文章:

  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十四课——车牌识别的FPGA实现(6)叠加车牌识别的信息
  • 5.7 input子系统
  • RocketMQ集群高级特性
  • 洛谷刷题7.24
  • 办公自动化入门:如何高效将图片整合为PDF文档
  • 精通Python PDF裁剪:从入门到专业的三重境界
  • 读书笔记(黄帝内经)
  • 【CMake】CMake 常用语法总结
  • 【STM32】FreeRTOS 任务的创建(二)
  • Bright Data 实战指南:从竞品数据抓取到电商策略优化全流程
  • 深度分析Java类加载机制
  • 【C# 找最大值、最小值和平均值及大于个数和值】2022-9-23
  • 行为型模式-协作与交互机制
  • 基于Matlab图像处理的水果分级系统
  • OpenCV(03)插值方法,边缘填充,透视变换,水印制作,噪点消除
  • 【计算机网络】第六章:应用层
  • 【OpenCV实现多图像拼接】
  • jax study notes[19]
  • Python:Matplotlib笔记
  • 季逸超:Manus的上下文工程启示
  • JMeter压测黑马点评优惠券秒杀的配置及请求爆红问题的解决(详细图解)
  • 基于20和28 nm FPGAs的实现多通道、低非线性时间到数字转换器
  • Android15或AndroidU广播的发送流程
  • Redis学习:持久化与事务(Transaction)
  • 如何查看docker实例是否挂载目录,以及挂载了哪些目录
  • 浏览器访问[http://www.taobao.com](http://www.taobao.com/),经历了怎样的过程。
  • NOTEPAD!NPCommand函数分析之comdlg32!GetSaveFileNameW--windows记事本源代码分析
  • Python 程序设计讲义(15):Python 的数据运算——位运算
  • 人形机器人_双足行走动力学:Maxwell模型及在拟合肌腱特性中的应用
  • 深入解析Java微服务架构请求流程:Nginx到Nacos的完整旅程