Невозможно подключиться к модулю, используя вход - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь настроить одно приложение фляги Python, работающее в порту 5000 в kubernetes. Я создал развертывание, сервис и доступ. Он не работает с использованием доменного имени, которое добавляется в файл hosts, но приложение python работает, когда я пытался переадресовать порт.

Я много пытался изменить настройки, но ничего не получалось.

Пожалуйста, дайте мне знать ваши предложения.

kind: Deployment
metadata:
  name: web-app
  namespace: production
  labels:
    app: web-app
    platform: python
spec:
  replicas:
  selector:
    matchLabels:
      app: web-app
  template:
    metadata:
      labels:
        app: web-app
    spec:
      containers:
      - name: web-app
        image: XXXXXX/XXXXXX:XXXXXX
        imagePullPolicy: Always
        ports:
        - containerPort: 5000
apiVersion: v1
kind: Service
metadata:
  name: web-app
  namespace: production
spec:
  selector:
    app: web-app
  ports:
  - protocol: TCP
    port: 5000
    targetPort: 5000
  selector:
    run: web-app
kind: Ingress
metadata:
  name: name-virtual-host-ingress
  namespace: production
spec:
  rules:
  - host: first.bar.com
    http:
      paths:
      - backend:
          serviceName: web-app
          servicePort: 5000

kubectl get all -n production

NAME                          READY   STATUS    RESTARTS   AGE
pod/web-app-559df5fc4-67nbn   1/1     Running   0          24m

NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/web-app   ClusterIP   10.100.122.15   <none>        5000/TCP   24m

NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/web-app   1         1         1            1           24m

NAME                                DESIRED   CURRENT   READY   AGE
replicaset.apps/web-app-559df5fc4   1         1         1       24m

kubectl get -n production

NAME                        HOSTS           ADDRESS   PORTS   AGE
name-virtual-host-ingress   first.bar.com             80      32s

kubectl get ep web-app -n production

NAME      ENDPOINTS   AGE
web-app   <none>      23m

1 Ответ

2 голосов
/ 30 июня 2019

Вам необходимо запустить Ingress Controller.Часть Prerequisites в https://kubernetes.io/docs/concepts/services-networking/ingress/#prerequisites гласит:

У вас должен быть входной контроллер для удовлетворения Ingress.Только создание ресурса Ingress не имеет никакого эффекта.

Один из примеров: https://kubernetes.github.io/ingress-nginx/deploy/. Обязательно выполните Обязательную команду и ту, которая относится к вашему провайдеру.Затем вы можете получить услугу, чтобы увидеть назначенный IP:

kubectl get -n ingress-nginx svc/ingress-nginx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...