我在第一次AWS
使用时运行 Kubernetes 集群Kops
,我需要一些帮助来使用 AWS 托管域名和 SSL 证书向公众公开服务。
集群在私有 VPC 中运行,我可以通过堡垒实例访问它。
现在,我使用 LoadBalancer 服务类型向公众公开服务,如下所示:
apiVersion: v1
kind: Service
metadata:
name: my-gateway-service
namespace: {{ .Values.nameSpace }}
labels:
app: gateway
tier: backend
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: 'http'
service.beta.kubernetes.io/aws-load-balancer-ssl-port: '{{ .Values.services.sslPort }}'
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: '{{ .Values.services.sslCert }}'
spec:
type: LoadBalancer
selector:
app: gateway
tier: backend
ports:
- name: http
port: 80
targetPort: {{ .Values.applications.nodeAppPort }}
- name: https
port: 443
targetPort: {{ .Values.applications.nodeAppPort }}
如您所见,我正在使用注释传递 SSL 证书,然后我将域名指向 loadBalancer 公共入口并完成。
问题:
这个项目是一个微服务项目,需要在不同的环境中向公众公开大量服务,这意味着AWS LoadBalancers
大量的金钱 $$$$。
我已经尝试过 NodePort 和 ExternalName 服务,但由于私有 VPC,它们都没有工作。
有什么建议可以解决这个问题吗?