设置:
我为我的“ hello.local”有一个自签名的SSL证书。
我需要实现的目标:在“ https://hello.local/”后面的Kong后面隐藏密钥库。
我的步骤:
1)新鲜minikube
2)按照以下值安装带有头盔的Keycloak:yaml:
keycloak:
basepath: ""
replicas: 1
...
extraEnv: |
- name: PROXY_ADDRESS_FORWARDING
value: "true"
(这将创建服务auth-keycloak-http
)
3)按照以下values.yaml头盔安装Kong:
replicaCount: 1
admin:
ingress:
enabled: true
hosts: ['hello.local']
proxy:
type: LoadBalancer
ingress:
enabled: true
hosts: ['hello.local']
tls:
- hosts:
- hello.local
secretName: tls-certificate
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
tls:
enabled: true
postgresql:
...
4)我为Kong设置了服务和路线
服务:
Protocol: http
Host: auth-keycloak-http
Port: 80
路线:
Hosts: hello.local
此后,我可以打开“ https://hello.local”,并可以从Keycloak查看欢迎页面,在该页面上单击管理控制台,然后在浏览器中重定向到“ https://hello.local:8443/admin/master/console/”。因此,我们此时不应使用其他端口进行重定向。
如果PROXY_ADDRESS_FORWARDING
为true
,则具有2个docker映像(Keycloak + Kong)的设置将正常工作。
如何使Keycloak(头盔图表)在kubernetes集群中的Kong(头盔图表)之后按预期工作,而无需重定向?
这在github issue 1,github issue 2和github issue 3中进行了讨论。另外,类似问题on stackoverflow
答案 0 :(得分:1)
似乎,有必要在keycloak舵图的values.yaml中设置以下环境变量:
...
extraEnv: |
- name: KEYCLOAK_HTTP_PORT
value: "80"
- name: KEYCLOAK_HTTPS_PORT
value: "443"
- name: KEYCLOAK_HOSTNAME
value: example.com
...
所有这些都是必需的,之后,重定向将正常工作。