0

我创建了一个服务并使用 nodeport 等,但无法访问该服务。

我创建了一个包含以下内容的 web-service.yaml 文件,并使用 kubectl 创建了服务:

apiVersion: v1
kind: Service
metadata:
  name: web-service
  labels:
    app: web-service
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: webserver

以及带有以下部署详细信息的 webserver.yaml 文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webserver
spec:
  replicas: 3
  template:
    metadata:
      labels:
        run: webserver
    spec:
      containers:
      - name: webserver
        image: nginx:alpine
        ports:
        - containerPort: 80
4

1 回答 1

0

在您的部署中,标签是 run=webserver,但在您的服务中,标签是 app=webserver。该服务使用 app=webserver 作为选择器,通过它选择三个标签“app”设置为“webserver”的 pod。在这种情况下,所有 pod 都没有标签“app”,因此部署没有成功公开为服务。部署和服务中的标签名称和值应匹配。

于 2017-11-03T20:37:43.637 回答