搜索

5.2. 流程

download PDF
  1. 使用 概念来确定部署的大小,以调整 CPU 和内存资源 大小 章节。
  2. 安装红帽构建的 Keycloak Operator,如 红帽构建的 Keycloak Operator 安装 章节中所述。
  3. 如在 多个可用区一章中的 Deploy AWS Aurora 所述,部署 Aurora AWS
  4. 构建自定义红帽 Keycloak 镜像构建,该镜像 准备好用于 Amazon Aurora PostgreSQL 数据库
  5. 使用在第一步中计算的资源请求和限值,使用以下值部署红帽 Keycloak CR:

    apiVersion: k8s.keycloak.org/v2alpha1
    kind: Keycloak
    metadata:
      labels:
        app: keycloak
      name: keycloak
      namespace: keycloak
    spec:
      hostname:
        hostname: <KEYCLOAK_URL_HERE>
      resources:
        requests:
          cpu: "2"
          memory: "1250M"
        limits:
          cpu: "6"
          memory: "2250M"
      db:
        vendor: postgres
        url: jdbc:aws-wrapper:postgresql://<AWS_AURORA_URL_HERE>:5432/keycloak
        poolMinSize: 30 1
        poolInitialSize: 30
        poolMaxSize: 30
        usernameSecret:
          name: keycloak-db-secret
          key: username
        passwordSecret:
          name: keycloak-db-secret
          key: password
      image: <KEYCLOAK_IMAGE_HERE> 2
      startOptimized: false 3
      features:
        enabled:
          - multi-site 4
      transaction:
        xaEnabled: false 5
      additionalOptions:
        - name: http-max-queued-requests
          value: "1000"
        - name: log-console-output
          value: json
        - name: metrics-enabled 6
          value: 'true'
        - name: http-pool-max-threads 7
          value: "66"
        - name: db-driver
          value: software.amazon.jdbc.Driver
      http:
        tlsSecret: keycloak-tls-secret
      instances: 3
    1
    数据库连接池 initial、max 和 min 大小应当相同,以允许数据库的声明缓存。调整这个数字以满足您的系统需求。由于红帽构建的 Keycloak 嵌入式缓存,大多数请求都不涉及数据库,因此这个更改可以每秒为几百个请求服务器。详情请参阅数据库连接池的概念 章节。
    2 3
    指定自定义红帽构建的 Keycloak 镜像的 URL。如果您的镜像经过优化,请将 startOptimized 标志设置为 true
    4
    为多站点支持启用其他功能,如 loadbalancer probe /lb-check
    5
    6
    要能够分析负载下的系统,请启用指标端点。设置的缺点是,指标将在 Keycloak 端点的外部红帽构建中提供,因此您必须添加一个过滤器,以便外部无法使用端点。使用红帽构建的 Keycloak 之前的反向代理来过滤这些 URL。
    7
    内部 JGroup 线程池的默认设置最大为 200 个线程。StatefulSet 中所有红帽构建的 Keycloak 线程数量不应超过 JGroup 线程的数量,以避免 JGroup 线程池耗尽,这可能会使红帽构建 Keycloak 请求处理。您可以考虑进一步限制红帽构建的 Keycloak 线程数量,因为达到请求的 CPU 限制后,Kubernetes 将会导致多个并发线程节流。详情请参阅配置线程池 的概念。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.