Kubernetes 上的工作负载设置以实现高可用性

Workload setting on Kubernetes for high availability

我是 kubernetes 的新手,我创建了一个 k8s 集群,其中包含两个工作节点 - Node-AZ1 和 Node-AZ2。

对于我的 objective,我想为高可用性设置设置两个具有相同网络应用程序图像的 pods/deploys。 即

K8S Cluster -> Worker Node: Node-AZ1 
                    -> Pod: Backend-App-AZ1-{id} 
                            -> Deploy: Backend-App-AZ1 (Backend App Image v1.0.0)
            -> Worker Node:  Node-AZ2 
                    -> Pod: Backend-App-AZ2-{id} 
                            -> Deploy: Backend-App-AZ2 (Backend App Image v1.0.0)

在k8s服务设置中,它包含类型-LoadBalancer,但似乎不是代理类型的负载均衡器。在我的问题中,我想找到一个 tool/config 设置,它可以是代理类型负载均衡器,用于将请求平均代理到 AZ1 和 AZ2。 例如。 Post 请求:http://www.sample.com/api 负载均衡器会将请求代理到 workload:Backend-App-AZ1 上的 api 服务或 workload:Backend-App-AZ2

上的 api 服务

如果您可以使用 Nginx ingress 并使用它处理流量,我建议您使用它

所以流量会像

internet -> ingress > K8s service > Deployments > PODs

您可以结帐:https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/

或守护程序集:https://github.com/nginxinc/kubernetes-ingress/blob/master/deployments/daemon-set/nginx-ingress.yaml