当应用程序在端口80上时,Kubernetes Loadbalancer重定向到HTTP

时间:2018-12-19 21:38:01

标签: kubernetes

我已经使用负载均衡器向Kubernetes集群部署了一系列部署和服务。当我尝试访问我的应用程序时,此操作不起作用,因为我的应用程序在端口80上公开,但URL始终重定向到端口443(HTTPS)。我怀疑这与群集IP位于端口443上有关。

关于如何解决此问题的任何想法?

methods: {
  updateNumero(index, model) {
    $v.especifications.$each.$iter[index].numero[model] = parseInt(index) +1
  }
}

1 个答案:

答案 0 :(得分:2)

这可能是由于您的应用程序本身重定向到端口443。这是什么类型的应用程序?

此在端口443上公开的服务与您的应用程序无关:

kubernetes   ClusterIP      10.245.0.1       <none>           443/TCP          8m

这基本上是一项内部服务,可让您访问集群中的kube-apiserver。

您可以尝试设置LoadBalancer以直接在端口443上监听。只有您必须移植80流量不起作用。如果您希望端口80重定向到工作,建议您使用Ingress之类的nginx控制器。像这样:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: your-ingress
  annotations:
     nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
  tls:
  - hosts:
    - yourhostname.com
    secretName: tls-secret
  rules:
  - host: yourhostname.com
    http:
      paths:
      - path: /
        backend:
          serviceName: web
          servicePort: 443

您还必须创建一个包含您的证书和密钥的TLS秘密:

$ kubectl create secret tls tls-secret --key /tmp/tls.key --cert /tmp/tls.crt