3.3. 迁移 Keycloak CR


Keycloak CR 现在支持所有服务器配置选项。在 CR 的 spec 下,所有相关选项都作为第一类的会面字段提供。CR 中的所有选项遵循相同的命名约定,这与在裸机和 Operator 部署间体验的服务器选项相同。

另外,您可以在 additionalOptions 字段中定义 CR 缺少的任何选项,如 SPI 供应商配置。另一个选择是使用 podTemplate (一个技术预览字段)来修改原始 Kubernetes 部署 pod 模板,如果支持的替代方案并不存在作为 CR 中的第一个类 该文件字段。

下面显示了一个通过 Operator 部署红帽构建的 Keycloak CR 示例:

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  instances: 1
  db:
    vendor: postgres
    host: postgres-db
    usernameSecret:
      name: keycloak-db-secret
      key: username
    passwordSecret:
      name: keycloak-db-secret
      key: password
  http:
    tlsSecret: example-tls-secret
  hostname:
    hostname: test.keycloak.org
  additionalOptions:
    - name: spi-connections-http-client-default-connection-pool-size
      value: 20

请注意 CLI 配置的位置:

./kc.sh start --db=postgres --db-url-host=postgres-db --db-username=user --db-password=pass --https-certificate-file=mycertfile --https-certificate-key-file=myprivatekey --hostname=test.keycloak.org --spi-connections-http-client-default-connection-pool-size=20

3.3.1. 迁移数据库配置

Red Hat build of Keycloak 可以使用与之前 Red Hat Single Sign-On 7.6 使用相同的数据库实例。当红帽首次构建 Keycloak 时,数据库架构将自动迁移。

警告

不支持迁移由 Red Hat Single Sign-On 7.6 Operator 管理的嵌入式数据库。

在 Red Hat Single Sign-On 7.6 Operator 中,外部数据库连接使用 Secret 配置,例如:

apiVersion: v1
kind: Secret
metadata:
  name: keycloak-db-secret
  namespace: keycloak
  labels:
    app: sso
stringData:
  POSTGRES_DATABASE:  kc-db-name
  POSTGRES_EXTERNAL_ADDRESS: my-postgres-hostname
  POSTGRES_EXTERNAL_PORT: 5432
  POSTGRES_USERNAME: user
  POSTGRES_PASSWORD: pass
type: Opaque

在 Red Hat build of Keycloak 中,数据库直接在 Keycloak CR 中配置,其凭证被引用为 Secret,例如:

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  db:
    vendor: postgres
    host: my-postgres-hostname
    port: 5432
    usernameSecret:
      name: keycloak-db-secret
      key: username
    passwordSecret:
      name: keycloak-db-secret
      key: password
  ...

apiVersion: v1
kind: Secret
metadata:
  name: keycloak-db-secret
stringData:
  username: "user"
  password: "pass"
type: Opaque

3.3.1.1. 支持的数据库供应商

Red Hat Single Sign-On 7.6 Operator 仅支持 PostgreSQL 数据库,但红帽构建的 Keycloak Operator 支持服务器支持的所有数据库供应商。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部