=>返回首頁<=
二. 搭建高可用集羣
1. 部署keepalived - apiserver高可用(任選兩個master節點)
重要:如果是雲環境,一般不支持自定義虛擬ip。這一步可以跳過了。下面所有用到虛擬ip的地方設置爲其中某一臺master的ip即可。
1.1 安裝keepalived
# 在兩個主節點上安裝keepalived(一主一備)
$ yum install -y keepalived
1.2 創建keepalived配置文件
# 創建目錄
$ ssh <user>@<master-ip> "mkdir -p /etc/keepalived"
$ ssh <user>@<backup-ip> "mkdir -p /etc/keepalived"
# 分發配置文件
$ scp target/configs/keepalived-master.conf <user>@<master-ip>:/etc/keepalived/keepalived.conf
$ scp target/configs/keepalived-backup.conf <user>@<backup-ip>:/etc/keepalived/keepalived.conf
# 分發監測腳本
$ scp target/scripts/check-apiserver.sh <user>@<master-ip>:/etc/keepalived/
$ scp target/scripts/check-apiserver.sh <user>@<backup-ip>:/etc/keepalived/
1.3 啓動keepalived
# 分別在master和backup上啓動服務
$ systemctl enable keepalived && service keepalived start
# 檢查狀態
$ service keepalived status
# 查看日誌
$ journalctl -f -u keepalived
# 查看虛擬ip
$ ip a
2. 部署第一個主節點
# 準備配置文件
$ scp target/configs/kubeadm-config.yaml <user>@<node-ip>:~
# ssh到第一個主節點,執行kubeadm初始化系統(注意保存最後打印的加入集羣的命令)
$ kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs
# copy kubectl配置(上一步會有提示)
$ mkdir -p ~/.kube
$ cp -i /etc/kubernetes/admin.conf ~/.kube/config
# 測試一下kubectl
$ kubectl get pods --all-namespaces
# **備份init打印的join命令**
3. 部署網絡插件 - calico
我們使用calico官方的安裝方式來部署。
# 創建目錄(在配置了kubectl的節點上執行)
$ mkdir -p /etc/kubernetes/addons
# 上傳calico配置到配置好kubectl的節點(一個節點即可)
$ scp target/addons/calico* <user>@<node-ip>:/etc/kubernetes/addons/
# 部署calico
$ kubectl apply -f /etc/kubernetes/addons/calico-rbac-kdd.yaml
$ kubectl apply -f /etc/kubernetes/addons/calico.yaml
# 查看狀態
$ kubectl get pods -n kube-system
4. 加入其它master節點
# 使用之前保存的join命令加入集羣
$ kubeadm join ...
# 耐心等待一會,並觀察日誌
$ journalctl -f
# 查看集羣狀態
# 1.查看節點
$ kubectl get nodes
# 2.查看pods
$ kubectl get pods --all-namespaces
5. 加入worker節點
# 使用之前保存的join命令加入集羣
$ kubeadm join ...
# 耐心等待一會,並觀察日誌
$ journalctl -f
# 查看節點
$ kubectl get nodes