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 的证书颁发机构添加到管理集群。使用以下步骤:
流程
运行以下命令,使用镜像 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-----
对
image.config.openshift.io
集群范围的对象进行补丁,使其包含以下条目:spec: additionalTrustedCA: - name: registry-config
更新管理集群 pull secret,以添加镜像 registry 的凭证。
运行以下命令,以 JSON 格式从集群获取 pull secret:
$ oc get secret/pull-secret -n openshift-config -o json | jq -r '.data.".dockerconfigjson"' | base64 -d > authfile
编辑获取的 secret JSON 文件,使其包含带有证书颁发机构凭证的部分:
"auths": { "<mirror_registry>": { 1 "auth": "<credentials>", 2 "email": "you@example.com" } },
运行以下命令更新集群中的 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 安装多集群引擎。
流程
在安装多集群引擎 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 的名称。
对
AgentServiceConfig
资源进行补丁,使其包含您创建的ConfigMap
资源。如果AgentServiceConfig
资源不存在,请使用嵌入到其中的以下内容创建AgentServiceConfig
资源:spec: mirrorRegistryRef: name: mirror-config
6.4.4. 将 registry 证书颁发机构添加到托管集群
当您在断开连接的环境中在 IBM Z 上部署托管 control plane 时,请包含 additional-trust-bundle
和 image-content-sources
资源。这些资源允许托管集群将证书颁发机构注入 data plane worker,以便从 registry 中拉取镜像。
使用
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
创建托管集群并提供
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 的路径。