IBM Cloud Docs
创建经典集群

创建经典集群

经典基础结构

使用 IBM Cloud CLI 或 IBM Cloud 控制台创建完全可定制的标准集群,并可选择硬件隔离和访问功能,如用于高可用环境的多工作节点。

先决条件

可以创建 Red Hat OpenShift on IBM Cloud 集群,仅使用公共服务端点或同时使用公共服务端点和专用服务端点。 无法禁用公共服务端点。 因此,无法将公共 Red Hat OpenShift 集群转换为专用集群。 如果要在启用了专用服务端点的情况下创建经典集群,那么必须 启用 VRF服务端点。 如果需要仅专用集群,请考虑创建 VPC 集群。

在控制台中创建经典群集

要开始创建集群,请导航至 控制台并点击创建集群

位置详细信息
创建集群时,其资源会保留在将集群部署到的位置中。
  • 资源组:一个群集只能在一个资源组中创建,群集创建后,不能更改其资源组。 要在非缺省资源组中创建集群,您必须至少具有该资源组的查看者角色
  • 地理位置: 选择要在其中创建集群的区域,例如 北美。 地理位置有助于过滤可以在控制台中选择的 可用性高速 值。
  • 可用性: 可以使用 单专区Multizone 配置创建集群。 多专区集群提供高可用性,Red Hat OpenShift 主节点部署在支持多专区的专区中,三个主节点副本分布在不同专区中。
    • 对于多专区集群,请选择 Metro 位置。 为获得最佳性能,请选择离您最近的地区。 您的工作区基于您选择的区域。 您可以选择要应用的工作程序区域,并且工作程序节点将分布在各个区域中以实现高可用性。 每个工作程序区域都有一个公用和专用 VLAN。 如果该区域中没有 VLAN,那么将为您创建这些 VLAN。
    • 对于单专区集群,请选择要在其中托管集群的单个 工作程序专区。 为了获得最佳性能,请选择离您最近的城市的区域。 每个工作程序区域都有一个公用和专用 VLAN。 如果该区域中没有 VLAN,那么将为您创建这些 VLAN。
Kubernetes 版本
缺省情况下,将使用缺省 Kubernetes 版本创建集群。 您可以指定其他 支持的版本
工作程序池
集群工作程序池定义运行工作负载的工作程序节点的数量和类型。 您可以随时更改工作程序池详细信息。
  • 类型:风味定义了在每个工作节点中设置并提供给容器的虚拟 CPU、内存和磁盘空间的大小。 可用的裸机和虚拟机类型随部署集群的专区而变化。
  • 操作系统体系结构: 有关按集群版本列出的可用操作系统和体系结构的列表,请参阅 可用版本
  • 每个专区的工作程序节点: 对于高可用性,建议每个专区至少有 3 个工作程序节点。
主节点服务端点
服务端点提供与主节点的通信。 您可以选择仅使用公共云服务端点或同时使用公共云服务端点和私有云服务端点来配置集群。 有关运行面向因特网的应用程序或使集群保持专用所需的设置的更多信息,请参阅规划集群网络设置。 创建集群后,您无法更改云服务端点。
入口私钥管理
IBM Cloud Secrets Manager 集中管理集群中的 Ingress 子域证书和其他私钥。 您可以选择在集群创建过程中向集群注册 Secrets Manager 实例。 您还可以指定可用于控制对集群中私钥的访问权的私钥组。 在创建集群之后,可以配置或更改这两个选项。
加密
使用密钥管理服务 (KMS) 启用数据加密,以加密集群中的私钥和其他敏感信息。 您还可以稍后 启用 KMS
集群详细信息
您可以定制要用于组织和标识 IBM Cloud 资源 (例如 teambilling department) 的唯一集群名称和任何 标记
可观察性集成
您可以启用要包含在集群上的其他可观察性集成。 如果您具有该集成的现有平台实例,那么将自动启用某些集成。 在这种情况下,无法禁用集成。 如果要使用集成并且只有该集成的现有应用程序实例,那么缺省情况下会禁用该集成,并且必须手动将其启用。
  • 日志:您可以使用 IBM Cloud Logs 管理操作系统日志、应用程序日志和平台日志。 如果您想稍后启用此集成,请参阅 IBM Cloud Logs.
  • 监视: 监视服务集成允许对应用程序,服务和平台的性能和运行状况进行操作可视性。 如果禁用此集成并希望稍后启用,请参阅 监测群组健康状况。Security and Compliance Center 工作负载保护集成可查找软件漏洞并对其进行优先级排序,检测威胁并作出响应,以及管理从源代码到运行的配置、权限和合规性。 有关详细信息,请参阅工作负载保护 入门 页面。
  • 指定 配置类型,以使用监控和工作量保护的新实例或现有实例。 如果要同时使用监控和工作量保护的现有实例,则必须连接每个集成的实例。 在这种情况下,请指定要使用的监控实例或工作负载保护实例;您不能同时指定两个实例,但只要这两个实例处于连接状态,就会同时使用。 您可以从 MonitoringWorkload Protection 实例的详细信息页面连接现有实例。

在 CLI 中创建经典群集

使用 IBM Cloud CLI 创建经典集群。

  • 确保完成 准备帐户 的先决条件并决定集群设置。 请记住,您需要至少具有 4x16 类型模板的 2 工作程序节点的集群,以便可以部署缺省 Red Hat OpenShift 组件。
  • 安装 IBM Cloud CLI 工具
  1. 登录 IBM Cloud CLI。 如果使用联合标识登录,请使用 ibmcloud login --sso

    ibmcloud login [--sso]
    
  2. 如果您有多个 IBM Cloud 账户,请选择要创建群集的账户。

  3. 要在非缺省资源组中创建集群,请将该资源组设定为目标。 只能在一个资源组中创建集群,在创建集群后,即无法更改其资源组。 您必须至少具有资源组的 查看者 角色,才能将其作为目标。

    ibmcloud target -g <resource_group_name>
    
  4. 查看可以在其中创建集群的专区。 在以下命令的输出中,专区的 Location Typedc。 要使集群跨多个专区,必须在支持多专区的专区中创建集群。 支持多专区的专区在 Multizone Metro 列中具有大城市值。 如果要创建多专区集群,那么可以使用 IBM Cloud 控制台进行创建,或者在创建集群后,向集群添加更多专区

    ibmcloud oc locations
    

    选择您所在国家或地区以外的专区时,请记住,您可能需要法律授权才能将数据实际存储在国外。

  5. 查看该专区中可用的工作程序节点类型模板。 类型模板用于确定在每个工作程序节点中设置并可供应用程序使用的虚拟 CPU 量、内存量和磁盘空间量。 经典集群中的工作程序节点可以作为共享或专用基础架构上的虚拟机进行创建,也可以作为专用于您的裸机机器进行创建。 创建集群后,可以通过添加工作程序池来添加不同的类型模板。

    在创建裸机机器之前,请确保要供应裸机机器。 裸机机器按月计费。 如果错误地订购了裸机机器,即使您立即取消该机器,也需要支付整个月的费用。

    ibmcloud oc flavors --zone <zone>
    
  6. 检查要包含在集群中的专区中是否有现有 VLAN,如果有,请记下 VLAN 的标识。 如果您想在群集中使用的某个区域中没有公共或专用 VLAN,IBM Cloud Kubernetes Service 会在您创建群集时自动为您创建这些 VLAN。

    ibmcloud oc vlan ls --zone <zone>
    

    示例输出

    ID        Name   Number   Type      Router
    1519999   vlan   1355     private   bcr02a.dal10
    1519898   vlan   1357     private   bcr02a.dal10
    1518787   vlan   1252     public    fcr02a.dal10
    1518888   vlan   1254     public    fcr02a.dal10
    

    如果公用和专用 VLAN 已经存在,请记下匹配的路由器。 专用 VLAN 路由器始终以 bcr(后端路由器)开头,而公用 VLAN 路由器始终以 fcr(前端路由器)开头。 创建集群并指定公用和专用 VLAN 时,在这些前缀之后的数字和字母组合必须匹配。 在输出示例中,任何专用 VLAN 都可以与任何公用 VLAN 一起使用,因为路由器全都包含 02a.dal10

  7. 创建标准集群。

    ibmcloud oc cluster create classic --zone <zone> --flavor <flavor> --hardware <shared_or_dedicated> --public-vlan <public_VLAN_ID> --private-vlan <private_VLAN_ID> --workers <number> [--operating-system (REDHAT_8_64)] --name <cluster_name> --version <major.minor.patch>_openshift --public-service-endpoint [--private-service-endpoint] [--pod-subnet] [--service-subnet] [--disable-disk-encrypt] [--sm-group GROUP] [--sm-instance INSTANCE]
    
    --zone <zone>

    指定先前选择的要用于创建集群的 IBM Cloud 专区标识。

    --flavor <flavor>

    为先前选择的工作程序节点指定类型模板。

    --hardware <shared_or_dedicated>

    指定工作程序节点的硬件隔离级别。 使用 dedicated 只为您提供可用的物理资源,或使用 shared 允许与其他 IBM 客户共享物理资源。 缺省值为 shared。 此值对于 VM 标准集群是可选的。 对于裸机类型模板,请指定 dedicated

    --public-vlan <public_vlan_id>

    如果已经在 IBM Cloud 基础架构帐户中为该专区设置了公用 VLAN,请输入先前检索到的该公用 VLAN 的标识。 如果您的帐户中没有公用 VLAN,请不要指定此选项。IBM Cloud Kubernetes Service 会自动为您创建公用 VLAN。 专用 VLAN 路由器始终以 bcr(后端路由器)开头,而公用 VLAN 路由器始终以 fcr(前端路由器)开头。 创建集群并指定公用和专用 VLAN 时,在这些前缀之后的数字和字母组合必须匹配。

    --private-vlan <private_vlan_id>

    如果已经在 IBM Cloud 基础架构帐户中为该专区设置了专用 VLAN,请输入先前检索到的该专用 VLAN 的标识。 如果您的帐户中没有专用 VLAN,请不要指定此选项。IBM Cloud Kubernetes Service 会自动为您创建专用 VLAN。 专用 VLAN 路由器始终以 bcr(后端路由器)开头,而公用 VLAN 路由器始终以 fcr(前端路由器)开头。 创建集群并指定公用和专用 VLAN 时,在这些前缀之后的数字和字母组合必须匹配。

    --name <name>

    指定集群的名称。 名称必须以字母开头,可包含字母、数字、句点 (.) 和连字符 (-),且必须少于或等于 35 个字符。 请使用在各区域中唯一的名称。 集群名称和部署集群的区域构成了 Ingress 子域的标准域名。 为了确保 Ingress 子域在区域内是唯一的,可能会截断 Ingress 域名中的集群名称并附加随机值。

    --workers <number>

    指定要包含在集群中的工作程序节点数。 缺省值为 1。

    --version <major.minor.patch>

    群集主节点的 Red Hat OpenShift 版本。 此值是必需的。 未指定版本时,会使用受支持的缺省 Kubernetes 版本来创建集群。 如果未指定受支持的 Red Hat OpenShift 版本,那么会将集群创建为社区 Kubernetes 集群。 要查看可用版本,请运行 ibmcloud oc versions

    --public-service-endpoint

    启用公共云服务端点,以便通过公共网络访问 Red Hat OpenShift 主站,例如从 CLI 运行 oc 命令,并使 Red Hat OpenShift 主站和工作节点可以通过公共 VLAN 进行通信。 必须启用公共云服务端点,并且以后不能将其禁用 it.After 创建集群后,可以通过运行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 来获取端点。

    --private-service-endpoint

    VRF 启用的服务端点启用的帐户 中: 启用私有云服务端点,以便 Red Hat OpenShift 主节点和工作程序节点可以通过专用 VLAN 进行通信。 如果指定此选项,那么还必须使用 --public-service-endpoint 选项来启用公共云服务端点。 请注意,以后无法更改云服务 endpoints.After 创建集群之后,可以通过运行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 来获取端点。

    --pod-subnet

    缺省情况下,部署到工作程序节点的所有 pod 都会分配有 172.30.0.0/16 范围内的专用 IP 地址。 如果计划通过 IBM Cloud® Direct Link 或 VPN 服务将集群连接到内部网络,则可以指定一个自定义子网 CIDR,为 pod 提供私有 IP 地址,从而避免子网冲突。 选择子网大小时,请考虑计划创建的集群的大小以及未来可能添加的工作程序节点数。 子网的 CIDR 必须至少为 /23,这样才能为集群中最多四个工作节点提供足够的 pod IP。 对于较大的集群,请使用 /22 为 8 个工作程序节点提供足够的 pod IP 地址,使用 /21 为 16 个工作程序节点提供足够的 pod IP 地址,以此类推。 请注意,pod 和服务子网不能重叠。 缺省情况下,服务子网在 172.21.0.0/16 范围内。 您选择的子网必须在下列其中一个范围内:

    • 172.17.0.0 - 172.17.255.255
    • 172.21.0.0 - 172.31.255.255
    • 192.168.0.0 - 192.168.254.255
    • 198.18.0.0 - 198.19.255.255
    --service-subnet
    缺省情况下,部署到集群的所有服务都会分配有 172.21.0.0/16 范围内的专用 IP 地址。 如果计划通过 IBM Cloud Direct Link 或 VPN 服务将群集连接到内部网络,则可指定一个自定义子网 CIDR,为服务提供私有 IP 地址,从而避免子网冲突。
    子网必须以 CIDR 格式指定,大小至少为 /24,这允许集群中最多 255 个服务或更大的服务。 您选择的子网必须在下列其中一个范围内: - 172.17.0.0 - 172.17.255.255 - 172.21.0.0 - 172.31.255.255 - 192.168.0.0 - 192.168.254.255 - 198.18.0.0 - 198.19.255.255

    请注意, pod 和服务子网不能重叠。 缺省情况下,pod 子网在 172.30.0.0/16 范围内。

    --disable-disk-encrypt

    缺省情况下,工作程序节点具有 AES 256 位磁盘加密功能。 如果要禁用加密,请包括此选项。

    --entitlement ocp_entitled

    仅对具有 Red Hat OpenShift 权利的集群包含此选项。 指定工作程序数 (--workers) 和类型模板数 (--flavor) 时,请确保仅指定有权在 IBM Passport Advantage中使用的工作程序节点数和大小。 创建集群后,不会向您收取 default 工作程序池中授权工作程序节点的 Red Hat OpenShift 许可证费用。 请勿超出您的权利范围。 请记住,OpenShift Container Platform 权利可以与其他云提供者一起使用,也可以在其他环境中使用。 为避免以后出现计费问题,请确保仅使用您有权使用的内容。 例如,您可能具有针对两个工作程序节点 4 CPU 和 16 GB 内存的 OCP 许可证的权利,并且您使用两个工作程序节点 4 CPU 和 16 GB 内存创建此工作程序池。 您使用了整个权利,但不能对其他工作程序池,云提供者或环境使用相同的权利。

    --sm-group GROUP

    保存秘密的 Secrets Manager 实例的秘密组 ID。 要获取私钥组标识,请参阅 Secrets Manager CLI 参考

    --sm-instance INSTANCE

    Secrets Manager 实例的 CRN。 要获取实例的 CRN,请运行 ibmcloud oc ingress instance ls --cluster CLUSTER

  8. 验证是否请求了创建集群。 对于虚拟机,可能需要几分钟时间,才能订购好工作程序节点机器并且在帐户中设置并供应集群。 裸机物理机器通过与 IBM Cloud 基础架构进行手动交互来供应,可能需要一个工作日以上的时间才能完成。

    ibmcloud oc cluster ls
    

    Red Hat OpenShift master 的配置完成后,群集的状态将变为 normal。 Red Hat OpenShift 主节点准备就绪后,就会开始调配工作节点。

    NAME         ID                         State      Created          Workers    Zone      Version     Resource Group Name   Provider
    mycluster    blrs3b1d0p0p2f7haq0g       normal   20170201162433   3          dal10     4.17.28_1544_openshift      Default             classic
    

    您的群集是否不处于 normal 状态? 请查看调试集群指南以获取帮助。 例如,如果在受防火墙网关设备保护的帐户中供应集群,那么必须配置防火墙设置以允许出局流量流至相应的端口和 IP 地址

  9. 检查工作程序节点的状态。

    ibmcloud oc worker ls --cluster <cluster_name_or_ID>
    

    当工作程序节点已准备就绪时,工作程序节点的状态会更改为 normal,而阶段状态更改为 Ready。 节点阶段状态为 Ready 时,可以访问集群。 请注意,即使集群已准备就绪,集群中由其他服务使用的某些部分(例如,Ingress 私钥或注册表映像拉取私钥)可能仍在进行中。 请注意,如果创建了仅使用专用 VLAN 的集群,那么不会将任何公共 IP 地址分配给工作程序节点。

    ID                                                     Public IP        Private IP     Flavor              State    Status   Zone    Version
    kube-blrs3b1d0p0p2f7haq0g-mycluster-default-000001f7   169.xx.xxx.xxx  10.xxx.xx.xxx   u3c.2x4.encrypted   normal   Ready    dal10   1.32.5_1526
    

    系统会为每个工作程序节点分配唯一的工作程序节点标识和域名,在创建集群后,不得手动更改该标识和域名。 如果更改标识或域名,那么 Red Hat OpenShift 主节点无法管理集群。

  10. 可选:如果您在 多区区域 中创建了群集,您可以 将默认工作者池分散到各区,以提高群集的可用性。

  11. 创建集群后,可以通过配置 CLI 会话开始使用集群

您的集群已为您的工作负载做好准备! 您可能还希望 向集群添加标记,例如使用集群的团队或计费部门,以帮助管理 IBM Cloud 资源。

用于创建经典集群的示例命令

用于在共享虚拟机上创建经典集群的示例命令。

ibmcloud oc cluster create classic --name my_cluster --version 4.17_openshift --zone dal10 --flavor b3c.4x16 --hardware shared --workers 3

用于在裸机上创建经典集群的示例命令。

ibmcloud oc cluster create classic --name my_cluster --version 4.17_openshift --zone dal10 --flavor mb2c.4x32 --hardware dedicated --workers 3 --public-vlan <public_VLAN_ID> --private-vlan <private_VLAN_ID>

示例命令用于创建具有 IBM Cloud Pak 权限的经典群集,默认工作者池由 3 个工作者节点组成,每个节点有 4 个内核和 16 个内存。

ibmcloud oc cluster create classic --name cloud_pak_cluster --version 4.17_openshift --zone dal10 --flavor b3c.4x16 --hardware dedicated --workers 3 --entitlement ENTITLEMENT --public-vlan PUBLIC-VLAN-ID --private-vlan PRIVATE-VLAN-ID [--operating-system (REDHAT_8_64)]

使用 RHEL 9 工作节点创建经典集群的示例命令。

ibmcloud oc cluster create classic --name my_cluster --zone dal10 --flavor b3c.4x16 --version 4.9.28_openshift --operating-system RHEL_9_64

对于经典多区群集,在 多区都会 中创建群集后,添加区。 用于将区域添加到经典集群的示例命令。

ibmcloud oc zone add classic --zone <zone> --cluster <cluster_name_or_ID> --worker-pool <pool_name> --private-vlan <private_VLAN_ID> --public-vlan <public_VLAN_ID>

使用 Terraform 创建单专区经典集群

IBM Cloud 上的 Terraform 支持对 IBM Cloud 平台基础架构和资源 (包括经典集群) 进行可预测且一致的供应。 要使用 Terraform 创建经典集群,请首先创建用于声明要创建的集群资源类型的 Terraform 配置文件。 然后,应用 Terraform 配置文件。 有关 Terraform 的更多信息,请参阅 关于 IBM Cloud 上的 Terraform。

开始之前:

  1. 创建 Terraform 提供程序文件。 将文件保存在 Terraform 目录中。 有关更多信息,请参阅 Terraform IBM Cloud Provider 文档

    Terraform 提供程序文件示例。

    terraform {
    required_providers {
        ibm = {
        source = "IBM-Cloud/ibm"
        version = "1.53.0"
        }
    }
    }
    
    provider "ibm" {
    region = "us-south"
    ibmcloud_api_key = "<api-key>"
    }
    
  2. 为经典集群创建 Terraform 配置文件。 将文件保存在 Terraform 目录中。 下面的示例配置创建了一个经典群集,在一个区域内有三个工作节点。 有关更多信息和集群配置选项,请参阅 Terraform ibm_container_cluster 文档。

    Terraform 配置文件示例。

    resource "ibm_container_cluster" "testacc_cluster" {
    name            = "test-classic"
    datacenter      = "dal10"
    machine_type    = "b3c.4x16"
    hardware        = "shared"
    public_vlan_id  = "<vlan_id>"
    private_vlan_id = "<vlan_id"
    subnet_id       = ["<subnet_id>"]
    
    default_pool_size = 3
    }
    
    name
    集群的名称。
    datacenter
    要创建群集的区域。 要查看可用区域,请运行 ibmcloud oc zones --provider classic
    machine_type
    工作程序节点类型模板。 类型模板确定可用于工作程序节点的内存,CPU 和磁盘空间量。 要获取可用工作程序节点类型模板的列表,请运行 ibmcloud oc flavors --zone <zone> --provider classic,或者参阅 经典类型模板
    hardware
    工作节点的硬件隔离级别。 使用 dedicated 只为您提供可用的物理资源,或使用 shared 允许与其他 IBM 客户共享物理资源。 此选项仅适用于虚拟机工作程序节点类型模板。
    public_vlan_idprivate_vlan_id
    可选。 要用于工作程序节点的公用或专用 VLAN 的标识。 要查找可用的 VLAN 和子网,请运行 ibmcloud oc vlans --zone <zone>
    subnet_id
    可选。 要用于工作程序节点的现有子网的标识。 要查找现有子网,请运行 ibmcloud oc subnets --provider classic --zone <zone>
    default_pool_size
    要添加到缺省工作程序池的工作程序节点数。
  3. 在 CLI 中,浏览到 Terraform 目录。

    cd <terraform_directory>
    
  4. 运行命令以初始化和规划 Terraform 操作。 查看计划输出以确保执行正确的操作。

    terraform init
    
    terraform plan
    
  5. 应用 Terraform 文件以创建集群。 然后,浏览到 IBM Cloud 控制台以检查集群是否正在供应。

    terraform apply
    

经典集群的后续步骤