не может получить доступ к сервису через нодпорт в kubernetes для окон рабочего стола докера - PullRequest
0 голосов
/ 20 марта 2019

Привет всем, я пробую kubernetes и имею версию, которая поставляется с рабочим столом Docker для Windows, и я не могу получить доступ к службе, которая имеет тип nodeport.Ниже приведена соответствующая информация

docker version:

Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Built:             Sun Feb 10 04:12:31 2019
 OS/Arch:           windows/amd64
 Experimental:      false



Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Built:            Sun Feb 10 04:13:06 2019
  OS/Arch:          linux/amd64
  Experimental:     false



kubernetes version:

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

моего файла развертывания: (deploy.yml)

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: tomcat-app
spec:
  replicas: 5
  template:
    metadata:
      labels:
        app: tomcat-app
    spec:
      containers:
        - name: tomcat-app
          image: tomcatapp:v1.0.0
          ports:
            - containerPort: 80


---
kind: Service
apiVersion: v1
metadata:
  name: tomcatappservice
spec:

  type: NodePort
  ports:
    - protocol: TCP
      port: 8081
      targetPort: 80
  selector:
    app: tomcat-app

запустил его с

kubectl create -f deployment.yml

не могу получить доступ к котусервер на локальном хосте: данный kubernetes также пытался явно указать порт в файле развертывания, но все еще не может заставить его работать

1 Ответ

0 голосов
/ 20 марта 2019

В вашем файле развертывания нет селектора для модулей, который будет использоваться службой!

Если вы хотите указать определенный порт, обновите информацию о порте в самом разделе службы.В противном случае k8s назначит несколько случайных портов, которые вы получите, запустив kubectl get svc

Попробуйте этот файл.Доступ к приложению через порт 30080

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tomcat-app
  name: tomcat-app
spec:
  replicas: 5
  selector:
    matchLabels:
      app: tomcat-app
  template:
    metadata:
      labels:
        app: tomcat-app
    spec:
      containers:
      - image: tomcatapp:v1.0.0
        name: tomcat-app
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tomcat-app
  name: tomcat-app
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30080
  selector:
    app: tomcat-app
  type: NodePort
...