我在kubernetes集群中运行keycloak,运行得很好,直到我意识到数据库仍然使用H2,甚至我已经在deployment.yaml
中添加了POSTGRES配置。有人能指出我失踪的地方吗?
apiVersion: apps/v1
kind: Deployment
...
spec:
...
spec:
containers:
- name: keycloak
image: quay.io/keycloak/keycloak:17.0.0
args:
[
"start",
"--hostname-strict=false"
]
env:
- name: DB_VENDOR
value: postgres
- name: DB_ADDR
valueFrom:
secretKeyRef:
name: keycloak-db-cred
key: host
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
valueFrom:
secretKeyRef:
name: keycloak-db-cred
key: database
- name: DB_SCHEMA
value: public
- name: DB_USER
valueFrom:
secretKeyRef:
name: keycloak-db-cred
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-db-cred
key: password
- name: KEYCLOAK_ADMIN
valueFrom:
secretKeyRef:
name: keycloak-secret
key: username
- name: KEYCLOAK_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-secret
key: password
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: KC_PROXY
value: "edge"
- name: JAVA_OPTS
value: -Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled
我使用GCP的Postgre CloudSQL
发布于 2022-05-30 21:10:26
您设置的"db_vendor“值用于旧的野蝇分布,根据示例中的图像,您使用的是基于夸克的图像。因此,首先,它现在被称为"db“。参考文献:https://www.keycloak.org/server/db
另外,请注意"db“选项是"build选项”,这意味着您必须“构建”服务器才能使其生效。
方法1:可以将start --auto-build
添加到args
中。通过这种方式,Keycloak会自动检测您是否更改了构建时选项,并在容器启动时运行构建。这很方便,但需要一些时间。
方法2:或者您可以使用建议的方法首先创建优化的服务器映像,从而获得更好的启动时间。例如,通过使用这样的Dockerfile:
FROM quay.io/keycloak/keycloak:latest as builder
ENV KC_FEATURES=scripts
ENV KC_DB=postgres
RUN /opt/keycloak/bin/kc.sh build
然后执行一个docker build . -t my_optimized_keycloak
,然后将图像上传到所选择的注册表。参考文献:https://www.keycloak.org/server/containers
我还注意到,您将一些旧的配置键与新的配置键混合在一起,因此一般建议:查看https://www.keycloak.org/guides中的新指南部分--特别是“所有配置”指南给出了一个很好的概述。
我还注意到您正在使用不推荐的upload_scripts特性。这是从Keycloak 18 (参见https://www.keycloak.org/2022/04/keycloak-1800-released.html ) fyi中删除的。
https://stackoverflow.com/questions/72401322
复制相似问题