在不使用 Object Storage 存储桶的情况下创建VPC集群
虚拟私有云
在 VPC 上创建一个 Red Hat OpenShift on IBM Cloud 集群,且该集群的内部镜像注册表不依赖于 IBM Cloud Object Storage 存储桶。 对于必须满足 IBM 金融服务云要求的环境,您可以不使用 IBM Cloud Object Storage
实例来创建集群,并直接从 IBM Cloud Container Registry 拉取容器镜像。 如果在创建集群时未提供 IBM Cloud Object Storage 实例,内部注册表将使用临时 emptyDir 存储,这可确保集群的运行符合FS Cloud标准——该标准依赖于集中式镜像管理,而非内部注册表。
受众
本教程面向需要在必须符合 IBM 金融服务云要求的环境中,于VPC基础设施上创建 Red Hat OpenShift on IBM Cloud 集群的集群管理员。 该功能面向需要将 IBM Cloud Container Registry 作为主要镜像注册表(而非集群内部注册表)的团队。
目标
在本教程中,您将创建一个 Red Hat OpenShift on IBM Cloud VPC集群,且不配置 IBM Cloud Object Storage 实例,这符合 IBM 金融服务云的标准。 该集群的内部镜像注册表使用临时 emptyDir 存储,镜像通过 IBM Cloud Container Registry 进行集中管理。
您将获得
在本教程中,您将创建以下资源。 如果您在完成本教程后不想保留这些资源,可以执行以下可选步骤将其删除。
- 位于 VPC 上的、未使用 COS 作为后端支持的内部注册表的 Red Hat OpenShift on IBM Cloud 集群
- 已为管理用途配置了集群访问权限
准备工作
在创建集群之前,请先完成以下先决条件步骤。
省略 IBM Cloud Object Storage 实例的决定是永久性的。 创建集群后,无法添加或移除基于 COS 的内部注册表。 如果您的需求发生变化,需要持久化的内部注册表存储,则必须创建一个新的集群,并在创建时提供一个 COS 实例。
- 许可权
- 如果您是账户所有者,则已具备创建集群所需的权限,可以继续进行下一步操作。 否则,请让账户 所有者在 IBM Cloud IAM 中设置 API 密钥,并授予您最低级别的用户权限。
- 命令行工具
- 请按照以下步骤设置您的本地命令行环境。
- 安装 IBM Cloud 命令行工具(
ibmcloud)。 - 安装 Red Hat OpenShift on IBM Cloud 插件。
ibmcloud plugin install kubernetes-service ``` 3. 安装 Red Hat OpenShift 命令行界面(CLI)(`oc` )。有关操作说明,请参阅 《 [安装 OpenShift 命令行界面(CLI)](https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/cli_tools/openshift-cli-oc#installing-openshift-cli){: external} 》。 - 安装 IBM Cloud 命令行工具(
- VPC 基础架构
- 在创建集群之前,您必须已拥有一个现有的 VPC 和子网。 要创建它们,请参阅“创建 VPC 和子网”。
创建集群
在 VPC 上创建一个 Red Hat OpenShift on IBM Cloud 集群,且不提供 IBM Cloud Object Storage 实例。 如果未指定 COS 实例,则内部镜像注册表将由 emptyDir 存储提供支持。
如果在创建集群的命令中省略了 --cos-instance 选项,则内部注册表将使用 emptyDir 存储,而非 IBM Cloud Object Storage。emptyDir 存储是临时存储——当image-registry Pod重启或被重新调度时,注册表中存储的数据将会丢失。 该配置不适用于依赖内部注册表的生产环境。 如果您将来需要一个持久化的内部注册表,可以在创建集群后配置一个 IBM
Cloud Object Storage 存储桶。 如需了解更多信息,请参阅 《 将内部镜像注册表备份到 IBM Cloud Object Storage 》。
-
登录到您要创建集群的 IBM Cloud 账户、资源组和区域。 如果您拥有联合身份,请包含
--sso选项。ibmcloud login -r REGION [-g RESOURCE_GROUP] [--sso] -
创建集群。 请将占位符替换为您自己的集群名称、区域、Red Hat OpenShift 版本、工作节点规格、VPC ID 和子网 ID。
ibmcloud oc cluster create vpc-gen2 \ --name <cluster-name> \ --zone <zone> \ --version <openshift-version> \ --flavor <worker-flavor> \ --workers <number-of-workers> \ --vpc-id <vpc-id> \ --subnet-id <subnet-id>请注意,该命令中未包含
--cos-instance选项。 省略此选项即表示将内部注册表配置为使用emptyDir存储。 -
请等待集群完成配置。 此过程可能需要20至30分钟。 通过运行以下命令监控集群状态,直到 “State”字段显示为
normal。ibmcloud oc cluster get --cluster CLUSTER_NAME
配置集群访问
集群运行后,请下载集群配置文件,以配置 oc 命令行界面(CLI)访问权限。
- 下载集群配置文件,并设置
KUBECONFIG环境变量。ibmcloud oc cluster config --cluster CLUSTER_NAME --admin - 请确认能否连接到该集群。
所有节点的 “STATUS” 状态应显示为oc get nodesReady。
验证镜像注册表配置
请确认内部镜像注册表是否如预期那样使用了 emptyDir 存储。
- 检查镜像注册表的部署状态。
oc get deployment -n openshift-image-registry - 请在图像注册表配置中确认存储类型。 在输出结果中,“
storage”字段应显示为“emptyDir: {}”。oc get configs.imageregistry.operator.openshift.io cluster -o yaml
后续步骤?
您的集群目前正在使用由 emptyDir 支持的内部注册表运行。 您可以使用 IBM Cloud Container Registry 来上传和下载图片。
- 将图像推送到 IBM Cloud Container Registry,并将其直接拉取到您的集群工作负载中。
- 配置一个镜像拉取密钥,以便您的 Pod 能够从 IBM Cloud Container Registry 拉取镜像。
- 设置 IBM Cloud 监控 以观察您的集群。
- 如果您想在以后添加持久的内部注册表存储,请参阅《 将内部镜像注册表备份到 IBM Cloud Object Storage 》。
- 如果在创建集群时遇到“
E7278”错误,请参阅《 为什么在创建集群时会出现有关云对象存储桶的错误? 》。 如果上述步骤无法解决问题,请联系 IBM Cloud 技术支持。