【发布时间】:2019-05-17 13:25:25
【问题描述】:
入口如何将 https 流量转发到服务的 443 端口(最终到我容器上的 8443)?我是否必须对我的入口进行任何更改,或者这是自动完成的。
在 GCP 上,我有一个第 4 层平衡器 -> nginx-ingress 控制器 -> 入口
我的入口是:
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: {}
【问题讨论】:
-
是什么阻止您使用
servicePort: 443? -
@cookiedough 我试过了,但它不起作用,虽然我可以本地代理到 8443 并直接连接。
-
你可以尝试端口转发到
kubectl port-forward svc/keycloak 8443:443这样的服务
标签: kubernetes kubernetes-ingress nginx-ingress