Amazon web services 将经典loadbalancer升级为网络loadbalancer
我无法将我们的CLB升级为NLB。我通过控制台通过向导进行了手动升级,但连接不起作用。需要进行此升级,以便我们可以在loadbalancer中使用静态IP。我认为它需要通过kubernetes升级,但我的尝试失败了 我(想我)对这个设置的理解是,这个负载平衡器是使用Helm设置的。我还了解到,入口(控制器)负责将http请求重定向到https。这个lb正在第4层工作Amazon web services 将经典loadbalancer升级为网络loadbalancer,amazon-web-services,kubernetes,load-balancing,Amazon Web Services,Kubernetes,Load Balancing,我无法将我们的CLB升级为NLB。我通过控制台通过向导进行了手动升级,但连接不起作用。需要进行此升级,以便我们可以在loadbalancer中使用静态IP。我认为它需要通过kubernetes升级,但我的尝试失败了 我(想我)对这个设置的理解是,这个负载平衡器是使用Helm设置的。我还了解到,入口(控制器)负责将http请求重定向到https。这个lb正在第4层工作 apiVersion: v1 kind: Service metadata: labels: app: nginx-i
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-ingress
chart: nginx-ingress-1.30.0
component: controller
heritage: Tiller
release: nginx-ingress-external
name: nginx-ingress-external-controller
namespace: kube-system
selfLink: /api/v1/namespaces/kube-system/services/nginx-ingress-external-controller
spec:
clusterIP: 172.20.41.16
externalTrafficPolicy: Cluster
ports:
- name: http
nodePort: 30854
port: 80
protocol: TCP
targetPort: http
- name: https
nodePort: 30621
port: 443
protocol: TCP
targetPort: https
selector:
app: nginx-ingress
component: controller
release: nginx-ingress-external
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- hostname: xxx.region.elb.amazonaws.com
如何通过修改此配置文件来执行升级?正如Jonas在评论部分指出的那样,使用与现有选择器相同的选择器创建新的
负载平衡器
服务
可能是最快、最简单的方法。因此,我们将有两个负载平衡器
服务
使用相同的入口控制器
您可以在下面的代码片段中看到,我有两个服务(ingres-nginx-1-controller
和ingres-nginx-2-controller
)具有完全相同的端点:
$ kubectl get pod -o wide ingress-nginx-1-controller-5856bddb98-hb865
NAME READY STATUS RESTARTS AGE IP
ingress-nginx-1-controller-5856bddb98-hb865 1/1 Running 0 55m 10.36.2.8
$ kubectl get svc ingress-nginx-1-controller ingress-nginx-2-controller
NAME TYPE CLUSTER-IP EXTERNAL-IP
ingress-nginx-1-controller LoadBalancer 10.40.15.230 <PUBLIC_IP>
ingress-nginx-2-controller LoadBalancer 10.40.11.221 <PUBLIC_IP>
$ kubectl get endpoints ingress-nginx-1-controller ingress-nginx-2-controller
NAME ENDPOINTS AGE
ingress-nginx-1-controller 10.36.2.8:443,10.36.2.8:80 39m
ingress-nginx-2-controller 10.36.2.8:443,10.36.2.8:80 11m
$kubectl get pod-o-wide ingress-nginx-1-controller-5856bddb98-hb865
名称就绪状态重新启动老化IP
ingress-nginx-1-controller-5856bddb98-hb865 1/1运行0 55m 10.36.2.8
$kubectl获取svc入口-nginx-1-控制器入口-nginx-2-控制器
名称类型CLUSTER-IP EXTERNAL-IP
ingress-nginx-1-控制器负载平衡器10.40.15.230
ingress-nginx-2-控制器负载平衡器10.40.11.221
$kubectl get endpoints ingress-nginx-1-controller ingress-nginx-2-controller
姓名端点年龄
ingress-nginx-1-控制器10.36.2.8:443,10.36.2.8:80 39m
ingress-nginx-2-控制器10.36.2.8:443,10.36.2.8:80 11m
此外,为了避免停机,我们可以首先将DNS记录更改为指向新的负载平衡器
,在传播时间过后,我们可以安全地删除旧的负载平衡器
服务,我建议使用相同的选择器创建一个新的服务
。@Jonas是否仅使用选择器?组件等可以忽略?我认为乔纳斯是对的,这对我来说也是一个很好的方法。此外,我建议您将头盔图表升级到新版本(目前是v3.22.0
),并将头盔升级到v3
。你有可能做到这些吗?@matt_j这看起来确实是个好方法。现在可以了。虽然我的掌舵技能微乎其微,但目前无法升级图表。