kubernetes - 如果 https 流量,我如何将入口转发到 ssl 端口(443)

标签 kubernetes kubernetes-ingress nginx-ingress

入口如何将 https 流量转发到服务的端口 443(最终到我的容器上的 8443)?我是否必须对我的入口进行任何更改,还是自动完成。

在 GCP 上,我有一个第 4 层平衡器 -> nginx-ingress Controller -> 入口

我的入口是:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-keycloak
  annotations:
    kubernetes.io/ingress.class: "nginx"
    certmanager.k8s.io/issuer: "letsencrypt-prod"
    certmanager.k8s.io/acme-challenge-type: http01


spec:
  tls:
  - hosts:
    - mysite.com
    secretName: staging-iam-tls
  rules:
  - host: mysite.com
    http:
      paths:
      - path: /auth
        backend:
          serviceName: keycloak-http
          servicePort: 80

我在网上搜索,但我没有看到达到 443 的明确例子。它总是 80(或 8080)

我的服务 keycloak-http是(被省略,我的容器实际上在 8443 监听)
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2019-05-15T12:45:58Z
  labels:
    app: keycloak
    chart: keycloak-4.12.0
    heritage: Tiller
    release: keycloak
  name: keycloak-http
  namespace: default
 ..
spec:
  clusterIP: ..
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    app: keycloak
    release: keycloak
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

最佳答案

尝试这个:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-keycloak
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    certmanager.k8s.io/issuer: "letsencrypt-prod"
    certmanager.k8s.io/acme-challenge-type: http01
spec:
  tls:
  - hosts:
    - mysite.com
    secretName: staging-iam-tls
  rules:
  - host: mysite.com
    http:
      paths:
      - path: /auth
        backend:
          serviceName: keycloak-http
          servicePort: 443

关于kubernetes - 如果 https 流量,我如何将入口转发到 ssl 端口(443),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187391/

相关文章:

docker - 如何使用客户端API从运行Pod获取当前 namespace

WebSocket 握手 : Unexpected response code: 400 in kubernetes-ingress

kubernetes - Helm 3 安装现有资源

kubernetes - 如何使用Kubectl隐藏列

nginx - 使用 nginx pod 作为反向代理与 nginx ingress 之间的区别

kubernetes - 入口路径重定向、helm 图

.net - nginx 入口 Controller 日志 499

kubernetes - 带有主机名的 Kube 入口(如何知道 IP 以转发域名?)

kubernetes - Kubernetes 集群中的 Websocket 连接与 nginx-ingress

kubernetes - 无法列出节点或命名空间