1.11. 集群 API
集群 API 提供声明 API,以简化 Kubernetes 集群的置备、升级和管理。多集群引擎 operator 安装核心 Cluster API 组件以及多个基础架构和 bootstrap 供应商,以支持不同的用例和平台。了解如何在独立多集群引擎 operator 或 Red Hat Advanced Cluster Management 中使用 Cluster API。请参见以下进程:
1.11.1. 使用 Cluster API 安装受管集群 复制链接链接已复制到粘贴板!
您可以使用 metal3 基础架构供应商和 OpenShift Container Platform 支持的 bootstrap 和 control plane 供应商使用 Cluster API 安装 OpenShift Container Platform 受管集群。
- 'ControlPlane 'defines the control plane 属性。
-
ClusterInfrastructure定义集群级别的基础架构详情。
先决条件
-
您需要 Red Hat Advanced Cluster Management 安装中的
MultiClusterEngine资源,或 multicluster engine operator 独立安装。 -
以下 API 基域必须指向静态 API VIP:
api.<cluster_name>.<base_domain>。 -
以下应用程序基域必须指向 Ingress VIP 的静态 IP 地址:.<
apps.<cluster_name>.<base_domain>。 -
您需要集群的内部 API 端点:
api-int.<baseDomain>。
1.11.1.1. 使用 Cluster API 置备工作负载 复制链接链接已复制到粘贴板!
启用置备工作负载所需的服务。默认情况下启用
assisted-service。默认情况下,禁用 cluster-api-provider-metal3-preview 和cluster-api-provider-openshift-assisted-preview。确保启用了所有三个服务: true。运行以下命令编辑资源:oc edit multiclusterengines.multicluster.openshift.io -n multicluster-engine
oc edit multiclusterengines.multicluster.openshift.io -n multicluster-engineCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
assisted-service组件、cluster-api-provider-metal3-preview组件和cluster-api-provider-openshift-assisted-preview组件的.spec.overrides中设置enabled: true。请参阅以下configOverrides值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启用中央基础架构管理服务。请参阅启用中央基础架构管理服务。
使用
clusterNetwork规格、controlPlaneRef规格和infrastructureRef规格配置集群资源。请参阅以下集群资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 内容:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
OpenshiftAssistedControlPlane资源,其中包含distributionVersion、apiVIP和 SSH 密钥。在distributionVersion字段中指定 OpenShift Container Platform 版本。注:
distributionVersion的值与 OpenShift Container Platform Releases 中的镜像匹配。请参阅以下 YAML 资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用 YAML 文件。运行以下命令:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果没有 pull secret,则需要创建一个 pull secret,以便集群从容器 registry 中拉取镜像。完成以下步骤以创建 pull secret:
创建 YAML 文件以拉取镜像。请参阅以下名为
pull-secret.yaml的文件示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令以应用该文件:
oc apply -f pull-secret.yaml
oc apply -f pull-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
Metal3Cluster基础架构资源,其中包含与 baremetal 上部署集群相关的信息。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
主机是带有Cluster资源的 clusterName 的 <gt;.<baseDomain>* 值,clusterName&baseDomain在OpenshiftAssistedControlPlane资源中定义。
应用该文件。运行以下命令:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为从
OpenshiftAssistedControlPlane资源引用的 control plane 节点配置Metal3MachineTemplate资源。请参见以下 YAML 示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 镜像与 OpenShift Container Platform Releases 中的
distributionVersion值和版本匹配。 - 2
- 将
clusterName设置为在Cluster资源中相同的值
应用该文件。运行以下命令:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
MachineDeployment资源配置 worker 节点,该资源引用Metal3MachineTemplate。请参阅以下 YAML 示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用该文件。运行以下命令:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
MachineDeployment中引用的OpenshiftAssistedConfigTemplate资源。以下 YAML 为 worker 节点定义 bootstrap 配置,用于使用 Assisted Installer 注册节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
MachineDeployment资源中引用的Metal3MachineTemplate。请参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来保存 YAML 文件并置备集群:
oc apply -f <filename>.yaml
oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证集群置备状态。
运行
oc get cluster --namespace <cluster-namespace> <cluster-name> -o yaml以检查您的集群资源状态。请参见以下输出和状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
oc get metal3cluster --namespace <cluster-namespace> <cluster-name> -o yaml命令检查集群基础架构状态。请参见以下输出和状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
oc get openshiftassistedcontrolplane --namespace <cluster-namespace> <cluster-name> -o yaml命令检查 control plane 状态。请参见以下输出和状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
oc get machinedeployment --namespace <cluster-namespace> <cluster-name> -o yaml命令检查机器部署状态。请参见以下输出和状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
kubectl get machine -l cluster.x-k8s.io/cluster-name=cluster-name -n test-capi -o yaml命令检查您的机器。请参见以下输出和状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 访问集群。
运行以下命令来获取
kubeconfig文件:oc get secret -n test-capi cluster-name-admin-kubeconfig -o json | jq -r .data.kubeconfig | base64 --decode > kubeconfig
oc get secret -n test-capi cluster-name-admin-kubeconfig -o json | jq -r .data.kubeconfig | base64 --decode > kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
运行以下命令使用
kubeconfig文件来访问集群:
export KUBECONFIG=$(realpath kubeconfig) oc get nodes
export KUBECONFIG=$(realpath kubeconfig) oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow