Я развертываю веб-приложение (набор серверов взаимодействующих узлов) на kubernetes.Я использую контроллер Traefik, как балансировщик нагрузки, а также внутреннюю связь в кластере.Я приобрел доменное имя через AWS и настроил его с помощью простого балансировщика нагрузки по маршруту 53. Он довольно хорошо работает для http://domain -name
.com.Я пытаюсь настроить SSL-сертификаты (приобретенные у сторонних поставщиков, не принадлежащих AWS), чтобы сделать веб-сайт https.Но это не работает.Я всегда получаю время ожидания соединения.Но http-путь работает довольно хорошо.
- Я получил сертификаты SSL от ИТ-отдела моей компании с файлами csr, key, interm.Исходя из этого, была создана новая конфигурация в диспетчере сертификатов AWS.
- Входной контроллер Traefik теперь настроен с включенным SSL, с поддержкой SSL, а также с телом сертификата и набором ключей.Я использую таблицу управления трафиком, где я сохраняю их в values.yaml.
- Ссылка на балансировщик нагрузки, созданная после установки контроллера traefik, настраивается с помощью конфигурации менеджера сертификатов AWS, созданной на шаге (1).В настройках Loadbalancers в консоли AWS открываем порт https.
- Кроме того, я настраиваю объекты секретов, содержащие 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.Есть предложения?