5 service https kubernetes amazon-eks
这是我们当前 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
Run Code Online (Sandbox Code Playgroud)
有没有办法将其配置为使用 HTTPS 而不是 HTTP?
要终止 Amazon Elastic Kubernetes Service 上的 HTTPS 流量并将其传递到后端:
1. 为您的自定义域申请公共 ACM 证书。
2. 确定要与负载均衡器的 HTTPS 侦听器一起使用的证书的ARN。
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
Run Code Online (Sandbox Code Playgroud)
4. 要创建服务对象,请运行以下命令:
$ kubectl create -f service.yaml
Run Code Online (Sandbox Code Playgroud)
5. 要返回LoadBalancer类型的服务的 DNS URL ,请运行以下命令:
$ kubectl get service
Run Code Online (Sandbox Code Playgroud)
注意:如果您的集群中有许多活动服务正在运行,请确保从命令输出中获取类型为LoadBalancer的正确服务的 URL 。
6. 打开Amazon EC2 控制台,然后选择负载均衡器。
7. 选择您的负载均衡器,然后选择Listeners。
8. 对于Listener ID,确认您的负载均衡器端口设置为443。
9. 对于SSL Certificate,确认您在 YAML 文件中定义的 SSL 证书已附加到您的负载均衡器。
11. 最后,在 Web 浏览器中,使用以下 HTTPS 协议测试您的自定义域:
https://yourdomain.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2714 次 |
| 最近记录: |