我正在尝试完成一个非常常见的应用任务:
分配证书并使用TLS/HTTPS进行安全保护。
我花了近一天时间查找文档并尝试多种不同的策略来使其工作,但对我来说什么都没用。
最初,我按照这里的文档设置了在EKS上使用Helm的nginx-ingress:https://github.com/nginxinc/kubernetes-ingress。我尝试使用以下配置来使示例应用程序(cafe)工作:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cafe-ingress
spec:
tls:
- hosts:
- cafe.example.com
secretName: cafe-secret
rules:
- host: cafe.example.com
http:
paths:
- path: /tea
backend:
serviceName: tea-svc
servicePort: 80
- path: /coffee
backend:
serviceName: coffee-svc
servicePort: 80
虽然入口和所有支持的服务/部署都正常工作,但有一件重要的事情缺失:入口没有关联的地址/ELB:
NAME HOSTS ADDRESS PORTS AGE
cafe-ingress cafe.example.com 80, 443 12h
服务负载均衡器会创建 ELB 资源,即:
testnodeapp LoadBalancer 172.20.4.161 a64b46f3588fe... 80:32107/TCP 13h
然而,Ingress不会创建地址。我该如何在EKS上将Ingress控制器暴露在外部以处理TLS / HTTPS?