了解 ROSA
第 1 章 创建集群研讨会 复制链接链接已复制到粘贴板!
1.1. 创建集群 复制链接链接已复制到粘贴板!
按照以下步骤在 AWS (ROSA)集群上部署示例 Red Hat OpenShift Service。然后您可以在下一研讨会中使用集群。
研讨会目标
了解如何创建集群先决条件:
- 创建虚拟私有云(VPC)示例
- 创建 OpenID Connect (OIDC)资源示例
- 创建示例环境变量
- 部署示例 ROSA 集群
先决条件
- ROSA 版本 1.2.31 或更高版本
- Amazon Web Service (AWS)命令行界面(CLI)
-
ROSA CLI (
rosa
)
1.1.1. 创建集群先决条件 复制链接链接已复制到粘贴板!
在部署 ROSA 集群前,您必须同时具有 VPC 和 OIDC 资源。首先我们将创建这些资源。ROSA 使用自带 VPC (BYO-VPC)模型。
1.1.1.1. 创建 VPC 复制链接链接已复制到粘贴板!
确保您的 AWS CLI (
aws
)被配置为使用 ROSA 可用区域。运行以下命令,查看 AWS CLI 支持的区域:rosa list regions --hosted-cp
$ rosa list regions --hosted-cp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 VPC。在本研讨会中,以下 脚本 会创建 VPC 及其所需组件。它使用
aws
CLI 中配置的区域。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 脚本输出命令。将命令设置为环境变量,以存储子网 ID 以供以后使用。复制并运行命令:
export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID
$ export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID $ export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认您的环境变量:
echo "Public Subnet: $PUBLIC_SUBNET_ID"; echo "Private Subnet: $PRIVATE_SUBNET_ID"
$ echo "Public Subnet: $PUBLIC_SUBNET_ID"; echo "Private Subnet: $PRIVATE_SUBNET_ID"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Public Subnet: subnet-0faeeeb0000000000 Private Subnet: subnet-011fe340000000000
Public Subnet: subnet-0faeeeb0000000000 Private Subnet: subnet-011fe340000000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.1.2. 创建 OIDC 配置 复制链接链接已复制到粘贴板!
在此研讨会中,我们将在创建 OIDC 配置时使用自动模式。我们还会将 OIDC ID 存储为环境变量,供以后使用。命令使用 ROSA CLI 创建集群的唯一 OIDC 配置。
运行以下命令来创建 OIDC 配置:
export OIDC_ID=$(rosa create oidc-config --mode auto --managed --yes -o json | jq -r '.id')
$ export OIDC_ID=$(rosa create oidc-config --mode auto --managed --yes -o json | jq -r '.id')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2. 创建其他环境变量 复制链接链接已复制到粘贴板!
运行以下命令来设置环境变量。这些变量可以更轻松地运行命令来创建 ROSA 集群:
export CLUSTER_NAME=<cluster_name> export REGION=<VPC_region>
$ export CLUSTER_NAME=<cluster_name> $ export REGION=<VPC_region>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示运行
rosa whoami
来查找 VPC 区域。
1.1.3. 创建集群 复制链接链接已复制到粘贴板!
可选: 运行以下命令来创建集群范围的角色和策略,包括 Operator 策略和 AWS IAM 角色和策略:
重要只有在您 首次在 这个帐户中部署 ROSA 且您尚未创建您的帐户角色和策略 时,才完成这个步骤。
rosa create account-roles --mode auto --yes
$ rosa create account-roles --mode auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建集群:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
集群在大约 10 分钟后就绪。集群将在所选区域中的三个 AWS 可用区有一个 control plane,并在 AWS 帐户中创建两个 worker 节点。
1.1.4. 检查安装状态 复制链接链接已复制到粘贴板!
运行以下命令之一检查集群的状态:
有关集群状态的详细视图,请运行:
rosa describe cluster --cluster $CLUSTER_NAME
$ rosa describe cluster --cluster $CLUSTER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于集群状态的 abridged 视图,请运行:
rosa list clusters
$ rosa list clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在其进行时监控日志,请运行:
rosa logs install --cluster $CLUSTER_NAME --watch
$ rosa logs install --cluster $CLUSTER_NAME --watch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 当状态变为"就绪"后,集群就会安装。worker 节点上线可能需要几分钟时间。
1.2. 创建管理员用户 复制链接链接已复制到粘贴板!
通过创建管理(admin)用户,您可以快速访问集群。按照以下步骤创建管理员用户。
管理员用户在此教程设置中表现良好。对于实际部署,请使用 正式的身份提供程序 访问集群并授予用户 admin 特权。
运行以下命令来创建 admin 用户:
rosa create admin --cluster=<cluster-name>
rosa create admin --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制上一步中返回到您的登录命令,并将它粘贴到终端中。这将使用 CLI 登录集群,以便您可以开始使用集群。
oc login https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443 \ --username cluster-admin \ --password FWGYL-2mkJI-00000-00000
$ oc login https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443 \ > --username cluster-admin \ > --password FWGYL-2mkJI-00000-00000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login successful. You have access to 79 projects, the list has been suppressed. You can list all projects with ' projects' Using project "default".
Login successful. You have access to 79 projects, the list has been suppressed. You can list all projects with ' projects' Using project "default".
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要检查您已经以 admin 用户身份登录,请运行以下命令之一:
选项 1:
oc whoami
$ oc whoami
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
cluster-admin
cluster-admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选项 2:
oc get all -n openshift-apiserver
oc get all -n openshift-apiserver
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 只有 admin 用户可以无错误地运行此命令。
- 现在,您可以将集群用作 admin 用户,这将需要本教程。对于实际部署,强烈建议您设置一个身份提供程序,该提供程序 将在下一教程中阐述。
1.3. 设置身份提供程序 复制链接链接已复制到粘贴板!
要登录到集群,请设置身份提供程序(IDP)。本教程使用 GitHub 作为示例 IDP。请参阅 ROSA 支持的 IDP 的完整列表。
要查看所有 IDP 选项,请运行以下命令:
rosa create idp --help
rosa create idp --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.1. 使用 GitHub 设置 IDP 复制链接链接已复制到粘贴板!
- 登录到您的 GitHub 帐户。
创建您作为管理员的新 GitHub 组织。
提示如果您已已经是现有机构的管理员,并且希望使用该机构,请跳至第 9 步。
单击 + 图标,然后单击 New Organization。
- 为您的情况选择最适用的计划,或者点击 Join for free。
输入机构帐户名称、电子邮件以及它是个人还是商业帐户。然后,单击 Next。
- 可选: 添加其他用户的 GitHub ID,以授予您的 ROSA 集群的其他访问权限。您还可以稍后添加它们。
- 单击 Complete Setup。
- 可选: 在以下页面中输入请求的信息。
- 点 Submit。
返回到终端并输入以下命令来设置 GitHub IDP:
rosa create idp --cluster=<cluster name> --interactive
rosa create idp --cluster=<cluster name> --interactive
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下值:
Type of identity provider: github Identity Provider Name: <IDP-name> Restrict to members of: organizations GitHub organizations: <organization-account-name>
Type of identity provider: github Identity Provider Name: <IDP-name> Restrict to members of: organizations GitHub organizations: <organization-account-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLI 将为您提供链接。将链接复制并粘贴到浏览器中,然后按 Enter 键。这将填写所需信息,以注册此应用用于 OAuth。您不需要修改任何信息。
点击 Register application。
下一页显示一个 客户端 ID。复制 ID 并将其粘贴到请求 客户端 ID 的终端中。
注意不要关闭选项卡。
CLI 将要求提供 客户端 Secret。返回到浏览器中,再单击 Generate a new client secret。
- 已为您生成 secret。复制您的 secret,因为它永远不会再次可见。
- 将您的 secret 粘贴到终端中,然后按 Enter 键。
- 将 GitHub Enterprise Hostname 留空。
- 选择 声明。
等待大约 1 分钟以便创建 IDP,并将配置在集群中进行。
复制返回的链接并将其粘贴到您的浏览器中。新 IDP 应在您选择的名称下可用。点您的 IDP,并使用您的 GitHub 凭证访问集群。
1.3.2. 授予其他用户对集群的访问权限 复制链接链接已复制到粘贴板!
要授予对其他集群用户的访问权限,您需要将 GitHub 用户 ID 添加到用于此集群的 GitHub 机构。
- 在 GitHub 中,进入 您的机构 页面。
点 您的个人资料图标,然后点 您的机构。然后单击 < ;your-organization-name>。在我们的示例中,是
my-rosa-cluster
。单击 Invite someone。
- 输入新用户的 GitHub ID,选择正确的用户,然后单击 Invite。
- 新用户接受邀请后,他们将能够使用 Hybrid Cloud Console 链接及其 GitHub 凭据登录 ROSA 集群。
1.4. 授予 admin 权限 复制链接链接已复制到粘贴板!
管理(admin)权限不会自动授予您添加到集群中的用户。如果要向某些用户授予 admin 级别的权限,则需要为每个用户授予它们。您可以从 ROSA 命令行界面(CLI)或 Red Hat OpenShift Cluster Manager Web 用户界面(UI)授予 admin 权限。
红帽提供了两种类型的 admin 权限:
-
cluster-admin
:cluster-admin
权限为 admin 用户授予集群中的完全特权。 -
dedicated-admin
:dedicated-admin
权限允许 admin 用户完成具有某些限制的大部分管理任务,以防止集群损坏。最佳实践是在需要升级的权限时使用dedicated-admin
。
如需有关 admin 特权的更多信息 ,请参阅管理集群 文档。
1.4.1. 使用 ROSA CLI 复制链接链接已复制到粘贴板!
假设您是创建集群的用户,请运行以下命令之一来授予 admin 权限:
对于
cluster-admin
:rosa grant user cluster-admin --user <idp_user_name> --cluster=<cluster-name>
$ rosa grant user cluster-admin --user <idp_user_name> --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
dedicated-admin
:rosa grant user dedicated-admin --user <idp_user_name> --cluster=<cluster-name>
$ rosa grant user dedicated-admin --user <idp_user_name> --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令验证 admin 权限是否已添加:
rosa list users --cluster=<cluster-name>
$ rosa list users --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
rosa list users --cluster=my-rosa-cluster
$ rosa list users --cluster=my-rosa-cluster ID GROUPS <idp_user_name> cluster-admins
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您当前登录到 Red Hat Hybrid Cloud 控制台,请登出控制台并重新登录集群,以查看使用 "Administrator Panel" 的新视角。您可能需要一个 incognito 或 private 窗口。
您还可以运行以下命令来测试是否将 admin 特权添加到您的帐户中。只有
cluster-admin
用户可以运行这个命令,且无错误。oc get all -n openshift-apiserver
$ oc get all -n openshift-apiserver
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.2. 使用 Red Hat OpenShift Cluster Manager UI 复制链接链接已复制到粘贴板!
- 登录 OpenShift Cluster Manager。
- 选择您的集群。
- 点 Access Control 选项卡。
- 单击边栏中的 Cluster roles 和 Access 选项卡。
单击 Add user。
- 在弹出窗口中输入用户 ID。
选择您要授予用户
cluster-admins
或dedicated-admins
权限。
1.5. 访问集群 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)或 Red Hat Hybrid Cloud Console 用户界面(UI)连接到集群。
1.5.1. 使用 CLI 访问集群 复制链接链接已复制到粘贴板!
要使用 CLI 访问集群,您必须安装 oc
CLI。如果您遵循教程,已安装 oc
CLI。
- 登录 OpenShift Cluster Manager。
- 点击右上角的用户名。
单击 Copy Login Command。
这会打开一个新标签页,并选择身份提供程序(IDP)。点击您要使用的 IDP。例如:"rosa-github"。
- 此时会打开一个新标签页。单击 Display token。
在终端中运行以下命令:
oc login --token=sha256~GBAfS4JQ0t1UTKYHbWAK6OUWGUkdMGz000000000000 --server=https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443
$ oc login --token=sha256~GBAfS4JQ0t1UTKYHbWAK6OUWGUkdMGz000000000000 --server=https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Logged into "https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided. You have access to 79 projects, the list has been suppressed. You can list all projects with ' projects' Using project "default".
Logged into "https://api.my-rosa-cluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided. You have access to 79 projects, the list has been suppressed. You can list all projects with ' projects' Using project "default".
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认您已经登录:
oc whoami
$ oc whoami
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
rosa-user
rosa-user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 现在,您可以访问集群。
1.5.2. 通过 Hybrid Cloud 控制台访问集群 复制链接链接已复制到粘贴板!
要检索 Hybrid Cloud Console URL 运行:
rosa describe cluster -c <cluster-name> | grep Console
rosa describe cluster -c <cluster-name> | grep Console
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
点您的 IDP。例如:"rosa-github"。
- 输入您的用户凭证。
您应该已登录。如果您遵循教程,您将是一个 cluster-admin,应该会看到带有 Administrator 面板的 Hybrid Cloud Console 网页。
1.6. 管理 worker 节点 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift Service on AWS (ROSA)中,更改 worker 节点的各个方面通过使用机器池来执行。机器池允许用户将许多机器作为单一实体管理。每个 ROSA 集群都有一个默认的机器池,它会在创建集群时创建。如需更多信息,请参阅 机器池 文档。
1.6.1. 创建机器池 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)或用户界面(UI)创建机器池。
1.6.1.1. 使用 CLI 创建机器池 复制链接链接已复制到粘贴板!
运行以下命令:
rosa create machinepool --cluster=<cluster-name> --name=<machinepool-name> --replicas=<number-nodes>
$ rosa create machinepool --cluster=<cluster-name> --name=<machinepool-name> --replicas=<number-nodes>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa create machinepool --cluster=my-rosa-cluster --name=new-mp
$ rosa create machinepool --cluster=my-rosa-cluster --name=new-mp --replicas=2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Machine pool 'new-mp' created successfully on cluster 'my-rosa-cluster' I: To view all machine pools, run 'rosa list machinepools -c my-rosa-cluster'
I: Machine pool 'new-mp' created successfully on cluster 'my-rosa-cluster' I: To view all machine pools, run 'rosa list machinepools -c my-rosa-cluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 通过运行以下命令,将节点标签或污点添加到新机器池中的特定节点:
rosa create machinepool --cluster=<cluster-name> --name=<machinepool-name> --replicas=<number-nodes> --labels=`<key=pair>`
rosa create machinepool --cluster=<cluster-name> --name=<machinepool-name> --replicas=<number-nodes> --labels=`<key=pair>`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa create machinepool --cluster=my-rosa-cluster --name=db-nodes-mp --replicas=2 --labels='app=db','tier=backend'
$ rosa create machinepool --cluster=my-rosa-cluster --name=db-nodes-mp --replicas=2 --labels='app=db','tier=backend'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
I: Machine pool 'db-nodes-mp' created successfully on cluster 'my-rosa-cluster'
I: Machine pool 'db-nodes-mp' created successfully on cluster 'my-rosa-cluster'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会创建一个额外的 2 个节点,可作为单元进行管理,并为它们分配显示的标签。
运行以下命令,以确认创建机器池以及分配的标签:
rosa list machinepools --cluster=<cluster-name>
rosa list machinepools --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers Yes 2/2-4 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers Yes 2/2-4 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.1.2. 使用 UI 创建机器池 复制链接链接已复制到粘贴板!
登录 OpenShift Cluster Manager 并点您的集群。
点 Machine pool 选项卡。
- 点 Add machine pool。
输入所需的配置。
提示您还可以展开 Edit node labels 和 taint 部分,将节点标签和污点添加到机器池中的节点。
- 点 Add machine pool 按钮保存。
您将看到您创建的新机器池。
1.6.2. 扩展 worker 节点 复制链接链接已复制到粘贴板!
编辑机器池,以扩展特定机器池中的 worker 节点数量。您可以使用 CLI 或 UI 来扩展 worker 节点。
1.6.2.1. 使用 CLI 扩展 worker 节点 复制链接链接已复制到粘贴板!
运行以下命令,以查看使用每个集群创建的默认机器池:
rosa list machinepools --cluster=<cluster-name>
rosa list machinepools --cluster=<cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES Default No 2 m5.xlarge us-east-1a
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONES Default No 2 m5.xlarge us-east-1a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将默认机器池扩展到不同的节点数量,请运行以下命令:
rosa edit machinepool --cluster=<cluster-name> --replicas=<number-nodes> <machinepool-name>
rosa edit machinepool --cluster=<cluster-name> --replicas=<number-nodes> <machinepool-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa edit machinepool --cluster=my-rosa-cluster --replicas 3 Default
rosa edit machinepool --cluster=my-rosa-cluster --replicas 3 Default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以确认机器池已扩展:
rosa describe cluster --cluster=<cluster-name> | grep Compute
rosa describe cluster --cluster=<cluster-name> | grep Compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa describe cluster --cluster=my-rosa-cluster | grep Compute
$ rosa describe cluster --cluster=my-rosa-cluster | grep Compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
- Compute (Autoscaled): 2-4 - Compute (current): 2
- Compute (Autoscaled): 2-4 - Compute (current): 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.2.2. 使用 UI 扩展 worker 节点 复制链接链接已复制到粘贴板!
- 点击您要编辑的机器池右侧的三个点。
- 点 Edit。
- 输入所需的节点数,然后单击 Save。
通过选择集群,单击 Overview 选项卡,再滚动到 Compute 列表,确认集群已扩展。计算列表应当等于扩展的节点。例如: 3/3。
1.6.2.3. 添加节点标签 复制链接链接已复制到粘贴板!
使用以下命令添加节点标签:
rosa edit machinepool --cluster=<cluster-name> --replicas=<number-nodes> --labels='key=value' <machinepool-name>
rosa edit machinepool --cluster=<cluster-name> --replicas=<number-nodes> --labels='key=value' <machinepool-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa edit machinepool --cluster=my-rosa-cluster --replicas=2 --labels 'foo=bar','baz=one' new-mp
rosa edit machinepool --cluster=my-rosa-cluster --replicas=2 --labels 'foo=bar','baz=one' new-mp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在新机器池中添加 2 个标签。
此命令将所有机器池配置替换为新定义的配置。如果要添加另一个标签并保留旧标签,您必须同时显示新标签和预先存在的标签。否则,命令会将所有预先存在的标签替换为您要添加的标签。同样,如果要删除标签,请运行 命令并说明您想要的命令,不包括您要删除的标签。
1.6.3. 混合节点类型 复制链接链接已复制到粘贴板!
您还可以使用新机器池混合同一集群中的不同 worker 节点机器类型。创建后,您无法更改机器池的节点类型,但您可以通过添加-- instance-type
标志来创建带有不同节点的新机器池。
例如,要将数据库节点更改为不同的节点类型,请运行以下命令:
rosa create machinepool --cluster=<cluster-name> --name=<mp-name> --replicas=<number-nodes> --labels='<key=pair>' --instance-type=<type>
rosa create machinepool --cluster=<cluster-name> --name=<mp-name> --replicas=<number-nodes> --labels='<key=pair>' --instance-type=<type>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa create machinepool --cluster=my-rosa-cluster --name=db-nodes-large-mp --replicas=2 --labels='app=db','tier=backend' --instance-type=m5.2xlarge
rosa create machinepool --cluster=my-rosa-cluster --name=db-nodes-large-mp --replicas=2 --labels='app=db','tier=backend' --instance-type=m5.2xlarge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看 所有可用的实例类型,请运行以下命令:
rosa list instance-types
rosa list instance-types
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要进行逐步更改,请使用--
interactive
标志:rosa create machinepool -c <cluster-name> --interactive
rosa create machinepool -c <cluster-name> --interactive
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令列出机器池并查看新的、更大的实例类型:
rosa list machinepools -c <cluster-name>
rosa list machinepools -c <cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. 自动缩放 复制链接链接已复制到粘贴板!
集群自动扩展 根据 pod 资源从集群中删除 worker 节点。
集群自动扩展会增加集群的大小:
- 由于资源不足,Pod 无法调度到当前节点上。
- 另一个节点需要满足部署需求。
集群自动扩展不会将集群资源增加到超过您指定的限制。
在以下情况下,集群自动扩展会减小集群的大小:
- 显著期间内不需要某些节点。例如,当节点资源使用率较低且所有重要 pod 都可以安置在其他节点上时。
1.7.1. 使用 CLI 为现有机器池启用自动扩展 复制链接链接已复制到粘贴板!
通过使用- enable-autoscaling
选项,可以在集群创建时启用集群自动扩展。
自动扩展是基于机器池可用性设置的。要找出哪些机器池可用于自动扩展,请运行以下命令:
rosa list machinepools -c <cluster-name>
$ rosa list machinepools -c <cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers No 2/2 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将自动扩展添加到可用的机器池中:
rosa edit machinepool -c <cluster-name> --enable-autoscaling <machinepool-name> --min-replicas=<num> --max-replicas=<num>
$ rosa edit machinepool -c <cluster-name> --enable-autoscaling <machinepool-name> --min-replicas=<num> --max-replicas=<num>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入示例
rosa edit machinepool -c my-rosa-cluster --enable-autoscaling workers --min-replicas=2 --max-replicas=4
$ rosa edit machinepool -c my-rosa-cluster --enable-autoscaling workers --min-replicas=2 --max-replicas=4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上命令为 worker 节点创建一个自动扩展器,它根据资源在 2 到 4 节点间进行缩放。
1.7.2. 使用 UI 为现有机器池启用自动扩展 复制链接链接已复制到粘贴板!
通过在创建机器池时选中 Enable autoscaling 复选框,可以在集群创建时启用集群自动扩展。
- 进入 Machine pool 选项卡,再单击右侧的三个点。
- 单击 Edit,然后单击 Enable autoscaling。
- 编辑最小和最大节点数或保留默认数量。
- 点击 Save。
运行以下命令确认添加了自动扩展:
rosa list machinepools -c <cluster-name>
$ rosa list machinepools -c <cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers Yes 2/2-4 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
ID AUTOSCALING REPLICAS INSTANCE TYPE LABELS TAINTS AVAILABILITY ZONE SUBNET DISK SIZE VERSION AUTOREPAIR workers Yes 2/2-4 m5.xlarge us-east-1f subnet-<subnet_id> 300 GiB 4.14.36 Yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8. 升级集群 复制链接链接已复制到粘贴板!
Red Hat OpenShift Service on AWS (ROSA)作为受管服务的一部分执行所有集群升级。您不需要运行任何命令或更改集群。您可以在方便的时间调度升级。
调度集群升级的方法包括:
- 使用命令行界面(CLI)手动 :启动一次性升级,或调度一次性升级以备将来日期和时间。
- 使用 Red Hat OpenShift Cluster Manager 用户界面(UI)手动 :启动一次性立即升级或调度一次性升级以备将来日期和时间。
- 自动升级 :每当有新版本可用时,为重复 y-stream 升级设置升级窗口,而无需手动调度它。必须手动调度次要版本。
有关集群升级的详情,请运行以下命令:
rosa upgrade cluster --help
$ rosa upgrade cluster --help
1.8.1. 使用 CLI 手动升级集群 复制链接链接已复制到粘贴板!
运行以下命令检查是否有可用的升级:
rosa list upgrade -c <cluster-name>
$ rosa list upgrade -c <cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
rosa list upgrade -c <cluster-name>
$ rosa list upgrade -c <cluster-name> VERSION NOTES 4.14.7 recommended 4.14.6 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,版本 4.14.7 和 4.14.6 都可用。
运行以下命令,将集群调度到一小时内升级:
rosa upgrade cluster -c --control-plane <cluster-name> --version <desired-version>
$ rosa upgrade cluster -c --control-plane <cluster-name> --version <desired-version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 通过运行以下命令,调度集群以便在以后的日期和时间升级:
rosa upgrade cluster -c <cluster-name> --version <desired-version> --schedule-date <future-date-for-update> --schedule-time <future-time-for-update>
$ rosa upgrade cluster -c <cluster-name> --version <desired-version> --schedule-date <future-date-for-update> --schedule-time <future-time-for-update>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8.2. 使用 UI 手动升级集群 复制链接链接已复制到粘贴板!
- 登录 OpenShift Cluster Manager,再选择您要升级的集群。
- 点 Settings 选项卡。
如果有可用的升级,请点击 Update。
- 在新窗口中选择要升级到的版本。
- 为升级调度一个时间,或立即开始。
1.8.3. 设置自动重复升级 复制链接链接已复制到粘贴板!
- 登录 OpenShift Cluster Manager,再选择您要升级的集群。
点 Settings 选项卡。
- 在 Update Strategy 下,单击 Recurring updates。
- 设置升级的日期和时间。
- 点击 Save。
1.9. 删除集群 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)或用户界面(UI)删除 Red Hat OpenShift Service on AWS (ROSA)集群。
1.9.1. 使用 CLI 删除 ROSA 集群 复制链接链接已复制到粘贴板!
可选: 运行以下命令来列出集群,以确保删除正确的集群:
rosa list clusters
$ rosa list clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除集群:
rosa delete cluster --cluster <cluster-name>
$ rosa delete cluster --cluster <cluster-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告此命令不可恢复。
CLI 会提示您确认要删除集群。按 y,然后输入。集群及其关联的基础架构将被删除。
注意所有 AWS STS 和 IAM 角色和策略都将保留,必须在集群删除完成后手动删除。
CLI 输出删除创建的 OpenID Connect (OIDC)供应商和 Operator IAM 角色资源的命令。等待集群完成删除后再删除这些资源。运行以下命令执行快速状态检查:
rosa list clusters
$ rosa list clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除集群后,运行以下命令删除 OIDC 供应商:
rosa delete oidc-provider -c <clusterID> --mode auto --yes
$ rosa delete oidc-provider -c <clusterID> --mode auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除 Operator IAM 角色:
rosa delete operator-roles -c <clusterID> --mode auto --yes
$ rosa delete operator-roles -c <clusterID> --mode auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此命令需要集群 ID,而不是集群名称。
只有同一帐户中其他集群不再需要时,才删除剩余的帐户角色。如果要在此帐户中创建其他 ROSA 集群,请不要执行此步骤。
要删除帐户角色,您需要知道创建它们时使用的前缀。除非另有指定,否则默认为"ManagedOpenShift"。
运行以下命令来删除帐户角色:
rosa delete account-roles --prefix <prefix> --mode auto --yes
$ rosa delete account-roles --prefix <prefix> --mode auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.2. 使用 UI 删除 ROSA 集群 复制链接链接已复制到粘贴板!
- 登录 OpenShift Cluster Manager,并找到您要删除的集群。
点集群右侧的三个点。
在下拉菜单中,单击 Delete cluster。
- 输入集群名称以确认删除,然后单击 Delete。
1.10. 获取支持 复制链接链接已复制到粘贴板!
当您需要时,找到正确的帮助。当您需要协助时,这些资源是您的一些资源。
1.10.1. 添加支持联系人 复制链接链接已复制到粘贴板!
您可以为集群通信添加额外的电子邮件地址。
- 在 Red Hat OpenShift Cluster Manager 用户界面(UI)上,点侧导航选项卡中的 Cluster List。
- 选择需要支持的集群。
- 点 Support 标签页。
- 单击 Add notification contact,并输入附加电子邮件地址。
1.10.2. 联系红帽以获取使用 UI 的支持 复制链接链接已复制到粘贴板!
- 在 OpenShift Cluster Manager UI 中,点 Support 选项卡。
- 点 Open support case。
1.10.3. 使用支持页面联系红帽以获取支持 复制链接链接已复制到粘贴板!
- 访问 红帽支持页面。
点 Open a new Case。
- 登录到您的红帽帐户。
选择联系支持的原因。
选择 Red Hat OpenShift Service on AWS。
- 单击 继续。
输入问题概述以及您的请求详情。上传任何文件、日志和屏幕截图。您提供的更多详细信息,红帽更好的支持可以帮助您的问题单。
注意本页的底部会显示与您的问题相关的建议。
- 点 Continue。
- 回答新字段中的问题。
- 点 Continue。
输入您问题单的以下信息:
- 支持级别: 高级
- 严重性 : 查看红帽支持严重性级别定义来选择正确的定义。
- 组 : 如果这与其它情况相关,您可以选择对应的组。
- 语言
- 发送通知: 添加任何其他电子邮件地址以保持活动通知。
- 红帽同事: 如果您正在与来自红帽的任何人合作,并希望将它们保持在循环中,您可以在此输入其电子邮件地址。
- 备用问题单 ID: 如果要将自己的 ID 附加到其中,可以在此处输入。
- 点 Continue。
在查看屏幕上,请确保选择联系支持的正确集群 ID。
- 点 Submit。
- 您将根据针对指定 严重性级别 的响应时间进行联系。
第 2 章 部署应用程序研讨会 复制链接链接已复制到粘贴板!
2.1. 研讨会概述 复制链接链接已复制到粘贴板!
2.1.1. 简介 复制链接链接已复制到粘贴板!
在成功置备集群后,请按照本研讨会部署应用程序以了解部署和操作基于容器的应用程序的概念。
研讨会目标
- 使用 Source-to-Image (S2I)和 Kubernetes 部署对象部署基于 Node.js 的应用
- 设置持续交付(CD)管道,以自动推送源代码更改
- 体验自我修复应用程序
- 通过 ConfigMap、secret 和环境变量探索配置管理
- 使用持久性存储在 pod 重启后共享数据
- 探索 Kubernetes 和应用程序中的网络
- 熟悉 ROSA 和 Kubernetes 功能
- 根据来自 Horizontal Pod Autoscaler (HPA)的负载自动缩放 pod
先决条件
- 置备的 ROSA 集群
- OpenShift 命令行界面(CLI)
- GitHub 帐户
2.1.2. 关于 OSToy 应用程序 复制链接链接已复制到粘贴板!
OSToy 是一个 Node.js 应用程序,它部署到 ROSA 集群,以帮助探索 Kubernetes 的功能。
这个应用程序有一个用户界面,您可以:
- 将消息写入日志(stdout / stderr)
- 有意使应用程序崩溃以查看自我修复
- 切换存活度探测并监控 OpenShift 行为
- 读取 ConfigMap、secret 和环境变量
- 连接到共享存储时读取和写入文件
- 使用 included 微服务检查网络连接、集群内 DNS 和内部通信
- 使用 HPA 增加负载以查看 pod 的自动扩展
2.1.2.1. OSToy 应用程序图 复制链接链接已复制到粘贴板!
2.1.2.2. 了解 OSToy UI 复制链接链接已复制到粘贴板!
- Pod 名称
- Home: 应用程序主页
- 持久性存储:将数据写入绑定到应用程序的持久性卷
- Config Maps: 显示应用程序可用的 ConfigMap 和 key:value 对
- Secrets : 显示应用程序和 key:value 对可用的 secret
- ENV 变量: 显示应用程序可用的环境变量
- 网络: 网络工具
- Pod 自动扩展: 增加 pod 的负载并测试 Horizontal Pod Autoscaler (HPA)
- ACK S3: Integrate with AWS S3 to read and write objects to a bucket
- 关于: 应用程序信息
2.1.2.3. 实验资源 复制链接链接已复制到粘贴板!
- OSToy 应用源代码
- OSToy 前端容器镜像
- OSToy 微服务容器镜像
部署定义 YAML 文件:
ostoy-frontend-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ostoy-microservice-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ACK S3 的 S3 存储桶清单
s3-bucket.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为简化 OSToy 应用程序的部署,以上部署清单所需的所有对象都分组在一起。对于典型的企业部署,建议为每个 Kubernetes 对象有一个单独的清单文件。
2.2. 使用 Kubernetes 部署 OSToy 应用程序 复制链接链接已复制到粘贴板!
部署应用程序涉及创建容器镜像,将其存储在镜像存储库中,以及定义使用该镜像的 Deployment 对象。
部署应用程序涉及以下步骤:
- 为前端和后端微服务容器创建镜像
- 将容器镜像存储在镜像存储库中
- 为应用程序创建 Kubernetes Deployment 对象
- 部署应用程序
此研讨会侧重于应用程序部署,并使用户运行使用现有镜像的远程文件。
2.2.1. 检索 login 命令 复制链接链接已复制到粘贴板!
流程
运行以下命令确认您已登录到命令行界面(CLI):
rosa whoami
rosa whoami
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您登录到命令行界面,请跳至"创建新项目"。如果您没有登录到命令行界面,请继续这个过程。
- 使用 Web 控制台访问集群。
单击右上角的登录名称旁边的下箭头,然后选择 Copy Login Command。
此时会打开一个新标签页。
- 选择您的验证方法。
- 单击 Display Token。
- 使用此令牌将命令复制到 Log in 下。
在终端中粘贴并运行复制的命令。如果登录成功,您会看到以下确认信息:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 创建新项目 复制链接链接已复制到粘贴板!
使用您的首选接口创建新项目。
2.2.2.1. 使用 CLI 创建新项目 复制链接链接已复制到粘贴板!
流程
运行以下命令,在集群中创建一个名为
ostoy
的新项目:oc new-project ostoy
$ oc new-project ostoy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Now using project "ostoy" on server "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443".
Now using project "ostoy" on server "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443".
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选 :运行以下命令来创建唯一项目名称:
oc new-project ostoy-$(uuidgen | cut -d - -f 2 | tr '[:upper:]' '[:lower:]')
$ oc new-project ostoy-$(uuidgen | cut -d - -f 2 | tr '[:upper:]' '[:lower:]')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2.2. 使用 Web 控制台创建新项目 复制链接链接已复制到粘贴板!
流程
- 在 Web 控制台中,点击 Home → Projects。
在 Projects 页面上,单击 Create Project。
- 在 Create Project 框中,在 Name 字段中输入项目名称。
- 点 Create。
2.2.3. 部署后端微服务 复制链接链接已复制到粘贴板!
微服务为内部 Web 请求提供服务,并返回包含当前主机名和随机生成的颜色字符串的 JSON 对象。
流程
运行以下命令来部署微服务:
oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml deployment.apps/ostoy-microservice created service/ostoy-microservice-svc created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4. 部署前端微服务 复制链接链接已复制到粘贴板!
前端部署将 Node.js 前端用于应用和其他 Kubernetes 对象。
前端部署定义了以下功能:
- 持久性卷声明
- Deployment 对象
- 服务
- Route
- ConfigMaps
- Secrets
流程
运行以下命令部署应用程序前端并创建对象:
oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-frontend-deployment.yaml
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-frontend-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有对象都应成功创建。
2.2.5. 获取到应用程序的路由 复制链接链接已复制到粘贴板!
获取用于访问应用程序的路由。
流程
运行以下命令,获取到应用程序的路由:
oc get route
$ oc get route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD ostoy-route ostoy-route-ostoy.apps.<your-rosa-cluster>.abcd.p1.openshiftapps.com ostoy-frontend-svc <all> None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD ostoy-route ostoy-route-ostoy.apps.<your-rosa-cluster>.abcd.p1.openshiftapps.com ostoy-frontend-svc <all> None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.6. 查看应用程序 复制链接链接已复制到粘贴板!
流程
-
复制上一步中的
ostoy-route-ostoy.apps.<your-rosa-cluster>.abcd.p1.openshiftapps.com
URL 输出。 将复制的 URL 粘贴到网页浏览器中,然后按 Enter 键。您应该会看到应用程序的主页。如果页面没有加载,请确保使用
http
而不是https
。
2.3. 健康检查 复制链接链接已复制到粘贴板!
查看 Kubernetes 如何通过有意崩溃 pod 并对 Kubernetes 存活度探测做出无响应来响应 pod 故障。
2.3.1. 准备您的桌面 复制链接链接已复制到粘贴板!
流程
在 OpenShift web 控制台中,选择 Workloads > Deployments > ostoy-frontend 来查看 OSToy 部署。
2.3.2. 崩溃 pod 复制链接链接已复制到粘贴板!
流程
-
在 OSToy 应用程序 web 控制台中,单击左侧菜单中的 Home,然后在 Crash Pod 框中输入消息,例如,
这是 goodbye!
。 单击 Crash Pod。
pod 崩溃,Kubernetes 重启 pod。
2.3.3. 查看 revived pod 复制链接链接已复制到粘贴板!
流程
从 OpenShift Web 控制台,快速切换到 Deployments 屏幕。您将看到 pod 为黄色,这表示它已关闭。它应快速重新检查并打开蓝色。revival 过程很快发生。
验证
在 web 控制台中,点 Pods > ostoy-frontend-xxxxxxx-xxxx 更改为 pod 屏幕。
单击 Events 子选项卡,并验证容器是否已崩溃并重新启动。
2.3.4. 使应用程序出现故障 复制链接链接已复制到粘贴板!
流程
~~.将 Pod 事件页面保持打开.~~
在 OSToy 应用中,单击 Toggle Health Status 标题中的 Toggle Health Status 标题。观察 Current Health 开关 ,我没有感觉到这一切。
验证
在应用出现故障后,应用将停止响应 200 HTTP 代码
。3 连续失败后,Kubernetes 将停止 pod 并重启它。
- 从 Web 控制台,切回到 pod 事件页面,以查看存活度探测失败并且容器集重启。
下图显示了您将在 Pod 事件页面中看到的内容示例。
A.pod 连续三个失败。
B.Kubernetes 停止 pod。
C.Kubernetes 重启 pod。
2.4. 集群存储的持久性卷 复制链接链接已复制到粘贴板!
{ROSA-classic-first} 和 Red Hat OpenShift Service on AWS (ROSA)支持使用 Amazon Web Services (AWS) Elastic Block Store (EBS) 或 AWS Elastic File System (EFS) 存储持久性卷。
2.4.1. 使用持久性卷 复制链接链接已复制到粘贴板!
使用以下步骤创建文件,将其存储在集群中的持久性卷中,并确认它在 pod 故障和重新创建后仍然存在。
2.4.1.1. 查看持久性卷声明 复制链接链接已复制到粘贴板!
流程
- 导航到集群的 OpenShift Web 控制台。
- 点左侧菜单中的 Storage,然后点 PersistentVolumeClaims 以查看所有持久性卷声明的列表。
点持久性卷声明来查看大小、访问模式、存储类和其他声明详情。
注意访问模式为
ReadWriteOnce
(RWO)。这意味着卷只能挂载到一个节点,pod 或 pod 可以读取和写入卷。
2.4.1.2. 存储您的文件 复制链接链接已复制到粘贴板!
流程
- 在 OSToy app 控制台中,点左侧菜单中的 Persistent Storage。
-
在 Filename 框中,输入带有
.txt
扩展名的文件名,如test-pv.txt
。 -
在 File content 框中,输入文本句子,例如
OpenShift 是自分片 bread! 起的最大事情
。 点 Create file。
- 滚动到 OSToy 应用程序控制台上的现有文件。
点您创建的文件,以查看文件名和内容。
2.4.1.3. 崩溃 pod 复制链接链接已复制到粘贴板!
流程
- 在 OSToy app 控制台中,点击左侧菜单中的 Home。
- 单击 Crash pod。
2.4.1.4. 确认持久性存储 复制链接链接已复制到粘贴板!
流程
- 等待 pod 重新创建。
- 在 OSToy app 控制台中,点左侧菜单中的 Persistent Storage。
查找您创建的文件,并打开该文件来查看并确认内容。
验证
部署 YAML 文件显示我们将 目录 /var/demo_files
挂载到我们的持久性卷声明中。
运行以下命令,检索前端 pod 的名称:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在容器内启动安全 shell (SSH)会话:
oc rsh <pod_name>
$ oc rsh <pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来进入目录:
cd /var/demo_files
$ cd /var/demo_files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 运行以下命令来查看您创建的所有文件:
ls
$ ls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,打开该文件以查看内容:
cat test-pv.txt
$ cat test-pv.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出是否为您在 OSToy 应用程序控制台中输入的文本。
终端示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.1.5. 结束会话 复制链接链接已复制到粘贴板!
流程
-
在终端中键入
exit
退出会话并返回 CLI。
2.5. ConfigMap、secret 和环境变量 复制链接链接已复制到粘贴板!
本教程介绍了如何使用配置映射、secret 和 环境变量 配置 OSToy 应用程序。https://docs.openshift.com/rosa/nodes/pods/nodes-pods-configmaps.html
2.5.1. 使用 ConfigMap 配置 复制链接链接已复制到粘贴板!
配置映射允许您将配置工件与容器镜像内容分离,从而使容器化应用程序可以移植。
流程
在 OSToy app 中,在左侧菜单中,单击 Config Maps,显示 OSToy 应用程序可用的配置映射的内容。代码片段演示了配置映射配置示例:
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. 使用 secret 配置 复制链接链接已复制到粘贴板!
Kubernetes Secret
对象允许您存储和管理敏感信息,如密码、OAuth 令牌和 SSH 密钥。将这些信息放入 secret 中更安全,且更灵活,而不是将其放在 pod 定义或容器镜像中。
流程
在 OSToy app 中,在左侧菜单中,单击 Secrets,显示 OSToy 应用程序可用的 secret 的内容。代码片段演示了 secret 配置示例:
输出示例
USERNAME=my_user PASSWORD=VVNFUk5BTUU9bXlfdXNlcgpQQVNTV09SRD1AT3RCbCVYQXAhIzYzMlk1RndDQE1UUWsKU01UUD1sb2NhbGhvc3QKU01UUF9QT1JUPTI1 SMTP=localhost SMTP_PORT=25
USERNAME=my_user PASSWORD=VVNFUk5BTUU9bXlfdXNlcgpQQVNTV09SRD1AT3RCbCVYQXAhIzYzMlk1RndDQE1UUWsKU01UUD1sb2NhbGhvc3QKU01UUF9QT1JUPTI1 SMTP=localhost SMTP_PORT=25
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 使用环境变量进行配置 复制链接链接已复制到粘贴板!
使用环境变量是在不需要更改代码的情况下更改应用程序行为的一种简单方法。它允许根据环境变量部署同一应用程序的不同行为。Red Hat OpenShift Service on AWS 可让您为 pod 或部署设置、查看和更新环境变量。
流程
在 OSToy app 中,单击左侧菜单中的 ENV Variables,显示 OSToy 应用可用的环境变量。代码片段演示了环境变量配置示例:
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. 网络 复制链接链接已复制到粘贴板!
OSToy 应用程序使用集群内联网来通过微服务来分隔功能。
在此研讨会中,至少有两个独立的 pod,每个 pod 都有自己的服务。一个 pod 充当前端 Web 应用,服务和一个公开访问的路由。其他容器集充当 backend 微服务与服务对象,以便前端容器集能够与微服务通信。
如果存在多个 pod,则不同 pod 间的通信发生。微服务无法从集群和其他命名空间或项目外部访问。微服务的目的是提供内部 Web 请求,并返回包含当前主机名(容器集的名称)和随机生成的颜色字符串的 JSON 对象。这个颜色字符串在 OSToy 应用程序 web 控制台中显示带有颜色的框。
有关网络限制的更多信息,请参阅关于网络策略。
2.6.1. 集群内网络 复制链接链接已复制到粘贴板!
您可以在 OSToy 应用程序中查看您的网络配置。
流程
- 在 OSToy 应用程序 web 控制台中,点左侧菜单中的 Networking。
检查网络配置。标题"Hostname Lookup"演示了为 pod 创建的服务名称如何转换为内部 ClusterIP 地址。
输入在"Hostname Lookup"标题中创建的微服务名称,其格式如下: <
service_name>.<namespace>.svc.cluster.local
。您可以运行以下命令来在ostoy-microservice.yaml
的服务定义中找到微服务名称:oc get service <name_of_service> -o yaml
$ oc get service <name_of_service> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,完整主机名为
ostoy-microservice-svc.ostoy.svc.cluster.local
。返回 IP 地址。在本例中,它是
172.30.165.246
。这是集群内 IP 地址,只能从集群内部访问。
2.7. 扩展应用程序 复制链接链接已复制到粘贴板!
使用 Horizontal Pod Autoscaler (HPA)手动或自动扩展 pod。您还可以扩展集群节点。
先决条件
- 活跃的 ROSA 集群
- 已部署 OSToy 应用程序
2.7.1. 手动 pod 扩展 复制链接链接已复制到粘贴板!
您可以使用以下方法之一手动扩展应用程序的 pod:
- 更改 ReplicaSet 或部署定义
- 使用命令行
- 使用 Web 控制台
此研讨会首先仅将一个 pod 用于微服务。通过在部署定义中定义 1
副本,Kubernetes Replication Controller 会努力保持一个 pod 处于活动状态。然后,您将了解如何使用基于负载的 Horizontal Pod Autoscaler(HPA)定义 pod 自动扩展,并在需要时扩展更多 pod。
流程
- 在 OSToy 应用中,点导航菜单中的 Networking 选项卡。
在"Intra-cluster Communication"部分中,找到随机更改颜色的框。在框中,您会看到微服务的容器集名称。本例中只有一个框,因为只有一个微服务容器集。
运行以下命令,确认只有一个 pod 为微服务运行:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE ostoy-frontend-679cb85695-5cn7x 1/1 Running 0 1h ostoy-microservice-86b4c6f559-p594d 1/1 Running 0 1h
NAME READY STATUS RESTARTS AGE ostoy-frontend-679cb85695-5cn7x 1/1 Running 0 1h ostoy-microservice-86b4c6f559-p594d 1/1 Running 0 1h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 下载 ostoy-microservice-deployment.yaml,并将它保存到本地机器中。
使用以下示例将部署定义改为三个 pod 而不是一个:
spec: selector: matchLabels: app: ostoy-microservice replicas: 3
spec: selector: matchLabels: app: ostoy-microservice replicas: 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用副本更改:
oc apply -f ostoy-microservice-deployment.yaml
$ oc apply -f ostoy-microservice-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您还可以通过进入 Workloads > Deployments > ostoy-microservice > YAML 标签页来编辑 OpenShift Web 控制台中的
ostoy-microservice-
deployment.yaml 文件。运行以下命令确认现在有 3 个 pod:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示微服务有 3 个 pod,而不是仅有 3 个 pod。
输出示例
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 26m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 81s ostoy-microservice-6666dcf455-5z56w 1/1 Running 0 81s ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 26m
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 26m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 81s ostoy-microservice-6666dcf455-5z56w 1/1 Running 0 81s ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 26m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用命令行界面(CLI)或使用 Web 用户界面(UI)来扩展应用程序:
在 CLI 中,运行以下命令,将 pod 数量从
3
减少到 2:oc scale deployment ostoy-microservice --replicas=2
$ oc scale deployment ostoy-microservice --replicas=2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 OpenShift Web 控制台 UI 的导航菜单中点击 Workloads > Deployments > ostoy-microservice。
- 找到中间带有 "3 Pod" 标签的蓝色圆圈。
选择圆圈旁边的箭头会扩展 pod 的数量。选择向下箭头到
2
。
验证
使用 CLI、Web UI 或 OSToy 应用程序检查 pod 数量:
在 CLI 中,通过运行以下命令确认您正在为微服务使用两个 pod:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 75m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 50m ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 75m
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 75m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 50m ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 75m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Web UI 中,选择 Workloads > Deployments > ostoy-microservice。
您还可以通过在 OSToy 应用的导航菜单中选择 Networking 来确认有两个 pod。这两个 pod 应该有两个带颜色的框。
2.7.2. Pod 自动扩展 复制链接链接已复制到粘贴板!
Red Hat OpenShift Service on AWS 提供了一个 Horizontal Pod Autoscaler (HPA)。HPA 根据需要使用指标来增加或减少 pod 数量。
流程
从 Web UI 的导航菜单中,选择 Pod 自动扩展。
运行以下命令来创建 HPA:
oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
$ oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令创建一个 HPA,维护由 ostoy-microservice 部署控制的 1 到 10 个 pod 副本。在部署过程中,HPA 会增加和减少副本数,以保持所有 pod 的平均 CPU 使用量为 80% 和 40 millicore。
在 Pod Auto Scaling > Horizontal Pod Autoscaling 页面上,选择 increased the load。
重要由于增加负载会生成 CPU 密集型计算,页面可能会变得无响应。这是预期的响应。只需单击 增加一次加载 一次。有关此过程的更多信息,请参见 微服务的 GitHub 存储库。
几分钟后,新 pod 会显示在由带颜色框表示的页面中。
注意该页面可能会出现滞后。
验证
使用以下方法之一检查您的 pod 数量:
在 OSToy 应用程序的 Web UI 中,请参阅远程 pod 框:
由于只有一个 pod,因此增加工作负载应该会触发增加 pod。
在 CLI 中运行以下命令:
oc get pods --field-selector=status.phase=Running | grep microservice
oc get pods --field-selector=status.phase=Running | grep microservice
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ostoy-microservice-79894f6945-cdmbd 1/1 Running 0 3m14s ostoy-microservice-79894f6945-mgwk7 1/1 Running 0 4h24m ostoy-microservice-79894f6945-q925d 1/1 Running 0 3m14s
ostoy-microservice-79894f6945-cdmbd 1/1 Running 0 3m14s ostoy-microservice-79894f6945-mgwk7 1/1 Running 0 4h24m ostoy-microservice-79894f6945-q925d 1/1 Running 0 3m14s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以从 OpenShift Cluster Manager 验证自动扩展
- 在 OpenShift Web 控制台导航菜单中点 Observe > Dashboards。
在控制面板中,选择 Kubernetes / Compute Resources / Namespace (Pods) 和命名空间 ostoy。
图会出现显示 CPU 和内存中的资源使用情况。顶部图显示每个 pod 的最新 CPU 消耗,较低图表示内存用量。下面列出了图中的 callout:
- 负载增加(A)。
- 创建了两个新 pod (B 和 C)。
- 每个图的厚性代表 CPU 消耗,并指示哪些 pod 处理更多负载。
负载减少(D),pod 已被删除。
2.7.3. 节点自动扩展 复制链接链接已复制到粘贴板!
Red Hat OpenShift Service on AWS 允许您使用 节点自动扩展。在这种情况下,您将使用具有集群无法处理的大型工作负载的作业创建一个新项目。启用自动扩展后,当负载大于您当前容量时,集群将自动创建新的节点来处理负载。
先决条件
- 机器池上启用了自动扩展。
流程
运行以下命令,创建一个名为
autoscale-ex
的新项目:oc new-project autoscale-ex
$ oc new-project autoscale-ex
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建作业:
oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
$ oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 几个 minuts 后,运行以下命令来查看 pod:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
由于有许多 pod 处于
Pending
状态,因此这个状态会触发自动扩展在机器池中创建更多节点。允许时间创建这些 worker 节点。 几分钟后,使用以下命令查看您现在有多少 worker 节点:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以看到自动创建 worker 节点来处理工作负载。
输入以下命令返回到 OSToy 应用程序:
oc project ostoy
$ oc project ostoy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. S2I 部署 复制链接链接已复制到粘贴板!
集成的 Source-to-Image (S2I)构建器是在 OpenShift 中部署应用的一种方法。S2I 是一个用于构建可重复生成的 Docker 格式容器镜像的工具。如需更多信息,请参阅 OpenShift 概念。
先决条件
- ROSA 集群
2.8.1. 检索您的登录命令 复制链接链接已复制到粘贴板!
流程
运行以下命令确认您已登录到命令行界面(CLI):
rosa whoami
rosa whoami
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您登录到命令行界面,请跳至"创建新项目"。如果您没有登录到命令行界面,请继续这个过程。
如果您没有登录命令行界面(CLI),在 OpenShift Cluster Manager 中,单击右上角的名称旁边的下箭头,然后选择 Copy Login Command。
- 此时会打开一个新标签页。输入您的用户名和密码,然后选择身份验证方法。
- 点 Display Token
- 将命令复制到"使用此令牌登录"。
在终端中运行复制的命令,登录 CLI。
输入示例
oc login --token=RYhFlXXXXXXXXXXXX --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443
$ oc login --token=RYhFlXXXXXXXXXXXX --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided. You don't have any projects. You can try to create a new project, by running oc new-project <project name>
Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided. You don't have any projects. You can try to create a new project, by running oc new-project <project name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.2. 创建新项目 复制链接链接已复制到粘贴板!
运行以下命令,通过 CLI 创建新项目:
oc new-project ostoy-s2i
$ oc new-project ostoy-s2i
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8.3. 对 OSToy 存储库进行分叉 复制链接链接已复制到粘贴板!
要根据源代码的更改触发自动构建,您必须设置 GitHub Webhook。当您将代码推送到 GitHub 存储库时,webhook 将触发 S2I 构建。要设置 webhook,您必须首先 fork 存储库。
将 <UserName
> 替换为本指南中的以下 URL 的 GitHub 用户名。
2.8.4. 使用 S2i 在集群中部署 OSToy 复制链接链接已复制到粘贴板!
流程
向 OpenShift 添加机密。
这个示例模拟
.env
文件。文件可轻松直接移到 OpenShift 环境中,甚至可以在机密中重命名。运行以下命令,将 <
UserName>
; 替换为您的 GitHub 用户名:oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/secret.yaml
$ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将 ConfigMap 添加到 OpenShift。
本例模拟 HAProxy 配置文件,该文件通常用于覆盖 OpenShift 应用中的默认配置。可以在 ConfigMap 中重命名文件。
运行以下命令,将 <
UserName>
; 替换为您的 GitHub 用户名:oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/configmap.yaml
$ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
部署微服务。
您必须部署微服务,以确保服务环境变量可从 UI 应用使用。
--context-dir
构建 Git 存储库中的微服务
目录中定义的应用。app
标签确保用户界面(UI)应用和微服务都在 OpenShift UI 中分组。运行以下命令来创建微服务,将 <
UserName>
替换为您的 GitHub 用户名:oc new-app https://github.com/<UserName>/ostoy \ --context-dir=microservice \ --name=ostoy-microservice \ --labels=app=ostoy
$ oc new-app https://github.com/<UserName>/ostoy \ --context-dir=microservice \ --name=ostoy-microservice \ --labels=app=ostoy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
检查微服务的状态。
运行以下命令,检查微服务是否已创建并正确运行:
oc status
$ oc status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待微服务已被成功部署。您还可以通过 Web UI 对其进行检查。
部署前端 UI。
应用程序依赖于几个环境变量来定义外部设置。
附加 secret 和 ConfigMap 并创建 PersistentVolume:
oc new-app https://github.com/<UserName>/ostoy \ --env=MICROSERVICE_NAME=OSTOY_MICROSERVICE
$ oc new-app https://github.com/<UserName>/ostoy \ --env=MICROSERVICE_NAME=OSTOY_MICROSERVICE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来更新部署:
oc patch deployment ostoy --type=json -p \ '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "remove", "path": "/spec/strategy/rollingUpdate"}]'
$ oc patch deployment ostoy --type=json -p \ '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "remove", "path": "/spec/strategy/rollingUpdate"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置存活度探测。
创建存活度探测,以确保容器集在应用中出现错误时重新启动。
运行以下命令:
oc set probe deployment ostoy --liveness --get-url=http://:8080/health
$ oc set probe deployment ostoy --liveness --get-url=http://:8080/health
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将 secret、ConfigMap 和持久性卷附加到部署。
运行以下命令来附加 secret:
oc set volume deployment ostoy --add \ --secret-name=ostoy-secret \ --mount-path=/var/secret
$ oc set volume deployment ostoy --add \ --secret-name=ostoy-secret \ --mount-path=/var/secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来附加 ConfigMap:
oc set volume deployment ostoy --add \ --configmap-name=ostoy-config \ -m /var/config
$ oc set volume deployment ostoy --add \ --configmap-name=ostoy-config \ -m /var/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建并附加您的持久性卷:
oc set volume deployment ostoy --add \ --type=pvc \ --claim-size=1G \ -m /var/demo_files
$ oc set volume deployment ostoy --add \ --type=pvc \ --claim-size=1G \ -m /var/demo_files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将 UI 应用公开为 OpenShift Route。
运行以下命令,将应用程序部署为使用包含的 TLS 通配符证书的 HTTPS 应用程序:
oc create route edge --service=ostoy --insecure-policy=Redirect
$ oc create route edge --service=ostoy --insecure-policy=Redirect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下方法浏览应用程序:
运行以下命令,使用 OSToy 应用程序打开 Web 浏览器:
python -m webbrowser "$(oc get route ostoy -o template --template='https://{{.spec.host}}')"
$ python -m webbrowser "$(oc get route ostoy -o template --template='https://{{.spec.host}}')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令获取应用程序的路由,并将路由复制并粘贴到您的浏览器中:
oc get route
$ oc get route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. 使用 Source-to-Image (S2I) Webhook 进行自动化部署 复制链接链接已复制到粘贴板!
使用 webhook 更改源代码时,会自动触发构建和部署。有关此过程的更多信息,请参阅 触发构建。
流程
运行以下命令来获取 GitHub webhook 触发器 secret:
oc get bc/ostoy-microservice -o=jsonpath='{.spec.triggers..github.secret}'
$ oc get bc/ostoy-microservice -o=jsonpath='{.spec.triggers..github.secret}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
`o_3x9M1qoI2Wj_cz1WiK`
`o_3x9M1qoI2Wj_cz1WiK`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要此过程的后续步骤中需要使用此机密。
运行以下命令,从 OSToy 的 buildconfig 获取 GitHub webhook 触发器 URL:
oc describe bc/ostoy-microservice
$ oc describe bc/ostoy-microservice
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
[...] Webhook GitHub: URL: https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy/webhooks/<secret>/github [...]
[...] Webhook GitHub: URL: https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy/webhooks/<secret>/github [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 GitHub Webhook URL 中,将 &
lt;secret&
gt; 文本替换为您检索到的 secret。您的 URL 将类似以下示例的输出:输出示例
https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy-microservice/webhooks/o_3x9M1qoI2Wj_czR1WiK/github
https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy-microservice/webhooks/o_3x9M1qoI2Wj_czR1WiK/github
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 GitHub 仓库中设置 webhook URL。
在存储库中,点 Settings > Webhooks > Add webhook。
-
使用 "Payload URL" 字段中包含的
Secret
粘贴 GitHub Webhook URL。 -
将 "Content type" 更改为
application/json
。 点 Add webhook 按钮。
您应该看到一条来自 GitHub 的消息,说明您的 Webhook 已配置成功。现在,每当您将更改推送到 GitHub 存储库时,新构建都会自动启动,成功构建后都会启动新部署。
在源代码中进行更改。任何更改都会自动触发构建和部署。在本例中,表示 OSToy 应用程序状态的颜色会被随机选择。要测试配置,请更改框以显示 grayscale。
- 进入存储库 https://github.com/<username>/ostoy/blob/master/microservice/app.js 中的源代码。
- 编辑该文件。
-
注释掉第 8 行(包含
randomColor = getRandomColor ();
)。 取消注释第 9 行(包含
randomColor = getRandomGrayScaleColor ();
)。7 app.get('/', function(request, response) { 8 //let randomColor = getRandomColor(); // <-- comment this 9 let randomColor = getRandomGrayScaleColor(); // <-- uncomment this 10 11 response.writeHead(200, {'Content-Type': 'application/json'});
7 app.get('/', function(request, response) { 8 //let randomColor = getRandomColor(); // <-- comment this 9 let randomColor = getRandomGrayScaleColor(); // <-- uncomment this 10 11 response.writeHead(200, {'Content-Type': 'application/json'});
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输入更新的消息,如"changed box to grayscale colors"。
- 单击底部的 Commit,将更改提交到 main 分支。
在集群的 Web UI 中,点 Builds > Builds 来确定构建的状态。构建完成后,部署将开始。您还可以通过在终端中运行
oc status
来检查状态。部署完成后,返回到浏览器中的 OSToy 应用程序。访问左侧的 Networking 菜单项。box 颜色现在限制为灰色。
Legal Notice
复制链接链接已复制到粘贴板!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.