没有外部IP的Kubernetes服务无法访问该服务

时间:2020-07-05 04:05:08

标签: kubernetes kubectl

我正在尝试将容器部署在kubernetes集群中,但没有获取外部ip,因此无法访问服务器。

这是我的.yaml文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.21.0 (992df58d8)
  creationTimestamp: null
  labels:
    io.kompose.service: service-app
  name: service-app
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: service-app
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.21.0 (992df58d8)
      creationTimestamp: null
      labels:
        io.kompose.service: service-app
    spec:
      containers:
      - image: magneto-challengue:1.0
        imagePullPolicy: ""
        name: magneto-challengue
        ports:
        - containerPort: 8080
        resources: {}
      restartPolicy: Always
      serviceAccountName: ""
      volumes: null
status: {}
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.21.0 (992df58d8)
  creationTimestamp: null
  labels:
    io.kompose.service: service-app
  name: service-app
spec:
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8080
  selector:
    io.kompose.service: service-app
    type: NodePort

当我使用kubectl get svc,deployment,pods命令时。我得到下一个回应:

enter image description here

如您所见,我没有获得外部IP。使用kubectl describe service service-app命令,我得到下一个响应:

enter image description here

我尝试使用10.107.179.10 IP,但是没有用。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

您不能使用10.107.179.10 IP从kubernetes集群外部访问Pod,因为该IP是clusterIP,并且在kubernetes集群内部有效,并且可以在另一个Pod中使用。

NodePort类型无法获得EXTERNAL-IP。要通过NodePort服务从kubernetes集群外部访问Pod,可以使用NodeIP:NodePort,其中NodeIP是您的任何kubernetes集群节点IP地址。