首页 > 解决方案 > 无法连接到k8s服务的外部ip

问题描述

我有以下服务:

apiVersion: v1
kind: Service
metadata:
  name: hedgehog
  labels:
    run: hedgehog
spec:
  ports:
  - port: 3000
    protocol: TCP
    name: restful
  - port: 8982
    protocol: TCP
    name: websocket
  selector:
    run: hedgehog
  externalIPs:
    - 1.2.4.120

我在其中指定了一个外部IP。运行时,我还在 EXTERNAL-IP 下看到了这个 IP kubectl get services。但是,当我这样做时,curl http://1.2.4.120:3000我会超时。但是,该应用程序应该给我一个响应,因为在部署中的容器内运行的 jar 在本地运行时会响应 localhost:3000 请求。

标签: kubernetesport

解决方案


如果您看到服务的类型,可能会cluster IP尝试将类型更改为LoadBalancer

apiVersion: v1
kind: Service
metadata:
  name: http-service
spec:
  clusterIP: 172.30.163.110
  externalIPs:
  - 192.168.132.253
  externalTrafficPolicy: Cluster
  ports:
  - name: highport
    nodePort: 31903
    port: 30102
    protocol: TCP
    targetPort: 30102
  selector:
    app: web
  sessionAffinity: None
  type: LoadBalancer

像这样的东西在哪里type: LoadBalancer


推荐阅读