我试图通过创建服务类型作为负载均衡器来公开集群中的应用程序。这样做的原因是我希望这个应用程序有一个单独的沟通渠道。我有一个 KOPS 集群。我想使用AWS的网络负载均衡器,以便它获得静态IP。当我创建服务并将端口 80 映射到应用程序运行的端口时,一切正常,但当我尝试添加端口 443 时,它就超时了。
这是有效的配置 -
apiVersion: v1
metadata:
name: abc
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
labels:
app: abc
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 9050
selector:
app: abc
type: LoadBalancer
一旦我在配置文件中添加 TLS 支持并部署它。与负载均衡器的连接超时。如何向负载均衡器添加 TLS 支持?
我想通过服务而不是通过入口来完成此操作。
这是对我不起作用的配置,当我将链接粘贴到浏览器中时,它会超时。
kind: Service
apiVersion: v1
metadata:
name: abc
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxx
labels:
app: abc
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 443
protocol: TCP
targetPort: 9050
selector:
app: abc
type: LoadBalancer
您可以使用 tls 和 ssl 终止
apiVersion: v1
kind: Service
metadata:
name: test-service
annotations:
# Note that the backend talks over HTTP.
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
# TODO: Fill in with the ARN of your certificate.
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:{region}:{user id}:certificate/{id}
# Only run SSL on the port named "https" below.
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
spec:
selector:
app: test-pod
ports:
- name: http
port: 80
targetPort: 8080
- name: https
port: 443
targetPort: 8080
type: LoadBalancer
您可以在aws证书管理器中添加tls证书,并将证书的arn地址使用到kubernetes服务。
就像在 becked 中一样,您可以终止 https 连接并仅使用 HTTP。
你也可以看看这个:https://aws.amazon.com/premiumsupport/knowledge-center/terminate-https-traffic-eks-acm/
https://github.com/kubernetes/kubernetes/issues/73297
EDIT :1
service.beta.kubernetes.io/aws-load-balancer-type: nlb
如果不起作用,请尝试根据您的负载均衡器类型添加此注释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)