Как исправить «503 Сервис временно недоступен» - PullRequest
0 голосов
/ 25 октября 2019

К вашему сведению:

  1. Я запускаю Kubernetes на рабочем столе Docker для Mac
  2. Веб-сайт на основе образа Nginx

Я запускаю 2 простых развертывания веб-сайтов наKubetesetes и использовать сервис NodePort. Затем я хочу сделать маршрутизацию на сайт с помощью входа. Когда я открываю браузер и захожу на сайт, я получаю ошибку 503, как на картинках ниже. Итак, как мне исправить эту ошибку?

### Service
apiVersion: v1
kind: Service
metadata:
  name: app-svc
  labels:
    app: app1
spec:
  type: NodePort
  ports:
  - port: 80
  selector:
    app: app1
---
apiVersion: v1
kind: Service
metadata:
  name: app2-svc
  labels:
    app: app2
spec:
  type: NodePort
  ports:
  - port: 80
  selector:
    app: app2

### Ingress-Rules
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /app1
        backend:
          serviceName: app-svc
          servicePort: 30092
      - path: /app2
        backend:
          serviceName: app2-svc
          servicePort: 30936


введите описание изображения здесь

1 Ответ

0 голосов
/ 25 октября 2019

Я советую вам использовать тип службы ClusterIP. Посмотрите на эту полезную статью: services-kubernetes .

Если вы используете Ingress, вы должны знать, что Ingress не является типомСлужба, а скорее объект, который действует как обратный прокси-сервер и единственная точка входа в ваш кластер, которая направляет запрос в разные службы. Самым базовым Ingress является NGINX Ingress Controller, где NGINX выполняет роль обратного прокси-сервера, а также работает как SSL. На рисунке ниже вы можете видеть рабочий процесс между определенными компонентами объектов среды.

Входные данные подвергаются воздействию за пределами кластера через ClusterIP и прокси-сервер Kubernetes, NodePort или LoadBalancer и маршрутизируют входящий трафик в соответствии с настроенными правилами.

Пример определения услуги:

---
apiVersion: v1
kind: Service
metadata:
  name: app-svc
  labels:
    app: app1
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: app1
---
apiVersion: v1
kind: Service
metadata:
  name: app2-svc
  labels:
    app: app2
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: app2

Дайте мне знать, если это поможет.

...