我有一个服务和部署kube配置文件,如下所示。
现在,当我应用这两个文件时,它会创建一个负载平衡器,但其目标是随机端口,而不是端口80。
我是EKS的新手,尝试了不同的kube配置文件,但它仍尝试将随机端口作为目标。
service file:
apiVersion: v1
kind: Service
metadata:
name: runners-test
labels:
app: runners-test
spec:
ports:
- port: 80
targetPort: 80
selector:
app: runners-test
type: LoadBalancer
deployment file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: runners-test
labels:
app: runners-test
spec:
replicas: 1
selector:
matchLabels:
app: runners-test
template:
metadata:
labels:
app: runners-test
spec:
containers:
- name: runners-test
image: mylocaldockerimage
ports:
- containerPort: 80
C02X67GOKL:terraform $ kubectl get svc 名称类型集群IP外部IP>端口年龄 kubernetes ClusterIP 10.100.0.1 443 / TCP 8d 跑步者测试LoadBalancer 10.100.246.180 af3884a05ad7811e99b0e06a70e73221-192467907.us-west-2.elb.amazonaws.com 80:31038 / TCP 43m
它的目标是移植一个随机端口31038,当我连接到pod并运行ps -ef时,我可以看到服务正在端口80上运行。
答案 0 :(得分:0)
如Kubernetes Service文档中所述,设置此类型将强制底层云提供程序为您的服务分配一个公共IP地址,并将您暴露的端口(在您的情况下为80)上的流量路由到kubernetes集群级别上的节点端口(31038)。
在支持外部负载平衡器的云提供商上,将类型字段设置为LoadBalancer即可为您的服务提供负载平衡器。