2.5. 使用 SiteConfig Operator 安装单节点 OpenShift 集群


使用默认安装模板使用 SiteConfig operator 安装集群。使用 Image-Based Install Operator 的安装模板完成此步骤。

需要的访问权限:集群管理员

2.5.1. 先决条件

完成以下步骤,使用 SiteConfig operator 安装集群:

2.5.2. 创建目标命名空间

在创建 pull secret、BMC secret、额外清单 ConfigMap 对象和 ClusterInstance 自定义资源时,您需要一个目标命名空间。

完成以下步骤以创建目标命名空间:

  1. 为目标命名空间创建 YAML 文件。请参阅以下名为 clusterinstance-namespace.yaml 的示例文件:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: example-sno
  2. 应用您的文件以创建资源。在 hub 集群中运行以下命令:

    oc apply -f clusterinstance-namespace.yaml

2.5.3. 创建 pull secret

您需要 pull secret 才能使集群从容器 registry 中拉取镜像。完成以下步骤以创建 pull secret:

  1. 创建 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
    1
    确保 namespace 值与目标命名空间匹配。
    2
    将 base64 编码的配置文件指定为值。
  2. 应用该文件以创建资源。在 hub 集群中运行以下命令:

    oc apply -f pull-secret.yaml

2.5.4. 创建 BMC secret

您需要一个 secret 来连接到基板管理控制器(BMC)。完成以下步骤以创建 secret:

  1. 为 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 值与目标命名空间匹配。
  2. 应用该文件以创建资源。在 hub 集群中运行以下命令:

    oc apply -f example-bmc-secret.yaml

2.5.5. 可选:创建额外的清单

您可以创建在 ClusterInstance 自定义资源中引用的额外清单。完成以下步骤以创建额外的清单:

  1. 为额外的清单 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 值与目标命名空间匹配。
  2. 在 hub 集群中运行以下命令来创建资源:

    oc apply -f enable-crun.yaml

2.5.6. 渲染安装清单

引用 ClusterInstance 自定义资源中的模板和支持清单。完成以下步骤,使用默认集群和节点模板呈现安装清单:

  1. example-sno 命名空间中,在以下示例中创建名为 clusterinstance-ibi.yamlClusterInstance 自定义资源:

    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 的命名空间匹配。
  2. 运行以下命令应用该文件并创建资源:

    oc apply -f clusterinstance-ibi.yaml

    创建自定义资源后,SiteConfig operator 开始协调 ClusterInstance 自定义资源,然后验证并呈现安装清单。

    SiteConfig operator 继续监控 ClusterDeployment 自定义资源中的更改,以更新相应 ClusterInstance 自定义资源的集群安装进度。

  3. 运行以下命令监控进程:

    oc get clusterinstance <cluster_name> -n <target_namespace> -o yaml

    有关成功生成清单,请参阅 status.conditions 部分中的以下示例输出:

    message: Applied site config manifests
    reason: Completed
    status: "True"
    type: RenderedTemplatesApplied
  4. 运行以下命令,检查 SiteConfig operator 呈现的清单:

    oc get clusterinstance <cluster_name> -n <target_namespace> -o jsonpath='{.status.manifestsRendered}'

如需有关状态条件的更多信息,请参阅 ClusterInstance API

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.