5.3. 连接时为 Kubernetes Operator 准备基于代理的集群部署
为多集群引擎 Operator、Local Storage Operator (LSO) 创建所需的清单,并将基于代理的 OpenShift Container Platform 集群部署为 hub 集群。
流程
在
<assets_directory>
文件夹中创建一个名为openshift
的子文件夹。此子文件夹用于存储在安装过程中应用的额外清单,以进一步自定义部署的集群。<assets_directory>
文件夹包含所有资产,包括install-config.yaml
和agent-config.yaml
文件。注意安装程序不会验证额外的清单。
对于多集群引擎,创建以下清单并将其保存到
<assets_directory>/openshift
文件夹中:示例
mce_namespace.yaml
apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" name: multicluster-engine
示例
mce_operatorgroup.yaml
apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: multicluster-engine-operatorgroup namespace: multicluster-engine spec: targetNamespaces: - multicluster-engine
示例
mce_subscription.yaml
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: multicluster-engine namespace: multicluster-engine spec: channel: "stable-2.3" name: multicluster-engine source: redhat-operators sourceNamespace: openshift-marketplace
注意您可以使用支持的安装程序 (AI) 使用 Red Hat Advanced Cluster Management (RHACM) 大规模安装分布式单元 (DU)。这些分布式单元必须在 hub 集群中启用。AI 服务需要手动创建的持久性卷 (PV)。
对于 AI 服务,请创建以下清单并将其保存到
<assets_directory>/openshift
文件夹中:示例
lso_namespace.yaml
apiVersion: v1 kind: Namespace metadata: annotations: openshift.io/cluster-monitoring: "true" name: openshift-local-storage
示例
lso_operatorgroup.yaml
apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: local-operator-group namespace: openshift-local-storage spec: targetNamespaces: - openshift-local-storage
示例
lso_subscription.yaml
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: local-storage-operator namespace: openshift-local-storage spec: installPlanApproval: Automatic name: local-storage-operator source: redhat-operators sourceNamespace: openshift-marketplace
注意创建所有清单后,文件系统必须显示如下:
文件系统示例
<assets_directory> ├─ install-config.yaml ├─ agent-config.yaml └─ /openshift ├─ mce_namespace.yaml ├─ mce_operatorgroup.yaml ├─ mce_subscription.yaml ├─ lso_namespace.yaml ├─ lso_operatorgroup.yaml └─ lso_subscription.yaml
运行以下命令来创建代理 ISO 镜像:
$ openshift-install agent create image --dir <assets_directory>
- 镜像就绪后,引导目标机器并等待安装完成。
要监控安装,请运行以下命令:
$ openshift-install agent wait-for install-complete --dir <assets_directory>
注意要配置功能齐全的 hub 集群,必须创建以下清单,并通过运行
$ oc apply -f <manifest-name>
命令手动应用它们。清单创建的顺序非常重要,如果需要,会显示等待条件。对于 AI 服务所需的 PV,请创建以下清单:
apiVersion: local.storage.openshift.io/v1 kind: LocalVolume metadata: name: assisted-service namespace: openshift-local-storage spec: logLevel: Normal managementState: Managed storageClassDevices: - devicePaths: - /dev/vda - /dev/vdb storageClassName: assisted-service volumeMode: Filesystem
在应用后续清单前,使用以下命令等待 PV 的可用性:
$ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m
注意The `devicePath` is an example and may vary depending on the actual hardware configuration used.
为多集群引擎实例创建清单。
示例
MultiClusterEngine.yaml
apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: {}
创建清单以启用 AI 服务。
示例
agentserviceconfig.yaml
apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent namespace: assisted-installer spec: databaseStorage: storageClassName: assisted-service accessModes: - ReadWriteOnce resources: requests: storage: 10Gi filesystemStorage: storageClassName: assisted-service accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
创建清单来部署后续 spoke 集群。
示例
clusterimageset.yaml
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: "4.13" spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.13.0-x86_64
创建一个清单来导入安装代理(托管多集群引擎和 Assisted Service)作为 hub 集群。
示例
autoimport.yaml
apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: labels: local-cluster: "true" cloud: auto-detect vendor: auto-detect name: local-cluster spec: hubAcceptsClient: true
等待受管集群创建。
$ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m
验证
要确认受管集群安装成功,请运行以下命令:
$ oc get managedcluster NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://<your cluster url>:6443 True True 77m