第 2 章 OpenShift CLI (oc)
2.1. OpenShift CLI 入门
2.1.1. 关于 OpenShift CLI
					使用 OpenShift CLI (oc),您可以从终端创建应用程序并管理 Red Hat OpenShift Service on AWS 项目。OpenShift CLI 在以下情况下是理想的选择:
				
- 直接使用项目源代码。
- 编写 Red Hat OpenShift Service on AWS 操作脚本
- 在管理项目时,受带宽资源的限制,Web 控制台无法使用。
2.1.2. 安装 OpenShift CLI
					您可以通过下载二进制文件或使用 RPM 来安装 OpenShift CLI(oc)。
				
2.1.2.1. 安装 OpenShift CLI
						您可以安装 OpenShift CLI (oc)来使用命令行界面与 Red Hat OpenShift Service on AWS 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc。
					
							如果安装了旧版本的 oc,则无法使用 Red Hat OpenShift Service on AWS 中的所有命令。
						
							下载并安装新版本的 oc。
						
2.1.2.1.1. 在 Linux 上安装 OpenShift CLI
							您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 进入到红帽客户门户网站上的 Download OpenShift Container Platform 页。
- 从 Product Variant 列表中选择构架。
- 从 Version 列表中选择适当的版本。
- 点 OpenShift v4 Linux Clients 条目旁的 Download Now 来保存文件。
- 解包存档: - tar xvf <file> - $ tar xvf <file>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - oc二进制文件放到- PATH 中的目录中。- 要查看您的 - PATH,请执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 安装 OpenShift CLI 后,可以使用 - oc命令:- oc <command> - $ oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
2.1.2.1.2. 在 Windows 上安装 OpenShift CLI
							您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 导航到红帽客户门户网站上的 Download OpenShift Container Platform 页面。
- 从 Version 列表中选择适当的版本。
- 点 OpenShift v4 Windows Client 条目旁的 Download Now 来保存文件。
- 使用 ZIP 程序解压存档。
- 将 - oc二进制文件移到- PATH 中的目录中。- 要查看您的 - PATH,请打开命令提示并执行以下命令:- path - C:\> path- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 安装 OpenShift CLI 后,可以使用 - oc命令:- oc <command> - C:\> oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
2.1.2.1.3. 在 macOS 上安装 OpenShift CLI
							您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 导航到红帽客户门户网站上的 Download OpenShift Container Platform。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4 macOS Clients 条目旁的 Download Now 来保存文件。
- 解包和解压存档。
- 将 - oc二进制文件移到 PATH 的目录中。- 要查看您的 - PATH,请打开终端并执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 使用 - oc命令验证安装:- oc <command> - $ oc <command>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
2.1.2.2. 使用 Web 控制台安装 OpenShift CLI
						您可以安装 OpenShift CLI (oc),以通过 Web 控制台与 Red Hat OpenShift Service on AWS 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc。
					
							如果安装了旧版本的 oc,则无法使用 Red Hat OpenShift Service on AWS 中的所有命令。下载并安装新版本的 oc。
						
2.1.2.2.1. 使用 Web 控制台在 Linux 上安装 OpenShift CLI
							您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 从 Web 控制台,单击 ?。 
- 单击 Command Line Tools。 
- 
									为您的 Linux 平台选择适当的 oc二进制文件,然后点 Download oc for Linux。
- 保存该文件。
- 解包存档。 - tar xvf <file> - $ tar xvf <file>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - oc二进制文件移到- PATH 中的目录中。- 要查看您的 - PATH,请执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
							安装 OpenShift CLI 后,可以使用 oc 命令:
						
oc <command>
$ oc <command>2.1.2.2.2. 使用 Web 控制台在 Windows 上安装 OpenShift CLI
							您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 从 Web 控制台,单击 ?。 
- 单击 Command Line Tools。 
- 
									为 Windows 平台选择 oc二进制文件,然后单击 Download oc for Windows for x86_64。
- 保存该文件。
- 使用 ZIP 程序解压存档。
- 将 - oc二进制文件移到- PATH 中的目录中。- 要查看您的 - PATH,请打开命令提示并执行以下命令:- path - C:\> path- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
							安装 OpenShift CLI 后,可以使用 oc 命令:
						
oc <command>
C:\> oc <command>2.1.2.2.3. 使用 Web 控制台在 macOS 上安装 OpenShift CLI
							您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。
						
流程
- 从 Web 控制台,单击 ?。 
- 单击 Command Line Tools。 
- 为 macOS 平台选择 - oc二进制文件,然后单击 Download oc for Mac for x86_64。注意- 对于 macOS arm64,点 Download oc for ARM 64。 
- 保存该文件。
- 解包和解压存档。
- 将 - oc二进制文件移到 PATH 的目录中。- 要查看您的 - PATH,请打开终端并执行以下命令:- echo $PATH - $ echo $PATH- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
							安装 OpenShift CLI 后,可以使用 oc 命令:
						
oc <command>
$ oc <command>2.1.2.3. 使用 RPM 安装 OpenShift CLI
						对于 Red Hat Enterprise Linux (RHEL),如果您的红帽帐户上已有有效的 Red Hat OpenShift Service on AWS 订阅,您可以将 OpenShift CLI (oc)安装为 RPM。
					
							您需要下载二进制文件,为 RHEL 9 安装 oc。Red Hat Enterprise Linux (RHEL) 9 不支持使用 RPM 软件包安装 oc。
						
先决条件
- 必须具有 root 或 sudo 权限。
流程
- 使用 Red Hat Subscription Manager 注册: - subscription-manager register - # subscription-manager register- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取最新的订阅数据: - subscription-manager refresh - # subscription-manager refresh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 列出可用的订阅: - subscription-manager list --available --matches '*OpenShift*' - # subscription-manager list --available --matches '*OpenShift*'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在上一命令的输出中,找到 Red Hat OpenShift Service on AWS 订阅的池 ID,并把订阅附加到注册的系统: - subscription-manager attach --pool=<pool_id> - # subscription-manager attach --pool=<pool_id>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 启用 Red Hat OpenShift Service on AWS 4 所需的存储库。 - subscription-manager repos --enable="rhocp-4-for-rhel-8-x86_64-rpms" - # subscription-manager repos --enable="rhocp-4-for-rhel-8-x86_64-rpms"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 安装 - openshift-clients软件包:- yum install openshift-clients - # yum install openshift-clients- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 
								使用 oc命令验证安装:
oc <command>
$ oc <command>2.1.2.4. 使用 Homebrew 安装 OpenShift CLI
						对于 macOS,您可以使用 Homebrew 软件包管理器安装 OpenShift CLI(oc)。
					
先决条件
- 
								已安装 Homebrew(brew)。
流程
- 运行以下命令来安装 openshift-cli 软件包: - brew install openshift-cli - $ brew install openshift-cli- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 
								使用 oc命令验证安装:
oc <command>
$ oc <command>2.1.3. 登录到 OpenShift CLI
					您可以登录到 OpenShift CLI(oc)以访问和管理集群。
				
先决条件
- 您必须有权访问 Red Hat OpenShift Service on AWS 集群。
- 
							已安装 OpenShift CLI (oc)。
						要访问只能通过 HTTP 代理服务器访问的集群,可以设置 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 变量。oc CLI 会使用这些环境变量以便所有与集群的通信都通过 HTTP 代理进行。
					
只有在使用 HTTPS 传输时,才会发送身份验证标头。
流程
- 输入 - oc login命令并传递用户名:- oc login -u user1 - $ oc login -u user1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 提示时,请输入所需信息: - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
						如果登录到 web 控制台,您可以生成包含令牌和服务器信息的 oc login 命令。您可以使用命令登录到 OpenShift CLI (oc),而无需交互式提示。要生成 命令,请从 web 控制台右上角的用户名下拉菜单中选择 Copy login command。
					
您现在可以创建项目或执行其他命令来管理集群。
2.1.4. 使用 Web 浏览器登录 OpenShift CLI
					您可以使用 Web 浏览器访问和管理集群来登录 OpenShift CLI (oc)。这可以使用户避免将其访问令牌插入到命令行中。
				
通过 Web 浏览器登录 CLI,在 localhost 上使用 HTTP (而非 HTTPS)运行服务器;在多用户工作站中请谨慎使用。
先决条件
- 您必须有权访问 Red Hat OpenShift Service on AWS 集群。
- 
							已安装 OpenShift CLI(oc)。
- 已安装浏览器。
流程
- 输入 - oc login命令,使用- --web标志:- oc login <cluster_url> --web - $ oc login <cluster_url> --web- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 另外,您可以指定服务器 URL 和回调端口。例如,oc login <cluster_url> --web --callback-port 8280 localhost:8443。
 
- Web 浏览器会自动打开。如果没有,请点命令输出中的链接。如果没有指定 Red Hat OpenShift Service on AWS 服务器 - oc,请尝试打开当前- oc配置文件中指定的集群的 Web 控制台。如果没有- oc配置,- oc会以交互方式提示输入服务器 URL。- 输出示例 - Opening login URL in the default browser: https://openshift.example.com Opening in existing browser session. - Opening login URL in the default browser: https://openshift.example.com Opening in existing browser session.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果有多个身份提供程序可用,请从提供的选项中选择您的选择。
- 
							在对应的浏览器字段中输入您的用户名和密码。登录后,浏览器会显示 access token received successfully; please return to your terminal。
- 检查 CLI 是否有登录确认。 - 输出示例 - Login successful. You don't have any projects. You can try to create a new project, by running oc new-project <projectname>- Login successful. You don't have any projects. You can try to create a new project, by running oc new-project <projectname>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
Web 控制台默认为前面会话中使用的配置集。要在 Administrator 和 Developer 配置集间切换,请登出 Red Hat OpenShift Service on AWS Web 控制台并清除缓存。
您现在可以创建项目或执行其他命令来管理集群。
2.1.5. 使用 OpenShift CLI
参阅以下部分以了解如何使用 CLI 完成常见任务。
2.1.5.1. 创建一个项目
						使用oc new-project命令创建新项目。
					
oc new-project my-project
$ oc new-project my-project输出示例
Now using project "my-project" on server "https://openshift.example.com:6443".
Now using project "my-project" on server "https://openshift.example.com:6443".2.1.5.2. 创建一个新的应用程序
						使用oc new-app命令创建新应用程序。
					
oc new-app https://github.com/sclorg/cakephp-ex
$ oc new-app https://github.com/sclorg/cakephp-ex输出示例
--> Found image 40de956 (9 days old) in imagestream "openshift/php" under tag "7.2" for "php"
...
    Run 'oc status' to view your app.
--> Found image 40de956 (9 days old) in imagestream "openshift/php" under tag "7.2" for "php"
...
    Run 'oc status' to view your app.2.1.5.3. 查看 pod
						使用oc get pods命令查看当前项目的 pod。
					
							当您在 pod 中运行 oc 且没有指定命名空间时,默认使用 pod 的命名空间。
						
oc get pods -o wide
$ oc get pods -o wide输出示例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE cakephp-ex-1-build 0/1 Completed 0 5m45s 10.131.0.10 ip-10-0-141-74.ec2.internal <none> cakephp-ex-1-deploy 0/1 Completed 0 3m44s 10.129.2.9 ip-10-0-147-65.ec2.internal <none> cakephp-ex-1-ktz97 1/1 Running 0 3m33s 10.128.2.11 ip-10-0-168-105.ec2.internal <none>
NAME                  READY   STATUS      RESTARTS   AGE     IP            NODE                           NOMINATED NODE
cakephp-ex-1-build    0/1     Completed   0          5m45s   10.131.0.10   ip-10-0-141-74.ec2.internal    <none>
cakephp-ex-1-deploy   0/1     Completed   0          3m44s   10.129.2.9    ip-10-0-147-65.ec2.internal    <none>
cakephp-ex-1-ktz97    1/1     Running     0          3m33s   10.128.2.11   ip-10-0-168-105.ec2.internal   <none>2.1.5.4. 查看 pod 日志
						使用oc logs命令查看特定 pod 的日志。
					
oc logs cakephp-ex-1-deploy
$ oc logs cakephp-ex-1-deploy输出示例
--> Scaling cakephp-ex-1 to 1 --> Success
--> Scaling cakephp-ex-1 to 1
--> Success2.1.5.5. 查看当前项目
						使用oc project命令查看当前项目。
					
oc project
$ oc project输出示例
Using project "my-project" on server "https://openshift.example.com:6443".
Using project "my-project" on server "https://openshift.example.com:6443".2.1.5.6. 查看当前项目的状态
						使用 oc status 命令查看有关当前项目的信息,如服务、部署和构建配置。
					
oc status
$ oc status输出示例
2.1.5.7. 列出支持的 API 资源
						使用oc api-resources命令查看服务器上支持的 API 资源列表。
					
oc api-resources
$ oc api-resources输出示例
NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap ...
NAME                                  SHORTNAMES       APIGROUP                              NAMESPACED   KIND
bindings                                                                                     true         Binding
componentstatuses                     cs                                                     false        ComponentStatus
configmaps                            cm                                                     true         ConfigMap
...2.1.6. 获得帮助
您可以使用以下方法获得 CLI 命令和 Red Hat OpenShift Service on AWS 资源的帮助:
- 使用 - oc help获取所有可用 CLI 命令的列表和描述:- 示例:获取 CLI 的常规帮助信息 - oc help - $ oc help- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - --help标志获取有关特定CLI命令的帮助信息:- 示例:获取 - oc create命令的帮助信息- oc create --help - $ oc create --help- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - oc explain命令查看特定资源的描述信息和项信息:- 示例:查看 - Pod资源的文档- oc explain pods - $ oc explain pods- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
2.1.7. 注销 OpenShift CLI
您可以注销 OpenShift CLI 以结束当前会话。
- 使用 - oc logout命令。- oc logout - $ oc logout- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Logged "user1" out on "https://openshift.example.com" - Logged "user1" out on "https://openshift.example.com"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
这将从服务器中删除已保存的身份验证令牌,并将其从配置文件中删除。
 
    