DigitalOcean负载平衡器行为Kubernetes TCP 443

时间:2019-05-06 23:58:59

标签: kubernetes digital-ocean

当前,我在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,则不会设置HTTPS。然后,我必须手动转到DigitalOcean,将TCP更改为HTTPS,然后创建加密证书。如何让Kubernetes使用HTTPS而不是TCP 443在端口443上创建负载均衡器。

2 个答案:

答案 0 :(得分:0)

根据他们的documentation,您需要添加其他注释,例如:

---
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/

答案 1 :(得分:0)

类型为“负载平衡器”的服务将创建仅知道IP和端口的第4层类型LB(网络LB)。

您将需要知道应用程序的第7层LB(应用程序LB)。

因此,要启用HTTPS,您将需要通过入口进行管理。