我有一个简单的应用程序,我需要部署在K8S中(运行在AWS上),并将它公开给外界。
我知道我可以添加一个类型为LoadBalancer的服务,K8S将为我创建ALB。
spec:
type: LoadBalancer然而,问题是,它将创建一个新的LB 。
对我来说,这是一个问题的主要原因是,我试图把基础设施的创建/升级(相对于软件部署/升级)分开。我的所有基础设施将由Terraform管理,我的所有软件都将通过K8S YAML文件定义(将来可能是Helm )。
而负载均衡器(基础设施)的创建破坏了这个模型。
两个问题:
我是否正确地理解了你不能改变这种行为( existing)?
,
我对朝这个方向走是犹豫不决。要使它正常工作,需要大量的步骤,我需要时间才能找到如何在Terraform和k8s YAML文件中对其进行改造。
发布于 2022-02-04 19:47:36
简而言之,您只能将其更改为"NodePort“,并通过将EKS节点添加到正确的公开端口来手动耦合现有的LB。
喜欢
spec:
type: NodePort
externalTrafficPolicy: Cluster
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
nodePort: **30080**但是,要像本机一样将其附加起来,AWS k8s Controller还不支持它,并且可能没有优先考虑这样的行为:
问:直接暴露或覆盖入口:
注意:如果您有(+1)服务要公开或需要添加公开API.
的控件,则使用ingress ( Nginx或ALB )。
https://stackoverflow.com/questions/70991529
复制相似问题