- 如果 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
# 配置完成直接部署即可kubectl apply -f openelb/openelb-eip.yaml
安装ArgoCDArgoCD 的部署 , 也可以通过官方提供的 Helm Chart 直接部署,但为了了解更多的底层逻辑,这里直接使用官方提供的配置清单安装 。# 建命名空间kubectl create namespace argocd# Non-HA:kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/install.yaml# HA:kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/ha/install.yaml# 安装应用 ArgoCD 配置清单,生产使用建议使用stable,https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/master/manifests/install.yaml# 或者先下载再安装wget https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/install.yamlkubectl apply -n argocd -f install.yaml
文章插图
通过k9s查看argocd命名空间的pods
文章插图
默认情况下,Argo CD API服务器不公开外部IP 。要访问API服务器,可以选择以下技术之一来公开Argo CD API服务器:
- Service Type Load Balancer:修改argocd-server服务类型为LoadBalancer:
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
- Port Forwarding:Kubectl端口转发还可以用于连接到API服务器 , 而不公开服务 。操作如下后可以使用https://localhost:8080访问API服务器
kubectl port-forward svc/argocd-server -n argocd 8080:443
- Ingress配置,详细可以参考官方的文档
文章插图
创建vim argocd-ingress.yaml
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: argocd-server-ingressnamespace: argocdannotations:kubernetes.io/tls-acme: "true"kubernetes.io/ingress.class: nginxnginx.ingress.kubernetes.io/force-ssl-redirect: "true"nginx.ingress.kubernetes.io/ssl-passthrough: "true"nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"spec:rules:- host: argocd.test.comhttp:paths:- path: /pathType: Prefixbackend:service:name: argocd-serverport:name: httpstls:- hosts:- argocd.test.comsecretName: argocd-secret
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 原神珐露珊突破材料是什么
- 原神珐露珊命座有什么效果
- 原神纳西妲传说任务宝箱位置在哪里
- 原神11月5日最新礼包码是多少
- 云原生虚拟网络 tun/tap & veth-pair
- 原神11月7日礼包兑换码怎么领取
- 原神2022年11月7日兑换码是什么
- 原神内存怎么清理
- 原神草神纳西妲技能可以采集什么
- 原神尘歌壶妙香林怎么解锁