2.5. 使用 SiteConfig Operator 安装单节点 OpenShift 集群
使用默认安装模板使用 SiteConfig operator 安装集群。使用 Image-Based Install Operator 的安装模板完成此步骤。
需要的访问权限:集群管理员
2.5.1. 先决条件
- 如果使用 GitOps ZTP,请配置 GitOps ZTP 环境。要配置环境,请参阅为 GitOps ZTP 准备 hub 集群。
- 您有默认安装模板。要熟悉默认模板,请参阅 默认设置模板
安装和配置您选择的底层操作器。
- 要了解并安装用于单节点 OpenShift 的镜像安装 Operator,请参阅 Image Based Install Operator。
- 要安装 Assisted Installer,请参阅使用 Assisted Installer 安装内部集群。
完成以下步骤,使用 SiteConfig operator 安装集群:
2.5.2. 创建目标命名空间
在创建 pull secret、BMC secret、额外清单 ConfigMap
对象和 ClusterInstance
自定义资源时,您需要一个目标命名空间。
完成以下步骤以创建目标命名空间:
为目标命名空间创建 YAML 文件。请参阅以下名为
clusterinstance-namespace.yaml
的示例文件:apiVersion: v1 kind: Namespace metadata: name: example-sno
应用您的文件以创建资源。在 hub 集群中运行以下命令:
oc apply -f clusterinstance-namespace.yaml
2.5.3. 创建 pull secret
您需要 pull secret 才能使集群从容器 registry 中拉取镜像。完成以下步骤以创建 pull secret:
创建 YAML 文件以拉取镜像。请参阅以下名为
pull-secret.yaml
的文件示例:apiVersion: v1 kind: Secret metadata: name: pull-secret namespace: example-sno 1 data: .dockerconfigjson: <encoded_docker_configuration> 2 type: kubernetes.io/dockerconfigjson
应用该文件以创建资源。在 hub 集群中运行以下命令:
oc apply -f pull-secret.yaml
2.5.4. 创建 BMC secret
您需要一个 secret 来连接到基板管理控制器(BMC)。完成以下步骤以创建 secret:
为 BMC secret 创建 YAML 文件。请参阅以下名为
example-bmc-secret.yaml
的示例文件:apiVersion: v1 data: password: <password> username: <username> kind: Secret metadata: name: example-bmh-secret namespace: "example-sno" 1 type: Opaque
- 1
- 确保
namespace
值与目标命名空间匹配。
应用该文件以创建资源。在 hub 集群中运行以下命令:
oc apply -f example-bmc-secret.yaml
2.5.5. 可选:创建额外的清单
您可以创建在 ClusterInstance
自定义资源中引用的额外清单。完成以下步骤以创建额外的清单:
为额外的清单
ConfigMap
对象创建 YAML 文件,如enable-crun.yaml
:apiVersion: v1 kind: ConfigMap metadata: name: enable-crun namespace: example-sno 1 data: enable-crun-master.yaml: | apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: enable-crun-master spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/master: "" containerRuntimeConfig: defaultRuntime: crun enable-crun-worker.yaml: | apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: enable-crun-worker spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/worker: "" containerRuntimeConfig: defaultRuntime: crun
- 1
- 确保
namespace
值与目标命名空间匹配。
在 hub 集群中运行以下命令来创建资源:
oc apply -f enable-crun.yaml
2.5.6. 渲染安装清单
引用 ClusterInstance
自定义资源中的模板和支持清单。完成以下步骤,使用默认集群和节点模板呈现安装清单:
在
example-sno
命名空间中,在以下示例中创建名为clusterinstance-ibi.yaml
的ClusterInstance
自定义资源:apiVersion: siteconfig.open-cluster-management.io/v1alpha1 kind: ClusterInstance metadata: name: "example-clusterinstance" namespace: "example-sno" 1 spec: holdInstallation: false extraManifestsRefs: 2 - name: extra-machine-configs - name: enable-crun pullSecretRef: name: "pull-secret" 3 [...] clusterName: "example-sno" 4 [...] clusterImageSetNameRef: "img4.17-x86-64" [...] templateRefs: 5 - name: ibi-cluster-templates-v1 namespace: rhacm [...] nodes: [...] bmcCredentialsName: 6 name: "example-bmh-secret" [...] templateRefs: 7 - name: ibi-node-templates-v1 namespace: rhacm [...]
- 1
- 确保
ClusterInstance
自定义资源中的命名空间
与您定义的目标命名空间匹配。 - 2
- 引用一个或多个额外清单
ConfigMap
对象的名称。 - 3
- 引用 pull secret
的名称
。 - 4
- 确保
ClusterInstance
自定义资源中的clusterName
字段的值与namespace
字段的值匹配。 - 5
- 在
spec.templateRefs
字段中引用集群级别模板的名称
。如果使用默认安装模板,命名空间
必须与安装 Operator 的命名空间匹配。 - 6
- 引用 BMC secret
的名称
。 - 7
- 在
spec.nodes.templateRefs
字段中引用节点级别模板的名称
。如果使用默认安装模板,命名空间
必须与安装 Operator 的命名空间匹配。
运行以下命令应用该文件并创建资源:
oc apply -f clusterinstance-ibi.yaml
创建自定义资源后,SiteConfig operator 开始协调
ClusterInstance
自定义资源,然后验证并呈现安装清单。SiteConfig operator 继续监控
ClusterDeployment
自定义资源中的更改,以更新相应ClusterInstance
自定义资源的集群安装进度。运行以下命令监控进程:
oc get clusterinstance <cluster_name> -n <target_namespace> -o yaml
有关成功生成清单,请参阅
status.conditions
部分中的以下示例输出:message: Applied site config manifests reason: Completed status: "True" type: RenderedTemplatesApplied
运行以下命令,检查 SiteConfig operator 呈现的清单:
oc get clusterinstance <cluster_name> -n <target_namespace> -o jsonpath='{.status.manifestsRendered}'
如需有关状态条件的更多信息,请参阅 ClusterInstance API