在 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 应用程序
- 公开应用程序的路径
先决条件
-
请检查您的许可权。 如果您是帐户所有者,那么您已具有创建集群所需的许可权,并且可以继续执行下一步。 如果您不是帐户所有者,请要求帐户所有者 设置 API 密钥,并在 IBM Cloud IAM 中为您分配所需的许可权。
创建一个 Red Hat OpenShift on IBM Cloud 集群
-
登录到您的帐户和资源组。 如果您有联合帐户,请包括
--sso选项。ibmcloud login [-g RESOURCE GROUP] [--sso] -
运行以下命令,在华盛顿特区创建一个 4.21 集群,该集群包含2个工作节点,每个节点拥有4个核心和16 GB内存。
ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.21_openshift --flavor b3c.4x16 --workers 2 --public-service-endpoint -
创建集群可能需要一些时间才能完成。 当集群状态显示为“正常” 后,集群网络和 Ingress 组件还需要大约 10 分钟来部署并更新您用于访问 Red Hat OpenShift Web 控制台及其他路由的集群域名。
-
列出集群详细信息。 查看集群 State,检查 Ingress Subdomain,并记下 Master URL。
ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID -
下载并添加集群的
kubeconfig配置文件。ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID -
在浏览器中,导航至 Master URL 的地址并附加
/console。 例如,https://c0.containers.cloud.ibm.com:23652/console。 -
通过检查版本,验证
oc命令是否针对您的集群正常运行。oc version示例输出
Client Version: v4.21.0 Kubernetes Version: v1.35.7.2如果您无法执行需要管理员权限的操作(例如列出集群中的所有工作节点或 Pod),请通过运行
ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin命令,下载该集群管理员的 TLS 证书和权限文件。
浏览 Red Hat OpenShift 控制台
- 从 控制台选择您的 Red Hat OpenShift 集群,然后点击 OpenShift 网络控制台。
- 要在 CLI 中使用集群,请单击概要文件
IAM#user.name@email.com> 复制登录命令。 显示oc login令牌命令并将其复制到命令行中,以使用 CLI 进行认证。
将应用程序部署到您的集群
-
为 Hello World 应用程序创建项目。
oc new-project hello-world -
使用
oc new-app命令构建样本应用程序 从源代码。oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"输出中可能会显示警告消息,但不会影响此示例。
-
列出 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 -
列出 pod,并确保 hello-world pod 状态为 正在运行,
build和deploypod 为 已完成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 -
设置路径,以便可以公共访问 hello world 服务。
oc create route edge --service=hello-world -n hello-world -
从 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 -
访问应用程序。 确保将
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!
整理教程资源
- 列出
hello-world项目中的资源。
示例输出oc get all -l app=hello-world -o name -n hello-worldpod/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 - 删除资源。
oc delete all -l app=hello-world -n hello-world
后续步骤?
安装两个流行的 Red Hat OpenShift on IBM Cloud 集群插件:IBM Cloud Logs 和 IBM Cloud Monitoring。