OpenEuler20.03離線部署k8s集群v1.22.7

1、離線部署文件目錄說(shuō)明

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

  • docker
    tar、docker安裝包

  • kubernetes
    kubeadm、kubectl、kubelet及相關(guān)依賴包

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

2、master節(jié)點(diǎn)部署流程

  • 2.1 鏡像導(dǎo)入

  • 2.2 修改網(wǎng)絡(luò)配置

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

    修改ONBOOT=yes

      systemctl restart NetworkManager
      ip a
    

    獲取eth0的ip,方便遠(yuǎn)程工具連接。

  • 2.3 設(shè)置hostname,配置host

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

    ip替換本機(jī)ip
    172.20.76.186 k8s.master
    172.20.69.172 k8s.node1

  • 2.4 關(guān)閉防火墻

      systemctl stop firewalld
      systemctl disable firewalld
    
  • 2.5 關(guān)閉swap

      sed -ri 's/.*swap.*/#&/' /etc/fstab
    
  • 2.6 關(guān)閉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內(nèi)容如下

    [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內(nèi)容如下

    {
    "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 導(dǎo)入k8s相關(guān)鏡像

      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替換本機(jī)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
    

    復(fù)制返回kubeadm join信息(work節(jié)點(diǎn)加入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狀態(tài)

      kubectl get nodes
      kubectl get pods -A
    

3、work節(jié)點(diǎn)部署流程

  • 3.1 鏡像導(dǎo)入

  • 3.2 修改網(wǎng)絡(luò)配置

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

    修改ONBOOT=yes

      systemctl restart NetworkManager
      ip a
    

    獲取eth0的ip,方便遠(yuǎn)程工具連接。

  • 3.3 設(shè)置hostname,配置host

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

    ip替換本機(jī)ip
    172.20.76.186 k8s.master
    172.20.69.172 k8s.node1

  • 3.4 關(guān)閉防火墻

      systemctl stop firewalld
      systemctl disable firewalld
    
  • 3.5 關(guān)閉swap

      sed -ri 's/.*swap.*/#&/' /etc/fstab
    
  • 3.6 關(guān)閉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內(nèi)容如下

    [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內(nèi)容如下

    {
    "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 導(dǎo)入k8s相關(guān)鏡像

      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節(jié)點(diǎn)/etc/kubernetes/admin.conf文件上傳至work節(jié)點(diǎn)/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狀態(tài)

      kubectl get nodes
      kubectl get pods -A
    

4、測(cè)試

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容