6.4. 在断开连接的环境中在 IBM Z 上部署托管的 control plane


在断开连接的环境中托管的 control plane 部署与独立的 OpenShift Container Platform 不同。

托管 control plane 涉及两个不同的环境:

  • control plane:在管理集群中,托管 control plane pod 由 Control Plane Operator 运行和管理。
  • data plane:查找托管集群的 worker,工作负载和其他几个 pod 运行,由 Hosted Cluster Config Operator 管理。

data plane 的 ImageContentSourcePolicy (ICSP)自定义资源通过托管集群清单中的 ImageContentSources API 管理。

对于 control plane,ICSP 对象在管理集群中管理。这些对象由 HyperShift Operator 解析,并作为与 Control Plane Operator 的 registry-overrides 条目共享。这些条目作为环境变量注入托管 control plane 命名空间中的任何可用部署之一。

要在托管 control plane 中使用断开连接的 registry,您必须首先在管理集群中创建适当的 ICSP。然后,要在数据平面中部署断开连接的工作负载,您需要将您要的条目添加到托管集群清单中的 ImageContentSources 字段中。

6.4.1. 在断开连接的环境中在 IBM Z 上部署托管 control plane 的先决条件

  • 镜像 registry。如需更多信息,请参阅"使用 mirror registry for Red Hat OpenShift 创建镜像 registry"。
  • 用于断开连接的安装的镜像。如需更多信息,请参阅"使用 oc-mirror 插件为断开连接的安装镜像镜像"。

6.4.2. 将凭证和 registry 证书颁发机构添加到管理集群

要从管理集群中拉取镜像 registry 镜像,您必须首先将 registry 的镜像 registry 的证书颁发机构添加到管理集群。使用以下步骤:

流程

  1. 运行以下命令,使用镜像 registry 的证书创建 ConfigMap

    $ oc apply -f registry-config.yaml

    registry-config.yaml 文件示例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: registry-config
      namespace: openshift-config
    data:
      <mirror_registry>: |
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----

  2. image.config.openshift.io 集群范围的对象进行补丁,使其包含以下条目:

    spec:
      additionalTrustedCA:
        - name: registry-config
  3. 更新管理集群 pull secret,以添加镜像 registry 的凭证。

    1. 运行以下命令,以 JSON 格式从集群获取 pull secret:

      $ oc get secret/pull-secret -n openshift-config -o json | jq -r '.data.".dockerconfigjson"' | base64 -d > authfile
    2. 编辑获取的 secret JSON 文件,使其包含带有证书颁发机构凭证的部分:

        "auths": {
          "<mirror_registry>": { 1
            "auth": "<credentials>", 2
            "email": "you@example.com"
          }
        },
      1
      提供镜像 registry 的名称。
      2
      提供镜像 registry 的凭证,以允许获取镜像。
    3. 运行以下命令更新集群中的 pull secret:

      $ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=authfile

6.4.3. 使用镜像 registry 更新 AgentServiceConfig 资源中的 registry 证书颁发机构

当您将镜像 registry 用于镜像时,代理需要信任 registry 的证书来安全地拉取镜像。您可以通过创建 ConfigMap 将镜像 registry 的证书颁发机构添加到 AgentServiceConfig 自定义资源中。

先决条件

  • 您必须为 Kubernetes Operator 安装多集群引擎。

流程

  1. 在安装多集群引擎 Operator 的同一命名空间中,使用镜像 registry 详情创建一个 ConfigMap 资源。此 ConfigMap 资源可确保为托管集群 worker 授予从镜像 registry 检索镜像的功能。

    ConfigMap 文件示例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mirror-config
      namespace: multicluster-engine
      labels:
        app: assisted-service
    data:
      ca-bundle.crt: |
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
      registries.conf: |
    
        [[registry]]
          location = "registry.stage.redhat.io"
          insecure = false
          blocked = false
          mirror-by-digest-only = true
          prefix = ""
    
          [[registry.mirror]]
            location = "<mirror_registry>"
            insecure = false
    
        [[registry]]
          location = "registry.redhat.io/multicluster-engine"
          insecure = false
          blocked = false
          mirror-by-digest-only = true
          prefix = ""
    
          [[registry.mirror]]
            location = "<mirror_registry>/multicluster-engine" 1
            insecure = false

    1
    其中: <mirror_registry > 是镜像 registry 的名称。
  2. AgentServiceConfig 资源进行补丁,使其包含您创建的 ConfigMap 资源。如果 AgentServiceConfig 资源不存在,请使用嵌入到其中的以下内容创建 AgentServiceConfig 资源:

    spec:
      mirrorRegistryRef:
        name: mirror-config

6.4.4. 将 registry 证书颁发机构添加到托管集群

当您在断开连接的环境中在 IBM Z 上部署托管 control plane 时,请包含 additional-trust-bundleimage-content-sources 资源。这些资源允许托管集群将证书颁发机构注入 data plane worker,以便从 registry 中拉取镜像。

  1. 使用 image-content-sources 信息创建 icsp.yaml 文件。

    image-content-sources 信息可在 ImageContentSourcePolicy YAML 文件中使用 oc-mirror 来镜像后生成的。

    ImageContentSourcePolicy 文件示例

    # cat icsp.yaml
    - mirrors:
      - <mirror_registry>/openshift/release
      source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
    - mirrors:
      - <mirror_registry>/openshift/release-images
      source: quay.io/openshift-release-dev/ocp-release

  2. 创建托管集群并提供 additional-trust-bundle 证书以使用证书更新计算节点,如下例所示:

    $ hcp create cluster agent \
        --name=<hosted_cluster_name> \ 1
        --pull-secret=<path_to_pull_secret> \ 2
        --agent-namespace=<hosted_control_plane_namespace> \ 3
        --base-domain=<basedomain> \ 4
        --api-server-address=api.<hosted_cluster_name>.<basedomain> \
        --etcd-storage-class=<etcd_storage_class> \ 5
        --ssh-key  <path_to_ssh_public_key> \ 6
        --namespace <hosted_cluster_namespace> \ 7
        --control-plane-availability-policy SingleReplica \
        --release-image=quay.io/openshift-release-dev/ocp-release:<ocp_release_image> \ 8
        --additional-trust-bundle <path for cert> \ 9
        --image-content-sources icsp.yaml
    1
    <hosted_cluster_name> 替换为托管集群的名称。
    2
    替换 pull secret 的路径,例如 /user/name/pullsecret
    3
    <hosted_control_plane_namespace> 替换为托管的 control plane 命名空间的名称,如 cluster-hosted
    4
    将 name 替换为您的基域,例如 example.com
    5
    替换 etcd 存储类名称,如 lvm-storageclass
    6
    替换 SSH 公钥的路径。默认文件路径为 ~/.ssh/id_rsa.pub
    7 8
    使用您要使用的支持的 OpenShift Container Platform 版本替换,如 4.17.0-multi
    9
    替换证书颁发机构 registry 的路径。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.