当前位置: 首页 > article >正文

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

具体步骤如下:

以下步骤在其中一个 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


http://www.kler.cn/a/487381.html

相关文章:

  • 【C++/控制台】2048小游戏
  • [笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server
  • 网络基础1 http1.0 1.1 http/2的演进史
  • 掌握正则表达式:从入门到精通的实战指南
  • NRC优先级中比较特殊的—NRC0x13和NRC0x31
  • Django学习笔记之数据库(一)
  • Attention计算中的各个矩阵的维度都是如何一步步变化的?
  • SQL UNION 操作符
  • 【Linux 之一 】Linux常用命令汇总
  • Redis数据库笔记——Cluster集群模式
  • 状态模式详解
  • 大模型搜索引擎增强问答demo-纯python实现
  • Sentinel服务保护 + Seata分布式事务
  • 开放词汇检测新晋SOTA:地瓜机器人开源DOSOD实时检测算法
  • C# winform 多线程 UI更新数据 报错:无法访问已释放的对象。
  • 【AI日记】25.01.09
  • 程序血缘分析技术在工商银行软件工程中的应用
  • 一.MySQL程序简介
  • 用BaoStock判断一只股票昨天是否涨停~~
  • GC8872 是一款带故障报告功能的刷式直流电机驱动芯片, 适用于打印机、电器、工业设备以及其他小型机器。
  • 【贵州省】乡镇界arcgis格式shp数据乡镇名称和编码内容下载测评
  • c#学生课程设计之仿windows计算器开发
  • OWASP ZAP安全测试--使用(自动扫描、手动浏览)
  • 系统思考—问题分析
  • 移动端可互动轮播图
  • VoiceBox:基于文本引导的多语种通用大规模语音生成