kubernetes高可用安裝手記

5臺機器
  • 更改驅動為systemd


    "exec-opts":["native.cgroupdriver=systemd"] 文件位置為/etc/docker/daemon.json 修改后重啟docker service docker restart
  • 禁用swap
vim /etc/fstab注釋掉這行,重啟機器
  • 安裝一些基礎軟件
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
  • 國內(nèi)添加阿里云源信息
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" >>/etc/apt/sources.list.d/kubernetes.list
  • 國內(nèi)添加認證信息
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
  • 更新軟件源
apt update
  • 查找kubeadm版本
apt-cache madison kubelet
  • 選擇kubeadm、kubelet、kubectl版本(注意:最好與k8s版本一致)

這里選擇1.17.1-00版本

  • 安裝kubeadm、kubelet、kubectl
apt-get install kubeadm=1.17.1-00 && apt-get install kubelet=1.17.1-00 && apt-get install kubectl=1.17.1-00
image.png
   worker_processes  1;
   events {
       worker_connections  1024;
   }
   stream {
       upstream backend {
           #hash $remote_addr consistent;
           server 172.20.225.242:6443       max_fails=3 fail_timeout=30s;
           server 192.168.1.241:6443        max_fails=3 fail_timeout=30s;
           server 192.168.1.240:6443        max_fails=3 fail_timeout=30s;
       }

       server {
           listen 10443;
           proxy_pass backend;
       }
   }
  • 暴露方式

可選配置hosts、外網(wǎng)域名、IP等等

  • 查看所有鏡像
kubeadm config images list
  • 通過kubeadm拉起指定版本k8s第一個matset節(jié)點
報錯,vim /etc/profile 行尾追加export DOCKER_API_VERSION=1.35 然后 source /etc/profile
  • 重新拉起
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.17.1 --control-plane-endpoint "192.168.1.241:10443" --upload-certs | tee /root/log 等待完成
  • 其余兩臺master節(jié)點加入集群
kubeadm join 192.168.1.241:10443 --token vnit62.l5ydr8p0j0exz3dn \ --discovery-token-ca-cert-hash sha256:7b6726808a3a68918b99ccd84d8c355dd063b41a9f1bcbbbec2725471a963a47 \ --control-plane --certificate-key 4cbe583ac1d398396117d6370f1e754e9ee7abbed17ba6e13145542513cb0a8a
  • 其余node加入集群
kubeadm join 192.168.1.241:10443 --token vnit62.l5ydr8p0j0exz3dn \ --discovery-token-ca-cert-hash sha256:7b6726808a3a68918b99ccd84d8c355dd063b41a9f1bcbbbec2725471a963a47
  • 選擇一臺master安裝kubectl命令配置文件

mkdir -p HOME/.kube sudo cp -i /etc/kubernetes/admin.confHOME/.kube/config
sudo chown (id -u):(id -g) $HOME/.kube/config

  • 安裝集群網(wǎng)絡cni插件
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
  • 注意

1.要重新上傳證書并生成新的解密密鑰,請在已加入集群節(jié)點的控制平面上使用以下命令:sudo kubeadm init phase upload-certs --upload-certs
2.您還可以在 init 期間指定自定義的 --certificate-key,以后可以由 join 使用。 要生成這樣的密鑰,可以使用以下命令:kubeadm alpha certs certificate-key
3.節(jié)點離開步驟
kubectl drain izrj98onkrg7dzoj7hwzsjz --delete-local-data --force --ignore-daemonsets node/izrj98onkrg7dzoj7hwzsjz
刪除節(jié)點
kubectl delete node izrj98onkrg7dzoj7hwzsjz
驗證
kubectl get nodes
4.生產(chǎn)永久token:kubeadm token create --ttl 0 --print-join-command
5.如果發(fā)現(xiàn)nodeport模式不是所有主機都可用,更改防火墻規(guī)則:iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
6.設置開機自動設置防火墻規(guī)則

文件位置:
cd /etc/init.d/
vim add-forward-iptable-rule.sh
內(nèi)容:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          storeteam.cn
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: ciptables service
# Description:       ciptables service daemon
### END INIT INFO
sleep 10
iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
權限:
chmod 777 add-forward-iptable-rule.sh
開機啟動:
sudo update-rc.d add-forward-iptable-rule.sh defaults 90









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

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