OpenEuler20.03离线部署k8s集群v1.22.7

1、离线部署文件目录说明

  • os
    openEuler-20.03-LTS-SP4-x86_64-dvd.iso

  • docker
    tar、docker安装包

  • kubernetes
    kubeadm、kubectl、kubelet及相关依赖包

  • k8s_images
    kube-apiserver、kube-scheduler、kube-proxy、kube-controller-manager、etcd、coredns、pause、flannel、flannel-cni-plugin镜像和kube-flannel.yml

2、master节点部署流程

  • 2.1 镜像导入

  • 2.2 修改网络配置

      cd /etc/sysconfig/network-scripts
      vi ifcfg-eth0
    

    修改ONBOOT=yes

      systemctl restart NetworkManager
      ip a
    

    获取eth0的ip,方便远程工具连接。

  • 2.3 设置hostname,配置host

      hostnamectl set-hostname k8s.master
      vi /etc/hosts
    

    ip替换本机ip
    172.20.76.186 k8s.master
    172.20.69.172 k8s.node1

  • 2.4 关闭防火墙

      systemctl stop firewalld
      systemctl disable firewalld
    
  • 2.5 关闭swap

      sed -ri 's/.*swap.*/#&/' /etc/fstab
    
  • 2.6 关闭selinux

      sed -i 's/enforcing/disabled/' /etc/selinux/config
    
  • 2.7 重启

      reboot
    
  • 2.8 安装tar

      rpm -Uvh  tar-1.26-35.el7.x86_64.rpm --nodeps --force
    
  • 2.9 安装docker

      tar -zxvf docker-20.10.10.tgz
      cp docker/* /usr/bin/
      vi /etc/systemd/system/docker.service
    

    docker.service内容如下

    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd --selinux-enabled=false
    ExecReload=/bin/kill -s HUP $MAINPID
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    [Install]
    WantedBy=multi-user.target

    chmod +x /etc/systemd/system/docker.service
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker  
  • 2.10 配置docker的cgroupdriver为systemd

      vi /etc/docker/daemon.json
    

    daemon.json内容如下

    {
    "registry-mirrors": [
    "http://hub.geekery.cn",
    "http://hub.littlediary.cn",
    "http://docker.rainbond.cc",
    "https://q3vkr298.mirror.aliyuncs.com",
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
    ],
    "exec-opts":["native.cgroupdriver=systemd"]
    }

      systemctl restart docker
    
  • 2.11 安装kubeadm、kubectl、kubelet

      mkdir -p /k8s/kubernetes
    

    将kubernetes目录下所有文件上传至/k8s/kubernetes

      rpm -ivh /k8s/kubernetes/*.rpm
      systemctl enable --now kubelet
    
  • 2.12 导入k8s相关镜像

      mkdir -p /k8s/kubadm-init-images
    

    将k8s_images目录下所有文件上传至/k8s/kubadm-init-images

      find /k8s/kubadm-init-images/ -type f -name "*.tar" -exec docker load -i {} \;
    

    apiserver-advertise-address替换本机ip

      kubeadm init --apiserver-advertise-address=172.20.76.186 --kubernetes-version v1.22.7 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
    

    复制返回kubeadm join信息(work节点加入cluster用到)

    kubeadm join 172.20.76.186:6443 --token 1st15x.4npingkcb3uwul5k
    --discovery-token-ca-cert-hash sha256:31188718933358f0d04103a96ad941c9d4880c0d99fdcc37e827642f6355220b

      mkdir -p $HOME/.kube
      cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
      export KUBECONFIG=/etc/kubernetes/admin.conf
    
  • 2.13 安装flannel

      kubectl apply -f kube-flannel.yml
    
  • 2.14 查看node、pod状态

      kubectl get nodes
      kubectl get pods -A
    

3、work节点部署流程

  • 3.1 镜像导入

  • 3.2 修改网络配置

      cd /etc/sysconfig/network-scripts
      vi ifcfg-eth0
    

    修改ONBOOT=yes

      systemctl restart NetworkManager
      ip a
    

    获取eth0的ip,方便远程工具连接。

  • 3.3 设置hostname,配置host

      hostnamectl set-hostname k8s.node1
      vi /etc/hosts
    

    ip替换本机ip
    172.20.76.186 k8s.master
    172.20.69.172 k8s.node1

  • 3.4 关闭防火墙

      systemctl stop firewalld
      systemctl disable firewalld
    
  • 3.5 关闭swap

      sed -ri 's/.*swap.*/#&/' /etc/fstab
    
  • 3.6 关闭selinux

      sed -i 's/enforcing/disabled/' /etc/selinux/config
    
  • 3.7 重启

      reboot
    
  • 3.8 安装tar

      rpm -Uvh  tar-1.26-35.el7.x86_64.rpm --nodeps --force
    
  • 3.9 安装docker

      tar -zxvf docker-20.10.10.tgz
      cp docker/* /usr/bin/
      vi /etc/systemd/system/docker.service
    

    docker.service内容如下

    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd --selinux-enabled=false
    ExecReload=/bin/kill -s HUP $MAINPID
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    [Install]
    WantedBy=multi-user.target

    chmod +x /etc/systemd/system/docker.service
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker  
  • 3.10 配置docker的cgroupdriver为systemd

      vi /etc/docker/daemon.json
    

    daemon.json内容如下

    {
    "registry-mirrors": [
    "http://hub.geekery.cn",
    "http://hub.littlediary.cn",
    "http://docker.rainbond.cc",
    "https://q3vkr298.mirror.aliyuncs.com",
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
    ],
    "exec-opts":["native.cgroupdriver=systemd"]
    }

      systemctl restart docker
    
  • 3.11 安装kubeadm、kubectl、kubelet

      mkdir -p /k8s/kubernetes
    

    将kubernetes目录下所有文件上传至/k8s/kubernetes

      rpm -ivh /k8s/kubernetes/*.rpm
      systemctl enable --now kubelet
    
  • 3.12 导入k8s相关镜像

      mkdir -p /k8s/kubadm-init-images
    

    将k8s_images目录下flannel-cni-plugin.tar、flannel.tar、kube-proxy.tar 、pause.tar上传至/k8s/kubadm-init-images

      find /k8s/kubadm-init-images/ -type f -name "*.tar" -exec docker load -i {} \;
    
  • 3.13 配置admin.conf

    将master节点/etc/kubernetes/admin.conf文件上传至work节点/etc/kubernetes目录下

      vi ~/.bash_profile
    

    export KUBECONFIG=/etc/kubernetes/admin.conf

      source ~/.bash_profile
    
  • 3.14 加入集群

      kubeadm join 172.20.76.186:6443 --token 1st15x.4npingkcb3uwul5k \
          --discovery-token-ca-cert-hash sha256:31188718933358f0d04103a96ad941c9d4880c0d99fdcc37e827642f6355220b
    
  • 3.15 查看node、pod状态

      kubectl get nodes
      kubectl get pods -A
    

4、测试

kubectl create deployment nginx --image=nginx

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

kubectl get pod,svc

5、离线安装包

链接: https://pan.baidu.com/s/1jW_t5xQ4kErtXLALPmftyA 提取码: iqq4

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容