Службы Minikube работают при запуске из командной строки, но применение через YAML не работает - PullRequest
0 голосов
/ 09 января 2020

Вот образ моих сервисов Kubernetes.

My kubernetes services

Todo-front-2 - это рабочий экземпляр моего приложения, который я развернул с помощью командной строки:

kubectl run todo-front --image=todo-front:v7 --image-pull-policy=Never
kubectl expose deployment todo-front --type=NodePort --port=3000

И это прекрасно работает. Теперь я хочу перейти и использовать файл todo-front.yaml для развертывания и предоставления моего сервиса. Сервис Todo-front относится к моей текущей попытке. Мой файл развертывания выглядит следующим образом:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: todo-front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: todo-front
  template:
    metadata:
      labels:
        app: todo-front
    spec:
      containers:
        - name: todo-front
          image: todo-front:v7
          env:
          - name: REACT_APP_API_ROOT
            value: "http://localhost:12000"
          imagePullPolicy: Never
          ports:
            - containerPort: 3000
---
kind: Service
apiVersion: v1
metadata:
  name: todo-front
spec:
  type: NodePort
  ports:
    - port: 3000
      targetPort: 3000
  selector:
    app: todo-front

Я развертываю его, используя:

kubectl apply -f deployment/todo-front.yaml

Вот вывод

Output for deploying app

Но когда я запускаю

minikube service todo-front

, он перенаправляет меня на URL, говорящий "Сайт не может быть достигнут". Я не могу понять, что я делаю неправильно. Порты должны быть в порядке, и мой кластер должен быть в порядке, так как я могу заставить его работать, используя только командную строку без внешних файлов YAML. Оба развертывания также используют один и тот же docker -изображение. Я также попытался изменить все порты, теперь "3000", на что-то другое, в случае, если они имеют sh с существующим развертыванием todo-front-2, не повезло. Вот также скриншот модулей и их статуса:

enter image description here

Кто-нибудь с большим опытом работы с Kube и Docker хочет взглянуть? Спасибо!

1 Ответ

2 голосов
/ 09 января 2020

Вы можете запустить команды ниже, чтобы сгенерировать файлы yaml, не применяя их к кластеру, а затем сравнить их с созданными вами вручную yaml и посмотреть, есть ли несоответствие. Кроме того, вместо того, чтобы создавать yamls вручную, вы можете сами применить сгенерированные yamls.

kubectl run todo-front --image=todo-back:v7 --image-pull-policy=Never --dry-run -o yaml > todo-front.yaml


kubectl expose deployment todo-front --type=NodePort --port=3000 --dry-run -o yaml > todo-depoloyment.yaml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...