Отказ в подключении к развертыванию в Kubernetes - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь развернуть простое приложение на Python в Google Container Engine:

Я создал кластер и запустил kubectl create -f deployment.yaml На моем кластере был создан модуль развертывания. После этого я создал сервис как: kubectl create -f deployment.yaml

Вот мои настройки Yaml:

pod.yaml :

apiVersion: v1
kind: Pod
metadata:
  name: test-app
spec:
  containers:
  - name: test-ctr
    image: arycloud/flask-svc
    ports:
    - containerPort: 5000

Вот мой Dockerfile:

FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD python ./app.py

deployment.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: test-app
  name: test-app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: test-app
      name: test-app
    spec:
      containers:
      - name: test-app
        image: arycloud/flask-svc
        resources:
          requests:
            cpu: "100m"
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: test-app
  labels:
    app: test-app
spec:
  type: LoadBalancer
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 32000
  selector:
    app: test-app

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: 80

Он создает LoadBalancer и предоставляет внешний IP, когда я открываю IP, он возвращает Connection Refused error

Что не так?

Помогите мне, пожалуйста!

Спасибо, Абдул

1 Ответ

0 голосов
/ 03 июля 2018

вы можете сначала проверить, работает ли модуль по curl podip:port, в вашем сценарии должно быть curl podip:8080; если не работает должным образом, вы должны проверить, является ли прецессом порт 8080 bind в образе, который вы используете.

если это работает, то попробуйте с сервисом curl svcip:svcport, в вашем сценарии должно быть curl svcip:80; если не работает хорошо, будет проблема [конфигурации] сети kubernetes.

если все еще работает, проблема должна возникать на входном слое.

Теоретически, это должно работать, если все соответствуют правилам k8s.

...