×

关于 OpenShift CLI

使用 OpenShift CLI (oc),您可以从终端创建应用程序和管理 Red Hat OpenShift Service on AWS (ROSA) 项目。OpenShift CLI 在以下情况下非常理想:

  • 直接使用项目源代码

  • 编写 ROSA 操作脚本

  • 在带宽资源受限且 Web 控制台不可用时管理项目

安装 OpenShift CLI

您可以通过下载二进制文件或使用 RPM 来安装 OpenShift CLI (oc)。

安装 OpenShift CLI

您可以安装 OpenShift CLI (oc) 以通过命令行界面与 ROSA 交互。您可以在 Linux、Windows 或 macOS 上安装 oc

如果您安装了早期版本的 oc,则无法使用它来完成 ROSA 中的所有命令。请下载并安装新版本的 oc

在 Linux 上安装 OpenShift CLI

您可以使用以下步骤在 Linux 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 在 Red Hat 客户门户网站上导航到Red Hat OpenShift Service on AWS 下载页面

  2. 从“产品变体”下拉列表中选择体系结构。

  3. 从“版本”下拉列表中选择相应的版本。

  4. 单击“OpenShift v Linux 客户端”条目旁边的“立即下载”并保存文件。

  5. 解压归档文件

    $ tar xvf <file>
  6. oc 二进制文件放置在 PATH 中的目录中。

    要检查您的 PATH,请执行以下命令:

    $ echo $PATH
验证
  • 安装 OpenShift CLI 后,可以使用 oc 命令。

    $ oc <command>

在 Windows 上安装 OpenShift CLI

您可以使用以下步骤在 Windows 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 在 Red Hat 客户门户网站上导航到Red Hat OpenShift Service on AWS 下载页面

  2. 从“版本”下拉列表中选择相应的版本。

  3. 单击“OpenShift v Windows 客户端”条目旁边的“立即下载”并保存文件。

  4. 使用 ZIP 程序解压缩归档文件。

  5. oc 二进制文件移动到 PATH 中的目录。

    要检查您的 PATH,请打开命令提示符并执行以下命令:

    C:\> path
验证
  • 安装 OpenShift CLI 后,可以使用 oc 命令。

    C:\> oc <command>

在 macOS 上安装 OpenShift CLI

您可以使用以下步骤在 macOS 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 在 Red Hat 客户门户网站上导航到Red Hat OpenShift Service on AWS 下载页面

  2. 从“版本”下拉列表中选择相应的版本。

  3. 单击“OpenShift v macOS 客户端”条目旁边的“立即下载”并保存文件。

    对于 macOS arm64,请选择“OpenShift v macOS arm64 客户端”条目。

  4. 解压归档文件。

  5. oc 二进制文件移动到 PATH 上的目录。

    要检查您的 PATH,请打开终端并执行以下命令:

    $ echo $PATH
验证
  • 使用 oc 命令验证您的安装

    $ oc <command>

使用 Web 控制台安装 OpenShift CLI

您可以安装 OpenShift CLI (oc) 以通过 Web 控制台与 Red Hat OpenShift Service on AWS (ROSA) 交互。您可以在 Linux、Windows 或 macOS 上安装 oc

如果您安装了早期版本的 oc,则无法使用它来完成 ROSA 中的所有命令。请下载并安装新版本的 oc

使用 Web 控制台在 Linux 上安装 OpenShift CLI

您可以使用以下步骤在 Linux 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 从 OpenShift 集群管理器上的**下载**页面下载适合您操作系统的最新版本 oc CLI。

  2. 从下载的归档文件中解压 oc 二进制文件。

    $ tar xvf <file>
  3. oc 二进制文件移动到 PATH 中的目录。

    要检查您的 PATH,请执行以下命令:

    $ echo $PATH

安装 OpenShift CLI 后,可以使用 oc 命令。

$ oc <command>

使用 Web 控制台在 Windows 上安装 OpenShift CLI

您可以使用以下步骤在 Windows 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 从 OpenShift 集群管理器上的**下载**页面下载适合您操作系统的最新版本 oc CLI。

  2. 从下载的归档文件中解压 oc 二进制文件。

  3. oc 二进制文件移动到 PATH 中的目录。

    要检查您的 PATH,请打开命令提示符并执行以下命令:

    C:\> path

安装 OpenShift CLI 后,可以使用 oc 命令。

C:\> oc <command>

使用 Web 控制台在 macOS 上安装 OpenShift CLI

您可以使用以下步骤在 macOS 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 从 OpenShift 集群管理器上的**下载**页面下载适合您操作系统的最新版本 oc CLI。

  2. 从下载的归档文件中解压 oc 二进制文件。

  3. oc 二进制文件移动到 PATH 上的目录。

    要检查您的 PATH,请打开终端并执行以下命令:

    $ echo $PATH

安装 OpenShift CLI 后,可以使用 oc 命令。

$ oc <command>

使用 RPM 安装 OpenShift CLI

对于 Red Hat Enterprise Linux (RHEL),如果您在 Red Hat 帐户上有活动的 Red Hat OpenShift Service on AWS (ROSA) 订阅,则可以将 OpenShift CLI (oc) 安装为 RPM。

您必须通过下载二进制文件来安装 RHEL 9 的 oc。使用 RPM 包安装 oc 不受 Red Hat Enterprise Linux (RHEL) 9 支持。

先决条件
  • 必须具有 root 或 sudo 权限。

步骤
  1. 在 Red Hat Subscription Manager 中注册

    # subscription-manager register
  2. 提取最新的订阅数据

    # subscription-manager refresh
  3. 列出可用的订阅

    # subscription-manager list --available --matches '*OpenShift*'
  4. 在先前命令的输出中,找到 ROSA 订阅的池 ID 并将订阅附加到已注册的系统

    # subscription-manager attach --pool=<pool_id>
  5. 启用 ROSA 需要的存储库。

    # subscription-manager repos --enable="rhocp--for-rhel-8-x86_64-rpms"
  6. 安装 openshift-clients

    # yum install openshift-clients
验证
  • 使用 oc 命令验证您的安装

$ oc <command>

使用 Homebrew 安装 OpenShift CLI

对于 macOS,您可以使用Homebrew 包管理器安装 OpenShift CLI (oc)。

先决条件
  • 您必须安装 Homebrew (brew)。

步骤
  • 通过运行以下命令来安装openshift-cli包:

    $ brew install openshift-cli
验证
  • 使用 oc 命令验证您的安装

$ oc <command>

登录 OpenShift CLI

您可以登录 OpenShift CLI (oc) 以访问和管理您的集群。

先决条件
  • 您必须可以访问 ROSA 集群。

  • OpenShift CLI (oc) 已安装。

要访问只能通过 HTTP 代理服务器访问的集群,您可以设置 HTTP_PROXYHTTPS_PROXYNO_PROXY 变量。oc CLI 会遵守这些环境变量,以便所有与集群的通信都通过 HTTP 代理进行。

只有在使用 HTTPS 传输时才会发送身份验证标头。

步骤
  1. 输入oc login命令并传入用户名

    $ oc login -u user1
  2. 出现提示时,输入所需信息

    示例输出
    Server [http://127.0.0.1:8443]: https://openshift.example.com:6443 (1)
    The server uses a certificate signed by an unknown authority.
    You can bypass the certificate check, but any data you send to the server could be intercepted by others.
    Use insecure connections? (y/n): y (2)
    
    Authentication required for https://openshift.example.com:6443 (openshift)
    Username: user1
    Password: (3)
    Login successful.
    
    You don't have any projects. You can try to create a new project, by running
    
        oc new-project <projectname>
    
    Welcome! See 'oc help' to get started.
    1 输入ROSA服务器URL。
    2 输入是否使用不安全连接。
    3 输入用户的密码。

如果您已登录到 Web 控制台,您可以生成包含您的令牌和服务器信息的oc login命令。您可以使用此命令登录到 OpenShift CLI,无需交互式提示。要生成命令,请从 Web 控制台右上角的用户名下拉菜单中选择**复制登录命令**。

您现在可以创建项目或发出其他命令来管理您的集群。

使用 Web 浏览器登录 OpenShift CLI

您可以借助 Web 浏览器登录到 OpenShift CLI (oc) 以访问和管理您的集群。这允许用户避免将访问令牌插入命令行。

通过 Web 浏览器登录 CLI 会在 localhost 上运行使用 HTTP(而非 HTTPS)的服务器;在多用户工作站上使用时请谨慎。

先决条件
  • 您必须能够访问 AWS 上的 Red Hat OpenShift Service 集群。

  • 您必须已安装 OpenShift CLI (oc)。

  • 您必须已安装浏览器。

步骤
  1. 使用--web标志输入oc login命令

    $ oc login <cluster_url> --web (1)
    1 可以选择指定服务器 URL 和回调端口。例如,oc login <cluster_url> --web --callback-port 8280 localhost:8443
  2. Web 浏览器会自动打开。如果未打开,请单击命令输出中的链接。如果您未指定 AWS 上的 Red Hat OpenShift Service 服务器,oc 将尝试打开当前oc配置文件中指定的集群的 Web 控制台。如果不存在oc配置,oc将交互式地提示输入服务器 URL。

    示例输出
    Opening login URL in the default browser: https://openshift.example.com
    Opening in existing browser session.
  3. 如果有多个身份提供程序可用,请选择提供的选项中的一个。

  4. 在相应的浏览器字段中输入您的用户名和密码。登录后,浏览器将显示文本access token received successfully; please return to your terminal

  5. 检查 CLI 以确认登录。

    示例输出
    Login successful.
    
    You don't have any projects. You can try to create a new project, by running
    
        oc new-project <projectname>
    

Web 控制台默认为上一会话中使用的配置文件。要在管理员和开发人员配置文件之间切换,请注销 AWS 上的 Red Hat OpenShift Service Web 控制台并清除缓存。

您现在可以创建项目或发出其他命令来管理您的集群。

使用 OpenShift CLI

查看以下部分,了解如何使用 CLI 完成常见任务。

创建项目

使用oc new-project命令创建一个新项目。

$ oc new-project my-project
示例输出
Now using project "my-project" on server "https://openshift.example.com:6443".

创建新的应用程序

使用oc new-app命令创建一个新的应用程序。

$ 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.

查看 Pod

使用oc get pods命令查看当前项目的 Pod。

当您在 Pod 内运行oc并且未指定命名空间时,默认情况下将使用 Pod 的命名空间。

$ 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>

查看 Pod 日志

使用oc logs命令查看特定 Pod 的日志。

$ oc logs cakephp-ex-1-deploy
示例输出
--> Scaling cakephp-ex-1 to 1
--> Success

查看当前项目

使用oc project命令查看当前项目。

$ oc project
示例输出
Using project "my-project" on server "https://openshift.example.com:6443".

查看当前项目的状况

使用oc status命令查看有关当前项目的信息,例如服务、部署和构建配置。

$ oc status
示例输出
In project my-project on server https://openshift.example.com:6443

svc/cakephp-ex - 172.30.236.80 ports 8080, 8443
  dc/cakephp-ex deploys istag/cakephp-ex:latest <-
    bc/cakephp-ex source builds https://github.com/sclorg/cakephp-ex on openshift/php:7.2
    deployment #1 deployed 2 minutes ago - 1 pod

3 infos identified, use 'oc status --suggest' to see details.

列出支持的 API 资源

使用oc api-resources命令查看服务器上支持的 API 资源列表。

$ oc api-resources
示例输出
NAME                                  SHORTNAMES       APIGROUP                              NAMESPACED   KIND
bindings                                                                                     true         Binding
componentstatuses                     cs                                                     false        ComponentStatus
configmaps                            cm                                                     true         ConfigMap
...

获取帮助

您可以通过以下方式获得有关 CLI 命令和 ROSA 资源的帮助

  • 使用oc help获取所有可用 CLI 命令的列表和描述

    示例:获取 CLI 的常规帮助
    $ oc help
    示例输出
    OpenShift Client
    
    This client helps you develop, build, deploy, and run your applications on any OpenShift or Kubernetes compatible
    platform. It also includes the administrative commands for managing a cluster under the 'adm' subcommand.
    
    Usage:
      oc [flags]
    
    Basic Commands:
      login           Log in to a server
      new-project     Request a new project
      new-app         Create a new application
    
    ...
  • 使用--help标志获取有关特定 CLI 命令的帮助

    示例:获取oc create命令的帮助
    $ oc create --help
    示例输出
    Create a resource by filename or stdin
    
    JSON and YAML formats are accepted.
    
    Usage:
      oc create -f FILENAME [flags]
    
    ...
  • 使用oc explain命令查看特定资源的描述和字段

    示例:查看Pod资源的文档
    $ oc explain pods
    示例输出
    KIND:     Pod
    VERSION:  v1
    
    DESCRIPTION:
         Pod is a collection of containers that can run on a host. This resource is
         created by clients and scheduled onto hosts.
    
    FIELDS:
       apiVersion	<string>
         APIVersion defines the versioned schema of this representation of an
         object. Servers should convert recognized schemas to the latest internal
         value, and may reject unrecognized values. More info:
         https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
    
    ...

注销 OpenShift CLI

您可以注销 OpenShift CLI 以结束当前会话。

  • 使用oc logout命令。

    $ oc logout
    示例输出
    Logged "user1" out on "https://openshift.example.com"

这会从服务器删除保存的认证令牌,并将其从您的配置文件中移除。