8.5. 配置 Cluster Operator


使用环境变量配置 Cluster Operator。在 Deployment 配置文件中,指定 Cluster Operator 的容器镜像的环境变量。

注意

AMQ Streams 发行工件提供的 Deployment 配置文件为 install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml

您可以使用以下环境变量来配置 Cluster Operator。如果您以待机模式运行 Cluster Operator 副本,则需要额外的 环境变量来启用领导选举机制

STRIMZI_NAMESPACE

以逗号分隔的 Operator 运行的命名空间列表。如果没有设置,则为空字符串,或设置为 *,Cluster Operator 在所有命名空间中运行。

Cluster Operator 部署可能会使用 Downward API 来自动将其设置为部署了 Cluster Operator 的命名空间。

Cluster Operator 命名空间的配置示例

env:
  - name: STRIMZI_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap

STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
可选,默认为 120000 ms。定期协调 之间的间隔,以毫秒为单位。
STRIMZI_OPERATION_TIMEOUT_MS
可选,默认的 300000 ms。内部操作的超时时间,以毫秒为单位。当在常规 OpenShift 操作中使用 AMQ Streams 的时间超过通常时,增加这个值(例如下载 Docker 镜像的速度较慢)。
STRIMZI_ZOOKEEPER_ADMIN_SESSION_TIMEOUT_MS
可选,默认的 10000 ms。Cluster Operator 的 ZooKeeper admin 客户端的会话超时,以毫秒为单位。如果 Cluster Operator 的 ZooKeeper 请求因为超时问题定期失败,请增加这个值。通过 maxSessionTimeout 配置在 ZooKeeper 服务器端设置最大允许会话时间。默认情况下,最大会话超时值为 20 倍,即默认 tickTime (其默认值为 2000)为 40000 ms。如果您需要更高的超时,请更改 maxSessionTimeout ZooKeeper 服务器配置值。
STRIMZI_OPERATIONS_THREAD_POOL_SIZE
可选,默认 10。worker 线程池大小,用于各种异步和阻止由 Cluster Operator 运行的操作。
STRIMZI_OPERATOR_NAME
可选,默认为 pod 的主机名。在发出 OpenShift 事件时,Operator 名称标识 AMQ Streams 实例。
STRIMZI_OPERATOR_NAMESPACE

运行 Cluster Operator 的命名空间的名称。不要手动配置此变量。使用 Downward API。

env:
  - name: STRIMZI_OPERATOR_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap
STRIMZI_OPERATOR_NAMESPACE_LABELS

可选。运行 AMQ Streams Cluster Operator 的命名空间标签。使用命名空间标签在 网络策略 中配置命名空间选择器。网络策略只允许 AMQ Streams Cluster Operator 从带有这些标签的命名空间中访问操作对象。如果没有设置,则网络策略中的命名空间选择器被配置为允许从 OpenShift 集群中的任何命名空间中访问 Cluster Operator。

env:
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
Copy to Clipboard Toggle word wrap
STRIMZI_LABELS_EXCLUSION_PATTERN

可选,默认的正则表达式为 ^app.kubernetes.io/(?!part-of).*。用于过滤从主自定义资源传播到其子资源的正则表达式排除模式。标签排除过滤器不适用于模板部分中的标签,如 spec.kafka.template.pod.metadata.labels

env:
  - name: STRIMZI_LABELS_EXCLUSION_PATTERN
    value: "^key1.*"
Copy to Clipboard Toggle word wrap
STRIMZI_CUSTOM_{COMPONENT_NAME}_LABELS

可选。一个或多个自定义标签,应用到 {COMPONENT_NAME} 自定义资源创建的所有 pod。Cluster Operator 在创建自定义资源或下一次协调时会标记 pod。

标签可应用到以下组件:

  • KAFKA
  • KAFKA_CONNECT
  • KAFKA_CONNECT_BUILD
  • ZOOKEEPER
  • ENTITY_OPERATOR
  • KAFKA_MIRROR_MAKER2
  • KAFKA_MIRROR_MAKER
  • CRUISE_CONTROL
  • KAFKA_BRIDGE
  • KAFKA_EXPORTER
STRIMZI_CUSTOM_RESOURCE_SELECTOR

可选。用于过滤 Cluster Operator 处理的自定义资源的标签选择器。Operator 仅在设置了指定标签的自定义资源上运行。Operator 不会看到没有这些标签的资源。标签选择器适用于 Kafka, KafkaConnect, KafkaBridge, KafkaMirrorMaker, 和 KafkaMirrorMaker2 资源。只有在对应的 Kafka 和 Kafka Connect 集群具有匹配的标签时,才会执行 KafkaRebalanceKafkaConnector 资源。

env:
  - name: STRIMZI_CUSTOM_RESOURCE_SELECTOR
    value: label1=value1,label2=value2
Copy to Clipboard Toggle word wrap
STRIMZI_KAFKA_IMAGES
必需。从 Kafka 版本到包含该版本的 Kafka 代理的对应 Docker 镜像的映射。所需的语法为空格或以逗号分隔的 < version> = &lt;image> 对。例如 3.4.0=registry.redhat.io/amq-streams/kafka-34-rhel8:2.5.1, 3.5.0=registry.redhat.io/amq-streams/kafka-35-rhel8:2.5.1。当指定了属性 Kafka.spec.kafka.version 但没有在 Kafka 资源的 Kafka.spec.kafka.image 时使用这个。
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
可选,默认 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.5.1。如果没有将镜像指定为 Kafka 资源中的 kafka-init-image,则用作 init 容器的默认镜像名称。init 容器在代理进行初始配置工作之前启动,如机架支持。
STRIMZI_KAFKA_CONNECT_IMAGES
必需。从 Kafka 版本映射到那个版本的 Kafka Connect 的对应 Docker 镜像。所需的语法为空格或以逗号分隔的 < version> = &lt;image> 对。例如 3.4.0=registry.redhat.io/amq-streams/kafka-34-rhel8:2.5.1, 3.5.0=registry.redhat.io/amq-streams/kafka-35-rhel8:2.5.1。当指定 KafkaConnect.spec.version 属性但没有 KafkaConnect.spec.image 时,会使用它。
STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
必需。此版本从 Kafka 版本到 MirrorMaker 的对应 Docker 镜像的映射。所需的语法为空格或以逗号分隔的 < version> = &lt;image> 对。例如 3.4.0=registry.redhat.io/amq-streams/kafka-34-rhel8:2.5.1, 3.5.0=registry.redhat.io/amq-streams/kafka-35-rhel8:2.5.1。当指定 KafkaMirrorMaker.spec.version 属性但没有 KafkaMirrorMaker.spec.image 时,会使用它。
STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
可选,默认 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.5.1。如果没有将镜像指定为 Kafka 资源中的 Kafka.spec.entityOperator.topicOperator.image,则部署 Topic Operator 时使用的镜像名称作为默认镜像。
STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
可选,默认 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.5.1。如果没有将镜像指定为 Kafka 资源中的 Kafka.spec.entityOperator.userOperator.image,则部署 User Operator 时使用的 镜像名称
STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE
可选,默认 registry.redhat.io/amq-streams/kafka-35-rhel8:2.5.1。如果没有将镜像指定为 Kafka 资源中的 Kafka.spec.entityOperator.tlsSidecar.image,则用作实体 Operator 的 sidecar 容器时使用的 镜像名称。sidecar 提供 TLS 支持。
STRIMZI_IMAGE_PULL_POLICY
可选。应用到 Cluster Operator 管理的所有 pod 中的容器的 ImagePullPolicy。有效值为 Always、ifNotP resent 和 Never。如果未指定,则使用 OpenShift 默认值。更改策略将导致所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群的滚动更新。
STRIMZI_IMAGE_PULL_SECRETS
可选。以逗号分隔的 Secret 名称列表。此处引用的 secret 包含从中拉取容器镜像的容器 registry 的凭证。secret 在 Cluster Operator 创建的所有 pod 的 imagePullSecrets 属性中指定。更改此列表会导致所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群的滚动更新。
STRIMZI_KUBERNETES_VERSION

可选。覆盖从 API 服务器检测到的 OpenShift 版本信息。

OpenShift 版本覆盖配置示例

env:
  - name: STRIMZI_KUBERNETES_VERSION
    value: |
           major=1
           minor=16
           gitVersion=v1.16.2
           gitCommit=c97fe5036ef3df2967d086711e6c0c405941e14b
           gitTreeState=clean
           buildDate=2019-10-15T19:09:08Z
           goVersion=go1.12.10
           compiler=gc
           platform=linux/amd64
Copy to Clipboard Toggle word wrap

KUBERNETES_SERVICE_DNS_DOMAIN

可选。覆盖默认的 OpenShift DNS 域名后缀。

默认情况下,OpenShift 集群中分配的服务具有使用默认后缀 cluster.local 的 DNS 域名。

例如,对于 broker kafka-0

<cluster-name>-kafka-0.<cluster-name>-kafka-brokers.<namespace>.svc.cluster.local
Copy to Clipboard Toggle word wrap

DNS 域名添加到用于主机名验证的 Kafka 代理证书中。

如果您在集群中使用不同的 DNS 域名后缀,请将 KUBERNETES_SERVICE_DNS_DOMAIN 环境变量改为您用来与 Kafka 代理建立连接。

STRIMZI_CONNECT_BUILD_TIMEOUT_MS
可选,默认的 300000 ms。使用额外连接器构建新 Kafka Connect 镜像的超时时间,以毫秒为单位。当使用 AMQ Streams 来构建包含许多连接器的容器镜像或使用较慢的容器 registry 时,请考虑增加这个值。
STRIMZI_NETWORK_POLICY_GENERATION

可选,默认为 true。资源的网络策略。网络策略允许 Kafka 组件间的连接。

将此环境变量设置为 false 以禁用网络策略生成。例如,您可能需要使用自定义网络策略,您可能需要执行此操作。自定义网络策略可让更多地控制组件间的连接。

STRIMZI_DNS_CACHE_TTL
可选,默认的 30。在本地 DNS 解析器中缓存成功名称查找的秒数。任何负值都表示缓存永久缓存。zero 意味着不会缓存,这可用于避免因为应用长缓存策略而连接错误。
STRIMZI_POD_SET_RECONCILIATION_ONLY
可选,默认为 false。当设置为 true 时,Cluster Operator 只协调 StrimziPodSet 资源,以及其它自定义资源(KafkaKafkaConnect 等)的任何更改。此模式可用于确保根据需要重新创建 pod,但不会对集群进行其他更改。
STRIMZI_FEATURE_GATES
可选。启用或禁用由 功能门控制的功能和功能
STRIMZI_POD_SECURITY_PROVIDER_CLASS
可选。配置可插拔 PodSecurityProvider 类,可用于为 Pod 和容器提供安全上下文配置。

使用 STRIMZI_OPERATOR_NAMESPACE_LABELS 环境变量,使用命名空间标签为 Cluster Operator 建立网络策略。

Cluster Operator 可以在与它管理的资源相同的命名空间中运行,也可以在单独的命名空间中运行。默认情况下,STRIMZI_OPERATOR_NAMESPACE 环境变量被配置为使用 Downward API 查找运行 Cluster Operator 的命名空间。如果 Cluster Operator 在与资源相同的命名空间中运行,则 AMQ Streams 只需要本地访问。

如果 Cluster Operator 在单独命名空间中运行,则 OpenShift 集群中的任何命名空间都可以访问 Cluster Operator,除非配置了网络策略。通过添加命名空间标签,对 Cluster Operator 的访问仅限于指定的命名空间。

为 Cluster Operator 部署配置的网络策略

#...
env:
  # ...
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
  #...
Copy to Clipboard Toggle word wrap

8.5.2. 配置 Cluster Operator 的定期协调

使用 STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 变量设置 Cluster Operator 定期协调的时间间隔。将其值替换为所需间隔(以毫秒为单位)。

为 Cluster Operator 部署配置的协调周期

#...
env:
  # ...
  - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
    value: "120000"
  #...
Copy to Clipboard Toggle word wrap

Cluster Operator 对从 OpenShift 集群接收的适用集群资源的所有通知做出反应。如果操作器没有运行,或者因为某种原因没有收到通知,资源将从正在运行的 OpenShift 集群状态不同步。为了正确处理故障转移,Cluster Operator 会执行定期协调过程,以便它可以将资源的状态与当前集群部署进行比较,以便在所有这些部署之间具有一致的状态。

默认 Cluster Operator 配置可让领导选举机制运行 Cluster Operator 的多个并行副本。一个副本被选为活跃领导值,并运行部署的资源。其他副本以待机模式运行。当领导停止或失败时,其中一个备用副本被选为新领导,并开始操作部署的资源。

默认情况下,AMQ Streams 使用单个 Cluster Operator 副本运行,该副本始终是领导副本。当单个 Cluster Operator 副本停止或失败时,OpenShift 会启动新的副本。

运行具有多个副本的 Cluster Operator 并不重要。但是,在出现重大故障导致的大规模中断时,在待机时具有副本非常有用。例如,假设多个 worker 节点或整个可用区失败。故障可能会导致 Cluster Operator pod 和许多 Kafka pod 同时停机。如果后续的 pod 调度导致资源丢失,这可能会在运行单个 Cluster Operator 时延迟操作。

在运行额外的 Cluster Operator 副本时,配置领导选举环境变量。支持以下环境变量:

STRIMZI_LEADER_ELECTION_ENABLED
可选,默认禁用(默认为 )。启用或禁用领导选举机制,允许额外的 Cluster Operator 副本在待机上运行。
注意

默认禁用领导选举机制。只有在安装时应用此环境变量时才启用。

STRIMZI_LEADER_ELECTION_LEASE_NAME
启用领导选举机制时需要。用于领导选举的 OpenShift Lease 资源的名称。
STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE

启用领导选举机制时需要。创建用于领导选举 OpenShift Lease 资源的命名空间。您可以使用 Downward API 将其配置为部署 Cluster Operator 的命名空间。

env:
  - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap
STRIMZI_LEADER_ELECTION_IDENTITY

启用领导选举机制时需要。配置在领导选举过程中使用的给定 Cluster Operator 实例的身份。对于每个 operator 实例,身份必须是唯一的。您可以使用 Downward API 将其配置为部署 Cluster Operator 的 pod 的名称。

env:
  - name: STRIMZI_LEADER_ELECTION_IDENTITY
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
Copy to Clipboard Toggle word wrap
STRIMZI_LEADER_ELECTION_LEASE_DURATION_MS
可选,默认 15000 ms。指定获取租期有效的持续时间。
STRIMZI_LEADER_ELECTION_RENEW_DEADLINE_MS
可选,默认的 10000 ms。指定领导应尝试维护领导期。
STRIMZI_LEADER_ELECTION_RETRY_PERIOD_MS
可选,默认的 2000 ms。指定领导到租期锁定的更新频率。

8.5.3.2. 配置 Cluster Operator 副本

要以待机模式运行额外的 Cluster Operator 副本,您需要增加副本数并启用领导选举机制。要配置领导选举机制,请使用领导选举环境变量。

要进行所需的更改,请配置位于 install/cluster-operator/ 中的以下 Cluster Operator 安装文件:

  • 060-Deployment-strimzi-cluster-operator.yaml
  • 022-ClusterRole-strimzi-cluster-operator-role.yaml
  • 022-RoleBinding-strimzi-cluster-operator.yaml

领导选举具有自己的 ClusterRoleRoleBinding RBAC 资源,这些资源以 Cluster Operator 运行的命名空间为目标,而不是它监视的命名空间。

默认部署配置在与 Cluster Operator 相同的命名空间中创建一个名为 strimzi-cluster-operatorLease 资源。Cluster Operator 使用租期来管理领导选举机制。RBAC 资源提供使用 Lease 资源的权限。如果您使用不同的 Lease 名称或命名空间,请相应地更新 ClusterRoleRoleBinding 文件。

先决条件

  • 您需要具有权限的帐户来创建和管理 CustomResourceDefinition 和 RBAC (ClusterRoleRoleBinding)资源。

流程

编辑用于部署 Cluster Operator 的 Deployment 资源,该资源在 060-Deployment-strimzi-cluster-operator.yaml 文件中定义。

  1. replicas 属性从 default (1)更改为与所需副本数匹配的值。

    增加 Cluster Operator 副本的数量

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-cluster-operator
      labels:
        app: strimzi
    spec:
      replicas: 3
    Copy to Clipboard Toggle word wrap

  2. 检查是否设置了 leader election env 属性。

    如果没有设置,请配置它们。

    要启用领导选举机制,STRIMZI_LEADER_ELECTION_ENABLED 必须设置为 true (默认)。

    在本例中,租期的名称改为 my-strimzi-cluster-operator

    为 Cluster Operator 配置领导选举环境变量

    # ...
    spec
      containers:
        - name: strimzi-cluster-operator
          # ...
          env:
            - name: STRIMZI_LEADER_ELECTION_ENABLED
              value: "true"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAME
              value: "my-strimzi-cluster-operator"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.namespace
            - name: STRIMZI_LEADER_ELECTION_IDENTITY
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.name
    Copy to Clipboard Toggle word wrap

    有关可用环境变量的描述,请参阅 第 8.5.3.1 节 “为 Cluster Operator 副本启用领导选举机制”

    如果您为领导选举机制中使用的 Lease 资源指定了不同的名称或命名空间,请更新 RBAC 资源。

  3. (可选)在 022-ClusterRole-strimzi-cluster-operator-role.yaml 文件中编辑 ClusterRole 资源。

    使用 Lease 资源的名称更新 resourceNames

    将 ClusterRole 引用更新为租期

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    rules:
      - apiGroups:
          - coordination.k8s.io
        resourceNames:
          - my-strimzi-cluster-operator
    # ...
    Copy to Clipboard Toggle word wrap

  4. (可选)在 022-RoleBinding-strimzi-cluster-operator.yaml 文件中编辑 RoleBinding 资源。

    使用 Lease 资源的名称以及创建它的命名空间更新 subjects.namesubjects.namespace

    将 RoleBinding 引用更新为租期

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    subjects:
      - kind: ServiceAccount
        name: my-strimzi-cluster-operator
        namespace: myproject
    # ...
    Copy to Clipboard Toggle word wrap

  5. 部署 Cluster Operator:

    oc create -f install/cluster-operator -n myproject
    Copy to Clipboard Toggle word wrap
  6. 检查部署的状态:

    oc get deployments -n myproject
    Copy to Clipboard Toggle word wrap

    输出显示部署名称和就绪度

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  3/3    3           3
    Copy to Clipboard Toggle word wrap

    READY 显示就绪/预期的副本数。当 AVAILABLE 输出显示正确的副本数时,部署可以成功。

8.5.4. 配置 Cluster Operator HTTP 代理设置

如果您在 HTTP 代理后运行 Kafka 集群,您仍然可以在集群内和移出数据。例如,您可以使用连接器运行 Kafka Connect,该连接器从代理外推送和拉取镜像。或者,您可以使用代理与授权服务器连接。

配置 Cluster Operator 部署以指定代理环境变量。Cluster Operator 接受标准代理配置(HTTP_PROXYHTTPS_PROXYNO_PROXY)作为环境变量。代理设置适用于所有 AMQ Streams 容器。

代理地址的格式为 http://<ip_address>:<port_number>。要使用名称和密码设置代理,格式为 http://<username>:<password>@<ip-address>:<port_number>。

先决条件

  • 您需要具有权限的帐户来创建和管理 CustomResourceDefinition 和 RBAC (ClusterRoleRoleBinding)资源。

流程

  1. 要在 Cluster Operator 中添加代理环境变量,请更新其部署配置 (install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml)。

    Cluster Operator 的代理配置示例

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "HTTP_PROXY"
              value: "http://proxy.com" 
    1
    
            - name: "HTTPS_PROXY"
              value: "https://proxy.com" 
    2
    
            - name: "NO_PROXY"
              value: "internal.com, other.domain.com" 
    3
    
      # ...
    Copy to Clipboard Toggle word wrap

    1
    代理服务器的地址。
    2
    代理服务器的安全地址。
    3
    作为代理服务器的例外访问的服务器的地址。URL 是用逗号分开的。

    或者,直接编辑 部署

    oc edit deployment strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  2. 如果您更新了 YAML 文件而不是直接编辑 Deployment,请应用更改:

    oc create -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
    Copy to Clipboard Toggle word wrap

8.5.5. 使用 Cluster Operator 配置禁用 FIPS 模式

当在启用了 FIPS 的 OpenShift 集群中运行时,AMQ Streams 会自动切换到 FIPS 模式。通过在 Cluster Operator 的部署配置中将 FIPS_MODE 环境变量设置为 禁用 FIPS 模式。禁用 FIPS 模式后,AMQ Streams 会在 OpenJDK 中为所有组件禁用 FIPS。禁用 FIPS 模式后,AMQ Streams 不兼容 FIPS。AMQ Streams operator 以及所有操作对象的运行方式与在启用了 FIPS 的 OpenShift 集群中运行的方式相同。

流程

  1. 要在 Cluster Operator 中禁用 FIPS 模式,更新其部署配置install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml) 并增加 FIPS_MODE 环境变量。

    Cluster Operator 的 FIPS 配置示例

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "FIPS_MODE"
              value: "disabled" 
    1
    
      # ...
    Copy to Clipboard Toggle word wrap

    1
    禁用 FIPS 模式。

    或者,直接编辑 部署

    oc edit deployment strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  2. 如果您更新了 YAML 文件而不是直接编辑 Deployment,请应用更改:

    oc apply -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat