我正在尝试将容器部署在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
命令时。我得到下一个回应:
如您所见,我没有获得外部IP。使用kubectl describe service service-app
命令,我得到下一个响应:
我尝试使用10.107.179.10
IP,但是没有用。
有什么主意吗?
答案 0 :(得分:1)
您不能使用10.107.179.10
IP从kubernetes集群外部访问Pod,因为该IP是clusterIP,并且在kubernetes集群内部有效,并且可以在另一个Pod中使用。
NodePort
类型无法获得EXTERNAL-IP
。要通过NodePort服务从kubernetes集群外部访问Pod,可以使用NodeIP:NodePort
,其中NodeIP
是您的任何kubernetes集群节点IP地址。