入口后面的 kubernetes 上的 Keycloak 不起作用



我在Kubernetes上设置keycloak有问题。我有一个负载均衡器设置(nginx入口控制器)终止SSL。我尝试了许多不同的配置,但当我尝试/auth端点时,我得到的是502,503和404错误。下面是我的deploy .yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: default
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: bitnami/keycloak:13.0.1-debian-10-r79
env:
- name: KEYCLOAK_USER
valueFrom:
secretKeyRef:
name: keycloak-secret
key: keycloak_user
- name: KEYCLOAK_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-secret
key: keycloak_password
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: DB_VENDOR
value: "postgres"
- name: DB_ADDR
value: "my.postgres.host"
- name: DB_DATABASE
value: "keycloak"
- name: DB_USER
valueFrom:
secretKeyRef:
name: keycloak-secret
key: dbuser
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-secret
key: dbpassword
- name: KEYCLOAK_LOGLEVEL
value: "DEBUG"
- name: KEYCLOAK_EXTRA_ARGS
value: "-Dkeycloak.frontendUrl=https://my.keycloak.local/auth"
ports:
- name: http
containerPort: 8080
- name: https
containerPort: 8443
---
apiVersion: v1
kind: Service
metadata:
name: keycloak
labels:
app: keycloak
spec:
type: ClusterIP
ports:
- port: 8080
name: http
targetPort: 8080
selector:
app: keycloak

and my ingress.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.org/server-snippets: |
location / {
proxy_set_header X-Forwarded-For $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
name: ingress
spec:
tls:
- hosts:
- my.keycloak.local
rules:
- host: my.keycloak.local
http:
paths:
- path: "/"
pathType: Prefix
backend:
service:
name: keycloak
port:
number: 8080

我不知道我做错了什么。我已经遵循了GitHub上关于这个问题的一些讨论,但我仍然找不到解决方案。我提供的这个特定配置在访问https://my.keycloak.local/auth时返回404,但没有找到。

我能告诉你的是,这绝对是keycloak的问题-我用nginx:alpine docker图像替换了keycloak图像,一切都正常工作-"欢迎来到nginx!"页面加载.

如果需要,我很乐意提供更多的信息。我的kubernetes集群运行在AKS上。

后仔细阅读keycloak日志我的问题解决了。事实证明,如果pod名称长于23个字符,keycloak就不能正常启动(即使pod的状态是Running 1/1")。在将部署资源更改为StatefulSet并选择ServiceName后,我的问题消失了,keycloak正常启动,我可以访问它。

相关内容

  • 没有找到相关文章

最新更新