安装K9S这里我们使用前面文章基于Rancher创建好的K8S集群
mkdir k9scd k9s# 下载最新版本v0.26.3wget https://github.com/derailed/k9s/releases/download/v0.26.3/k9s_Linux_x86_64.tar.gz# 解压文件tar -xvf k9s_Linux_x86_64.tar.gz./k9s version
文章插图
直接执行./k9s,冒号后输入也支持简写比如ns
文章插图
OpenLB
- OpenELB 是一个开源的云原生负载均衡器实现,可以在基于裸金属服务器、边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 Service 对外暴露服务 。OpenELB 项目最初由 KubeSphere 社区[2] 发起,目前已作为 CNCF 沙箱项目[3] 加入 CNCF 基金会,由 OpenELB 开源社区维护与支持 。
- 在 k8s 原生集群上部署
OpenELB
作为 k8s 的LoadBalancer
,主要涉及 OpenELB 的 Layer2 模式和 BGP 模式两种部署方案 。 - 与 MetalLB 类似,OpenELB 也拥有两种主要工作模式:Layer2 模式和 BGP 模式 。OpenELB 的 BGP 模式目前暂不支持 IPv6 。无论是 Layer2 模式还是 BGP 模式,核心思路都是通过某种方式将特定 VIP 的流量引到 k8s 集群中,然后再通过 kube-proxy 将流量转发到后面的特定服务
文章插图
- 图中有一个类型为 LoadBalancer 的 Service,其 VIP 为 192.168.0.91(和 k8s 的节点相同网段),后端有两个 pod(分别为 pod1 和 pod2)
- 安装在 Kubernetes 集群中的 OpenELB 随机选择一个节点(图中为 worker 1)来处理 Service请求 。当局域网中出现 arp request 数据包来查询 192.168.0.91 的 mac 地址的时候,OpenELB 会进行回应(使用 worker 1 的 MAC 地址),此时路由器(也可能是交换机)将 Service 的 VIP 192.168.0.91 和 worker 1 的 MAC地址绑定,之后所有请求到 192.168.0.91 的数据包都会被转发到 worker1 上
- Service 流量到达 worker 1 后,worker 1 上的 kube-proxy 将流量转发到后端的两个 pod 进行负载均衡,这些 pod 不一定在 work1 上
- 如果 worker 1 出现故障,OpenELB 会重新向路由器发送 APR/NDP 数据包,将 Service IP 地址映射到 worker 2 的 MAC 地址,Service 流量切换到 worker 2
- 主备切换过程并不是瞬间完成的,中间会产生一定时间的服务中断(具体多久官方也没说,实际上应该是却决于检测到节点宕机的时间加上重新选主的时间)
- 如果集群中已经部署了多个 openelb-manager 副本,OpenELB 使用 Kubernetes 的领导者选举特性算法来进行选主,从而确保只有一个副本响应 ARP/NDP 请求
# 以yaml方式部署openelbwget https://raw.githubusercontent.com/openelb/openelb/master/deploy/openelb.yamlkubectl apply -f openelb.yaml
配置 loadbalancerIP 所在的网段资源,创建一个 Eip 对象来进行定义,后面对 IP 段的管理也是在这里进行apiVersion: network.kubesphere.io/v1alpha2kind: Eipmetadata:# Eip 对象的名称 。name: eip-layer2-poolspec:# Eip 对象的地址池address: 10.31.88.101-10.31.88.200# openELB的运行模式,默认为bgpprotocol: layer2# OpenELB 在其上侦听 ARP/NDP 请求的网卡 。该字段仅在protocol设置为时有效layer2 。interface: eth0# 指定是否禁用 Eip 对象# false表示可以继续分配# true表示不再继续分配disable: falsestatus:# 指定 Eip 对象中的IP地址是否已用完 。occupied: false# 指定 Eip 对象中有多少个 IP 地址已分配给服务 。# 直接留空,系统会自动生成usage:# Eip 对象中的 IP 地址总数 。poolSize: 100# 指定使用的 IP 地址和使用 IP 地址的服务 。服务以Namespace/Service name格式显示(例如,default/test-svc) 。# 直接留空,系统会自动生成used:# Eip 对象中的第一个 IP 地址 。firstIP: 10.31.88.101# Eip 对象中的最后一个 IP 地址 。lastIP: 10.31.88.20ready: true# 指定IP协议栈是否为 IPv4 。目前,OpenELB 仅支持 IPv4,其值只能是true.v4: true
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 尿酸偏低什么原因
- 古时的员外是什么意思
- 抖音怎么导入原创音乐
- 原神珐露珊突破材料是什么
- 原神珐露珊命座有什么效果
- 原神纳西妲传说任务宝箱位置在哪里
- 创维40e3o00加电开机一会变待机什么原因
- 草原天路自驾游攻略
- 经常打嗝是胃病吗
- 井水变化的原理