Проблема настройки SSL-сертификатов для контроллера traefik в AWS Kubernetes - PullRequest
1 голос
/ 11 апреля 2019

Я развертываю веб-приложение (набор серверов взаимодействующих узлов) на kubernetes.Я использую контроллер Traefik, как балансировщик нагрузки, а также внутреннюю связь в кластере.Я приобрел доменное имя через AWS и настроил его с помощью простого балансировщика нагрузки по маршруту 53. Он довольно хорошо работает для http://domain -name .com.Я пытаюсь настроить SSL-сертификаты (приобретенные у сторонних поставщиков, не принадлежащих AWS), чтобы сделать веб-сайт https.Но это не работает.Я всегда получаю время ожидания соединения.Но http-путь работает довольно хорошо.

  1. Я получил сертификаты SSL от ИТ-отдела моей компании с файлами csr, key, interm.Исходя из этого, была создана новая конфигурация в диспетчере сертификатов AWS.
  2. Входной контроллер Traefik теперь настроен с включенным SSL, с поддержкой SSL, а также с телом сертификата и набором ключей.Я использую таблицу управления трафиком, где я сохраняю их в values.yaml.
  3. Ссылка на балансировщик нагрузки, созданная после установки контроллера traefik, настраивается с помощью конфигурации менеджера сертификатов AWS, созданной на шаге (1).В настройках Loadbalancers в консоли AWS открываем порт https.
  4. Кроме того, я настраиваю объекты секретов, содержащие ssl-сертификаты, во время настройки входа.

Для начинающих, это пример приложения, к которому я пытаюсь получить доступ через контроллер traefik через https,

apiVersion: v1
kind: Service
metadata:
  name: hello-kubernetes
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: hello-kubernetes
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-kubernetes
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-kubernetes
  template:
    metadata:
      labels:
        app: hello-kubernetes
    spec:
      containers:
      - name: hello-kubernetes
        image: gcr.io/hello-minikube-zero-install/hello-node
        ports:
        - containerPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - http:
      paths:
      - path: / 
        backend:
          serviceName: hello-kubernetes
          servicePort: 80
  tls:
   - secretName: traefik-ui-tls-cert 

Что касается диаграммы управления контроллером traefik,

ssl:
  enabled: true
  enforced: false
  permanentRedirect: false
  upstream: false
  insecureSkipVerify: false
  generateTLS: false
  defaultSANList: []
  defaultIPList: []
  defaultCert: <crt from IT> (which I converted from csr file that IT gave me using openssh tool) 
  defaultKey: <key from IT> 

И в консоли aws для балансировщика нагрузки на вкладке слушателей я добавляю следующую конфигурацию.

HTTPS-443-HTTP-80-e1e4096b-6a31-4b2d-9d33-9f3f94ab0320 (ACM) Change

Я должен иметь доступ к своему веб-сайту по https.Но я могу получить к нему доступ только по http.Есть предложения?

...