搜索

4.4. 迁移过程

download PDF
  1. 将红帽构建的 Keycloak Operator 安装到命名空间中。
  2. 创建新 CR 和相关的 Secret。

    手动将基于 Red Hat Single Sign-On 7.6 配置的模板迁移到您的新 Red Hat build of Keycloak CR。有关 Template 参数和 Keycloak CR 字段之间的建议映射,请参阅以下示例。

以下示例将 Keycloak Operator CR 的 Red Hat build 与之前由 Red Hat Single Sign-On 7.6 模板创建的 DeploymentConfig 进行对比。

用于红帽构建的 Keycloak 的 Operator CR

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: rhbk
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: sso-x509-https-secret

Red Hat Single Sign-On 7.6 的 DeploymentConfig

apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: rhsso
spec:
  replicas: 1
  template:
    spec:
      volumes:
        - name: sso-x509-https-volume
          secret:
            secretName: sso-x509-https-secret
            defaultMode: 420
      containers:
          volumeMounts:
            - name: sso-x509-https-volume
              readOnly: true
          env:
            - name: DB_SERVICE_PREFIX_MAPPING
              value: postgres-db=DB
            - name: DB_USERNAME
              value: username
            - name: DB_PASSWORD
              value: password

下表通过 JSON 路径表示法引用 Keycloak CR 的字段。例如,.spec 是指 spec 字段。请注意,spec.unsupported 是一个技术预览字段。更表明,功能最终将由其他 CR 字段实现。标记为 粗体 的参数由 passthrough 和 reencrypt 模板支持。

4.4.1. 常规参数迁移

Red Hat Single Sign-On 7.6Red Hat build of Keycloak 24.0

APPLICATION_NAME

.metadata.name

IMAGE_STREAM_NAMESPACE

N/A - 镜像由 Operator 控制,或者您主要使用 spec.image 指定自定义镜像

SSO_ADMIN_USERNAME

没有直接设置,默认为 admin

SSO_ADMIN_PASSWORD

N/A - 在初始协调过程中由 Operator 创建

MEMORY_LIMIT

.spec.unsupported.podTemplate.spec.containers[0].resources.limits[‘memory’]

SSO_SERVICE_PASSWORD, SSO_SERVICE_USERNAME

不再使用。

SSO_TRUSTSTORE, SSO_TRUSTSTORE_PASSWORD, SSO_TRUSTSTORE_SECRET

.spec.truststores Notice,信任存储不能受密码保护。

SSO_REALM

如果您要重复使用现有的数据库,则不需要使用。另一种方法是 RealmImport CR。

4.4.2. 数据库部署参数迁移

POSTGRESQL_IMAGE_STREAM_TAG,POSTGRESQL_MAX_CONNECTIONS,VOLUME_CAPACITYPOSTGRESQL_SHARED_BUFFERS 将需要迁移到您选择的数据库部署的任何替换中。

4.4.3. 数据库连接参数迁移

Red Hat Single Sign-On 7.6Red Hat build of Keycloak 24.0

DB_VENDOR

如果 PostgreSQL 仍在使用,则需要将 .spec.db.vendor - 设置为 PostgreSQL

DB_DATABASE

.spec.db.database

DB_MIN_POOL_SIZE

.spec.db.poolMinSize

DB_MAX_POOL_SIZE

.spec.db.maxPoolSize

DB_TX_ISOLATION

如果驱动程序支持或作为目标数据库的常规设置,则 spec.db.url 可以被 spec.db.url 设置

DB_USERNAME

.spec.db.usernameSecret

DB_PASSWORD

.spec.db.passwordSecret

DB_JNDI

不再适用

4.4.4. 网络参数迁移

Red Hat Single Sign-On 7.6Red Hat build of Keycloak 24.0

HOSTNAME_HTTP

.spec.hostname.hostname - with .spec.http.httpEnabled=true.因为 Red Hat build of Keycloak operator 将只创建一个 Ingress/Route,因此为了创建 http 路由 .spec.http.tlsSecret,需要未指定

HOSTNAME_HTTPS

.spec.hostname.hostname - with .spec.http.tlsSecret specified.

SSO_HOSTNAME

.spec.hostname.hostname

HTTPS_SECRET

.spec.http.tlsSecret - 请查看下面的其他 HTTPS 参数

HTTPS_KEYSTORE HTTPS_KEYSTORE_TYPE HTTPS_NAME HTTPS_PASSWORD

不再适用。.spec.http.tlsSecret 引用的 secret 应该类型为 kubernetes.io/tls,带有 tls.crttls.key 条目

X509_CA_BUNDLE

.spec.truststores

请注意,红帽构建的 Keycloak Operator 目前不支持配置 TLS 终止的方法。默认情况下使用 passthrough 策略。因此,代理选项还没有作为第一类的看法选项字段公开,因为它是否使用了 passthrough 或 reencrypt 策略。但是,如果需要这个选项,可以替换默认的 Ingress Operator 证书并手动配置 Route,以信任红帽构建的 Keycloak 证书。

然后,可以通过以下方法覆盖红帽构建的 Keycloak Operator 的默认行为:

additionalOptions:
   name: proxy
   value: reencrypt

4.4.5. JGroups 参数迁移

JGROUPS_ENCRYPT_SECRET、JGROUPS_ENCRYPT_KEYSTORE、JGROUPS_ENCRYPT_NAME、JGROUPS_ENCRYPT_PASSWORD 和 JGROUPS_CLUSTER_PASSWORD 在 Keycloak CR 中没有第一类表示。仍可使用缓存配置文件保护缓存通信。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.