1. <dd id="erndk"></dd>
                1. 從零搭建k8s集群

                  互聯網 2021/12/29 23:07:23

                  角色IPmaster 192.168.185.6slave1 192.168.185.7slave2 192.168.185.81.初始化 1.1 關閉防火墻systemctl stop firewalld && systemctl disable firewalld1.2 關閉selinux# 臨時 setenforce 0# 永久 sed -i s/enforcing/disabled/ /etc/selinux/config# 重啟 reb…
                  角色IP
                  master 192.168.185.6
                  slave1 192.168.185.7
                  slave2 192.168.185.8

                  1.初始化

                  1.1 關閉防火墻

                  systemctl stop firewalld && systemctl disable firewalld
                  

                  1.2 關閉selinux

                  # 臨時
                  setenforce 0
                  
                  # 永久
                  sed -i 's/enforcing/disabled/' /etc/selinux/config
                  
                  # 重啟
                  reboot
                  

                  1.3 關閉swap分區

                  # 臨時關閉swap分區
                  swapoff -a
                  
                  # 永久
                  sed -ri 's/.*swap.*/#&/' /etc/fstab
                  # 重啟
                  reboot
                  

                  1.4 設置主機名

                  hostnamectl set-hostname master  # 主節點(ip:192.168.185.6)上設置
                  hostnamectl set-hostname slave1  # 主節點(ip:192.168.185.7)上設置
                  hostnamectl set-hostname slave2 # 主節點(ip:192.168.185.8)上設置
                  

                  1.5 添加hosts

                  每個機器上都執行

                  cat >> /etc/hosts << EOF
                  192.168.185.6 master
                  192.168.185.7 slave1
                  192.168.185.8 slave2
                  EOF
                  

                  1.6 將橋接的IPv4流量傳遞到iptables的鏈

                  每個機器上都執行

                  cat > /etc/sysctl.d/k8s.conf << EOF
                  net.bridge.bridge-nf-call-ip6tables = 1
                  net.bridge.bridge-nf-call-iptables = 1
                  net.ipv4.ip_forward = 1
                  vm.swappiness = 0
                  EOF
                  

                    

                  # 加載br_netfilter模塊
                  modprobe br_netfilter
                  

                    

                  # 查看是否加載
                  lsmod | grep br_netfilter
                  

                    

                  # 生效
                  sysctl --system  
                  

                  1.7 時間同步

                  每個節點都執行

                  yum install ntpdate -y
                  ntpdate ntp1.aliyun.com
                  

                  1.8 開啟ipvs

                  在每個節點都執行

                  yum -y install ipset ipvsadm
                  

                   

                  cat > /etc/sysconfig/modules/ipvs.modules <<EOF
                  #!/bin/bash
                  modprobe -- ip_vs
                  modprobe -- ip_vs_rr
                  modprobe -- ip_vs_wrr
                  modprobe -- ip_vs_sh
                  modprobe -- nf_conntrack_ipv4
                  EOF
                  

                    

                  chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
                  

                    

                  lsmod | grep -e ipvs -e nf_conntrack_ipv4
                  

                  1.9 所有節點安裝Docker/kubeadm/kubelet/kubectl

                  1.9.1 安裝docker

                  yum install -y yum-utils evice-mapper-persistent-data lvm2
                  
                  yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
                  
                  yum install docker-ce docker-ce-cli containerd.io -y
                  
                  mkdir -p /etc/docker
                  
                  tee /etc/docker/daemon.json <<-'EOF'
                  {
                      "exec-opts": ["native.cgroupdriver=systemd"], 
                      "registry-mirrors" : [
                          "https://registry.docker-cn.com",
                          "https://docker.mirrors.ustc.edu.cn",
                          "http://hub-mirror.c.163.com",
                          "https://cr.console.aliyun.com/"
                    ]
                  }
                  EOF
                  
                  systemctl daemon-reload
                  systemctl restart docker && systemctl enable docker
                  

                  1.9.2 安裝kubeadm、kubelet和kubectl

                  cat > /etc/yum.repos.d/kubernetes.repo << EOF
                  [kubernetes]
                  name=Kubernetes
                  baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
                  enabled=1
                  gpgcheck=0
                  repo_gpgcheck=0
                  gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
                  EOF
                  

                    

                  yum install -y kubelet kubeadm kubectl
                  
                  vi /etc/sysconfig/kubelet  # 將文件內容修改如下
                  KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
                  
                  systemctl enable kubelet && systemctl start kubelet
                  

                  2 部署k8s集群

                  2.1 初始化master節點

                  # 由于默認拉取鏡像地址k8s.gcr.io國內無法訪問,這里需要指定阿里云鏡像倉庫地址
                  kubeadm init \
                    --apiserver-advertise-address=192.168.185.6 \
                    --image-repository registry.aliyuncs.com/google_containers \
                    --kubernetes-version v1.23.1 \
                    --service-cidr=10.96.0.0/12 \
                    --pod-network-cidr=10.244.0.0/16
                  

                   

                   根據提示執行

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

                  2.2 添加其他兩個節點到集群里

                  到其他兩個節點機器里執行

                  kubeadm join 192.168.185.6:6443 --token vj9im7.mouxm59dtbdcmq9l \
                          --discovery-token-ca-cert-hash sha256:080c4b13b9fade0815d2f7df612bfdd522d484641fc3b2ec3b05cd1e348f219c
                  

                  執行以上命令就是將節點添加到集群里,在master節點查看集群里的節點

                  kubectl get nodes
                  

                   

                   

                  # 默認的token有效期為24小時,當過期之后,該token就不能用了,這時可以使用如下的命令創建token
                  kubeadm token create --print-join-command
                  # 生成一個永不過期的token
                  kubeadm token create --ttl 0
                  

                  2.3 部署CNI網絡插件

                  在Master節點部署CNI網絡插件(可能會失敗,如果失敗,請下載到本地,然后安裝)

                  wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
                  kubectl apply -f kube-flannel.yml
                  

                  查看部署CNI網絡插件進度

                  kubectl get pods -n kube-system
                  

                   

                  3.檢查k8s集群情況

                   在Master節點使用kubectl工具查看節點狀態

                  kubectl get nodes

                   

                   查看集群健康狀態

                  kubectl get cs
                  

                   

                   查看集群信息

                  kubectl cluster-info
                  

                   

                  隨時隨地學軟件編程-關注百度小程序和微信小程序
                  關于找一找教程網

                  本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
                  本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
                  [從零搭建k8s集群]http://www.yachtsalesaustralia.com/tech/detail-277428.html

                  贊(0)
                  關注微信小程序
                  程序員編程王-隨時隨地學編程

                  掃描二維碼或查找【程序員編程王】

                  可以隨時隨地學編程啦!

                  技術文章導航 更多>
                  掃一掃關注最新編程教程
                  国产在线拍揄自揄视频菠萝

                        1. <dd id="erndk"></dd>