kubernetes microk8s nodeport не найден

у меня есть экспресс-приложение, работающее в докере по адресу http://127.0.0.1:3000/

я пытаюсь получить к нему доступ из сервисов microk8s из http://127.0.0.1:30002/, но не получаю найденный . вот мой файл развертывания для kubernetes

kubernetes.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: simple-node
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      simple: node
  template:
    metadata:
      labels:
        simple: node
    spec:
      containers:
        - name: simple-node
          image: simple-node:1.0
---
apiVersion: v1
kind: Service
metadata:
  name: simple-node
  namespace: default
spec:
  type: NodePort
  selector:
    simple: node
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 30002

вот мои услуги и развертывание на microk8s.

услуги


person Md Nahid Hasan    schedule 22.05.2020    source источник
comment
Похоже, вы приложили снимок экрана вашего YAML-файла Kubernetes вместо фактического содержимого файла. Можете ли вы заменить изображение файлом YAML в виде простого текста? Аналогично для вашего терминала.   -  person David Maze    schedule 22.05.2020
comment
@DavidMaze отредактировано   -  person Md Nahid Hasan    schedule 22.05.2020
comment
ваш кластер k8s не может получить доступ к простому узлу образа, отправьте образ в реестр, а затем поместите ссылку на этот образ туда.   -  person Hiteshwar Sharma    schedule 22.05.2020
comment
вот как вы можете использовать локальный реестр microk8s.io/docs/registry-built-in   -  person Hiteshwar Sharma    schedule 22.05.2020


Ответы (1)


Вы должны пометить и отправить изображение в реестр докеров. Демон containerd, используемый MicroK8s, настроен на доверие к этому небезопасному реестру. Чтобы загрузить изображения, мы должны пометить simple-node перед отправкой.

Вы можете установить реестр с помощью:

microk8s enable registry

Выполните команды ниже:

$ docker build . 
$ docker tag aaabbccc simple-node:1.0
$ docker push simple-node:1.0

В некоторых версиях Docker отправка данных в этот небезопасный реестр может завершиться ошибкой, если только демон явно не настроен доверять этому реестру. Чтобы решить эту проблему, вам нужно отредактировать /etc/docker/daemon.json и добавить:

{
  "insecure-registries" : ["localhost:32000"]
}

Затем перезапустите Docker, чтобы загрузить новую конфигурацию.

$ sudo systemctl restart docker

Посмотрите: встроенный реестр.

person Malgorzata    schedule 25.05.2020