Балансировщик нагрузки Kubernetes завершает SSL для обратного входа прокси-сервера DigitalOcean - PullRequest
0 голосов
/ 21 января 2020

Моя оригинальная инфраструктура была построена на этом уроке. https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes.

Теперь я пытаюсь перейти к управлению собственным сертификатом и завершению SSL на балансировщике нагрузки.

С моими обновлениями YAML балансировщик нагрузки в DigitalOcean показывает, что все узлы неработоспособны, и я отвечаю URL-адресом «503 Сервис недоступен. Сервер не может обработать этот запрос». Однако конечная точка показывает защищенное соединение HTTPS. Что я делаю неправильно?

Мои новые нефункциональные определения YAML ниже.

LoadBalancer

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
    service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "**************"
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: http

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
spec:
  tls:
    - hosts:
        - ******.com
        - api.*******.com
  rules:
    - host: **********.com
      http:
        paths:
          - backend:
              serviceName: frontend-angular
              servicePort: 80
    - host: api.********.com
      http:
        paths:
          - backend:
              serviceName: backend-server
              servicePort: 80

1 Ответ

1 голос
/ 21 января 2020

Я обратился в службу поддержки DigitalOcean (что невероятно). Моя проблема заключалась в том, что я не создал стручок входа - nginx. Эти два шага, как указано в руководстве, я пропустил.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/mandatory.yaml

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/provider/cloud-generic.yaml.

Мои фактические определения YAML были правильными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...