Поведение балансировки нагрузки DigitalOcean Kubernetes TCP 443 - PullRequest
0 голосов
/ 07 мая 2019

В настоящее время у меня есть эта служба балансировки нагрузки на моем кластере Kubernetes.

NAME            TYPE           CLUSTER-IP     EXTERNAL-IP       PORT(S)            AGE
kubernetes      ClusterIP      [HIDDEN]       <none>            443/TCP            44h
load-balancer   LoadBalancer   [HIDDEN]       [HIDDEN]          443:30014/TCP      39h

Это мой файл конфигурации .yaml

apiVersion: v1
kind: Service
metadata:
name: load-balancer
spec:
selector:
    app: nodeapp
type: LoadBalancer
ports:
    - protocol: TCP
    port: 443
    targetPort: 3000
    name: https

По какой-то причине DigitalOcean не устанавливает HTTPS вместо этого, если оставляет его как TCP 443. А затем мне нужно вручную перейти к DigitalOcean и изменить TCP на HTTPS и создать сертификат let encrypt. Как я могу заставить Kubernetes создать балансировщик нагрузки, используя HTTPS на порту 443 вместо TCP 443.

1 Ответ

0 голосов
/ 07 мая 2019

Согласно их документации вам необходимо добавить дополнительные аннотации, подобные этому:

---
kind: Service
apiVersion: v1
metadata:
  name: https-with-cert
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
    service.beta.kubernetes.io/do-loadbalancer-algorithm: "round_robin"
    service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "your-certificate-id"
spec:
  type: LoadBalancer
  selector:
    app: nginx-example
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80

Как добавить SSL-сертификат: https://www.digitalocean.com/docs/networking/load-balancers/how-to/custom-ssl-cert/

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