为什么我的kubectl负载均衡器定位到随机端口?

时间:2019-07-23 19:29:12

标签: kubernetes kubectl amazon-eks kubernetes-pod

我有一个服务和部署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上运行。

1 个答案:

答案 0 :(得分:0)

如Kubernetes Service文档中所述,设置此类型将强制底层云提供程序为您的服务分配一个公共IP地址,并将您暴露的端口(在您的情况下为80)上的流量路由到kubernetes集群级别上的节点端口(31038)。

  

在支持外部负载平衡器的云提供商上,将类型字段设置为LoadBalancer即可为您的服务提供负载平衡器。