这是我们当前的EKS服务的配置:
apiVersion: v1
kind: Service
metadata:
labels:
app: main-api
name: main-api-svc
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
externalTrafficPolicy: Cluster
ports:
- name: http-port
port: 80
protocol: TCP
targetPort: 80
selector:
app: main-api
sessionAffinity: None
type: LoadBalancer
是否可以将其配置为使用HTTPS而不是HTTP?
答案 0 :(得分:3)
要终止Amazon Elastic Kubernetes服务上的HTTPS流量并将其传递到后端:
1。 Request a public ACM certificate用于您的自定义域。
2。确定要与负载均衡器的HTTPS侦听器一起使用的ARN of the certificate。
3。在您的文本编辑器中,根据以下示例创建一个 service.yaml 清单文件。然后,编辑注释以提供步骤2中的ACM ARN。
apiVersion: v1
kind: Service
metadata:
name: echo-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:
type: LoadBalancer
selector:
app: echo-pod
ports:
- name: http
port: 80
targetPort: 8080
- name: https
port: 443
targetPort: 8080
4。要创建 Service 对象,请运行以下命令:
$ kubectl create -f service.yaml
5。要返回 LoadBalancer 类型的服务的DNS URL,请运行以下命令:
$ kubectl get service
注意::如果群集中正在运行许多活动服务,请确保从命令输出中获取类型为 LoadBalancer 的正确服务的URL。
6。打开Amazon EC2 console,然后选择负载均衡器。
7。选择您的负载均衡器,然后选择监听器。
8。对于 Listener ID ,请确认您的负载均衡器端口设置为 443 。
9。对于 SSL证书,请确认您在YAML文件中定义的SSL证书已附加到负载均衡器。
10。 Associate your custom domain name with your load balancer name。
11。最后,在Web浏览器中,使用以下HTTPS协议测试您的自定义域:
https://yourdomain.com
答案 1 :(得分:0)