超简单,使用Kube-Vip实现K8s高可用VIP详细教程

打印 上一主题 下一主题

主题 861|帖子 861|积分 2593

具体步骤如下:

以下步骤在其中一个 master 上操作即可,
1、参数配置

  1. export VIP=192.168.0.110
  2. export INTERFACE=ens33
  3. 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,在线拉取镜像并运行以下下令:
  1. 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,在线拉取镜像并运行以下下令:
  1. alias kube-vip="docker run --network host --rm ghcr.io/kube-vip/kube-vip:$KVVERSION"
复制代码
执行以上的其中一种方式时,会去拉取镜像,这个过程会很慢。
或者离线下载后导入,好比:
  1. # 在有外网的机器上拉取并打成tar包
  2. docker pull ghcr.io/kube-vip/kube-vip:v0.8.7
  3. docker save -o kube-vip-v0-8-7.tar ghcr.io/kube-vip/kube-vip:v0.8.7
  4. # containerd方式导入并运行
  5. ctr images import kube-vip-v0-8-7.tar
  6. ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:v0.8.7 vip /kube-vip
  7. # docker方式导入并运行
  8. docker load -i kube-vip-v0-8-7.tar
  9. docker run --network host --rm ghcr.io/kube-vip/kube-vip:v0.8.7
复制代码
3、获取并执行 rabc 的yaml文件

只需在某个 master 节点上运行一次就行。
  1. # 获取文件
  2. curl -o rbac.yaml https://kube-vip.io/manifests/rbac.yaml
  3. # 执行文件
  4. kubectl apply -f rbac.yaml
复制代码
4、启动Kube-Vip

1、生成 kube-vip.yaml 的yaml文件
  1. kube-vip manifest daemonset \
  2.     --interface $INTERFACE \
  3.     --address $VIP \
  4.     --inCluster \
  5.     --taint \
  6.     --controlplane \
  7.     --services \
  8.     --bgp \
  9.     --localAS 65000 \
  10.     --bgpRouterID 192.168.0.2 \
  11.     --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 文件
  1. 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运行状况
  1. kubectl get pods -A | grep kube-vip-ds
复制代码
5、测试 Vip 是否可用

  1. telnet 192.168.0.110 6443
复制代码
显示
  1. Trying 192.168.0.110...
  2. Connected to 192.168.0.110.
  3. 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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表