IBM Cloud Docs
在 CLI 中设置第一个经典集群

在 CLI 中设置第一个经典集群

经典基础结构

在本教程中,您将使用 CLI 在经典基础架构上部署 Red Hat OpenShift on IBM Cloud 集群。

受众

本教程是为希望了解如何首次使用 CLI 创建 Red Hat OpenShift on IBM Cloud 集群的集群管理员设计的。

目标

在本教程中,您将完成以下任务。

  • 在华盛顿特区创建一个具有 4 个核心和 16 GB 内存的 2 工作程序节点的集群。
  • 打开 Red Hat OpenShift 网络控制台。
  • 部署样本应用程序。
  • 在路由上公开应用程序,以便外部用户可以访问该服务。

你会得到什么

在本教程中,您将使用 CLI 创建以下资源。 如果您不想在完成教程后保留这些资源,那么可以执行一些可选步骤来删除这些资源。

  • 具有 2 工作程序节点的经典集群
  • 部署到集群的简单 Hello World 应用程序
  • 公开应用程序的路径

集群资源概述

查看下图以获取公共集群资源的概述。

群集架构
群集
*

先决条件

  1. 请检查您的许可权。 如果您是帐户所有者,那么您已具有创建集群所需的许可权,并且可以继续执行下一步。 如果您不是帐户所有者,请要求帐户所有者 设置 API 密钥,并在 IBM Cloud IAM 中为您分配所需的许可权。

  2. 安装 IBM Cloud CLI 工具

创建 Red Hat OpenShift on IBM Cloud 集群

  1. 登录到您的帐户和资源组。 如果您有联合帐户,请包括 --sso 选项。

    ibmcloud login [-g RESOURCE GROUP] [--sso]
    
  2. 运行以下命令,在华盛顿特区创建一个版本 4.17 集群,其中包含2个工作节点,每个节点有4个核心和16 GB内存。

    ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.17_openshift --flavor b3c.4x16  --workers 2 --public-service-endpoint
    
  3. 创建集群可能需要一些时间才能完成。 群集状态显示 “正常” 后,群集网络和 Ingress 组件需要大约 10 分钟的时间来部署和更新群集域(用于 Red Hat OpenShift 网络控制台和其他路由)。

  4. 列出集群详细信息。 查看集群 State,检查 Ingress Subdomain,并记下 Master URL

    ibmcloud oc cluster get --cluster <cluster_name_or_ID>
    
  5. 下载并添加集群的 kubeconfig 配置文件。

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  6. 在浏览器中,导航至 Master URL 的地址并附加 /console。 例如,https://c0.containers.cloud.ibm.com:23652/console

  7. 单击概要文件 IAM#user.name@email.com > 复制登录命令。 显示 oc login 令牌命令并将其复制到命令行以通过 CLI 进行认证。

  8. 通过检查版本,验证 oc 命令是否针对您的集群正常运行。

    oc version
    

    示例输出

    Client Version: v4.17.0
    Kubernetes Version: v1.32.5.2
    

    如果无法执行需要管理员权限的操作(如列出群集中的所有工作节点或 pod),请运行 ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin 命令为群集管理员下载 TLS 证书和权限文件。

浏览 Red Hat OpenShift 控制台

  1. 控制台选择您的 Red Hat OpenShift 集群,然后点击 OpenShift 网络控制台
  2. 要在 CLI 中使用集群,请单击概要文件 IAM#user.name@email.com > 复制登录命令。 显示 oc login 令牌命令并将其复制到命令行中,以使用 CLI 进行认证。

将应用程序部署到群集

  1. 为 Hello World 应用程序创建项目。

    oc new-project hello-world
    
  2. 使用 oc new-app 命令构建样本应用程序 从源代码

    oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"
    

    输出中可能会显示警告消息,但不会影响此示例。

  3. 列出 hello-world 服务并记下服务名称。 除非您为服务创建路由,以便 Ingress 控制器能将外部流量请求转发到应用程序,否则您的应用程序就会监听这些内部群集 IP 地址上的流量。

    oc get svc -n hello-world
    

    示例输出

    NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    hello-world   ClusterIP   172.21.xxx.xxx   <none>       8080/TCP   31m
    
  4. 列出 pod,并确保 hello-world pod 状态为 正在运行builddeploy pod 为 已完成

    oc get pods -n hello-world
    

    示例输出

    NAME                  READY     STATUS             RESTARTS   AGE
    hello-world-1-9cv7d   1/1       Running            0          30m
    hello-world-1-build   0/1       Completed          0          31m
    hello-world-1-deploy  0/1       Completed          0          31m
    
  5. 设置路径,以便可以公共访问 hello world 服务。

    oc create route edge --service=hello-world -n hello-world
    
  6. Host/Port 输出获取路径主机名地址。

    oc get route -n hello-world
    

    示例输出

    NAME          HOST/PORT                         PATH                                        SERVICES      PORT       TERMINATION   WILDCARD
    hello-world   hello-world-hello.world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud    hello-world   8080-tcp   edge/Allow    None
    
  7. 访问应用程序。 确保将 https:// 附加到路径主机名。 可能需要一分钟时间才能显示公开的服务。

    curl https://hello-world-hello-world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud
    

    示例输出

    Hello world from hello-world-9cv7d! Your app is up and running in a cluster!
    

清理教程资源

  1. 列出 hello-world 项目中的资源。
    oc get all -l app=hello-world -o name -n hello-world
    
    示例输出
    pod/hello-world-1-dh2ff
    replicationcontroller/hello-world-1
    service/hello-world
    deploymentconfig.apps.openshift.io/hello-world
    buildconfig.build.openshift.io/hello-world
    build.build.openshift.io/hello-world-1
    imagestream.image.openshift.io/hello-world
    imagestream.image.openshift.io/node
    route.route.openshift.io/hello-world
    
  2. 删除资源。
    oc delete all -l app=hello-world -n hello-world
    

后续步骤?

有关使用应用程序的更多信息,请参阅 Red Hat OpenShift 开发者活动 文档。

安装两个流行的 Red Hat OpenShift on IBM Cloud 集群插件:IBM Cloud LogsIBM Cloud Monitoring