具體步驟如下:
以下步驟在其中一個 master 上操作即可,
1、參數配置
export VIP=192.168.0.110
export INTERFACE=ens33
export KVVERSION=v0.8.7
- VIP 是虛擬IP地址,和主機同一個網段,且未被占用。
- INTERFACE 是你當前主機的網絡接口名稱,通過 ip a 命令來找到它。
- KVVERSION 為需要部署的kube-vip的版本號,可以點擊https://github.com/kube-vip/kube-vip/releases來獲取。
2、獲取Kube-Vip鏡像
對于 containerd,在線拉取鏡像并運行以下命令:
alias kube-vip="ctr image pull ghcr.io/kube-vip/kube-vip:$KVVERSION; ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:$KVVERSION vip /kube-vip"
對于 Docker,在線拉取鏡像并運行以下命令:
alias kube-vip="docker run --network host --rm ghcr.io/kube-vip/kube-vip:$KVVERSION"
執行以上的其中一種方式時,會去拉取鏡像,這個過程會很慢。
或者離線下載后導入,比如:
# 在有外網的機器上拉取并打成tar包
docker pull ghcr.io/kube-vip/kube-vip:v0.8.7
docker save -o kube-vip-v0-8-7.tar ghcr.io/kube-vip/kube-vip:v0.8.7# containerd方式導入并運行
ctr images import kube-vip-v0-8-7.tar
ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:v0.8.7 vip /kube-vip# docker方式導入并運行
docker load -i kube-vip-v0-8-7.tar
docker run --network host --rm ghcr.io/kube-vip/kube-vip:v0.8.7
3、獲取并執行 rabc 的yaml文件
只需在某個 master 節點上運行一次就行。
# 獲取文件
curl -o rbac.yaml https://kube-vip.io/manifests/rbac.yaml
# 執行文件
kubectl apply -f rbac.yaml
4、啟動Kube-Vip
1、生成 kube-vip.yaml 的yaml文件
kube-vip manifest daemonset \--interface $INTERFACE \--address $VIP \--inCluster \--taint \--controlplane \--services \--bgp \--localAS 65000 \--bgpRouterID 192.168.0.2 \--bgppeers 192.168.0.10:65000::false,192.168.0.11:65000::false | tee kube-vip-ds.yaml
- bgpRouterID 填寫當前 master 的ip
- bgppeers 填寫其余 master 的ip
2、運行 kube-vip-.yaml 文件
kubectl apply -f kube-vip-ds.yaml
重要建議:執行yaml文件過程中,會在各個 master 節點上拉取 ghcr.io/kube-vip/kube-vip::$KVVERSION 鏡像,所以建議先將該鏡像傳到自己的私有鏡像倉庫上,然后修改 kube-vip-ds.yaml 中的鏡像地址,再去 apply 該yaml文件會好一點。
3、查看kube-vip運行狀況
kubectl get pods -A | grep kube-vip-ds
5、測試 Vip 是否可用
telnet 192.168.0.110 6443
顯示
Trying 192.168.0.110...
Connected to 192.168.0.110.
Escape character is '^]'.
即為成功。
.
.
.
.
文章參考:
1、https://kube-vip.io/docs/installation/daemonset/
2、https://blog.csdn.net/catoop/article/details/122061611
3、https://www.luyouli.com/?p=694
4、https://www.cnblogs.com/-k8s/p/17991520