第 2 章 OpenShift CLI (oc)

2.1. OpenShift CLI 入门

2.1.1. 关于 OpenShift CLI

使用 OpenShift 命令行界面(CLI),oc命令,您可以通过终端创建应用程序并管理 OpenShift Container Platform 项目。OpenShift CLI 在以下情况下是理想的选择:

  • 直接使用项目源代码
  • 编写 OpenShift Container Platform 操作脚本
  • 在管理项目时,受带宽资源的限制,Web 控制台无法使用

2.1.2. 安装 OpenShift CLI

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

2.1.2.1. 通过下载二进制文件安装 OpenShift CLI

您可以安装 OpenShift CLI(oc)来使用命令行界面与 OpenShift Container Platform 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc

重要

如果安装了旧版本的 oc,则无法使用 OpenShift Container Platform 4.12 中的所有命令。下载并安装新版本的 oc

在 Linux 上安装 OpenShift CLI

您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 产品变体 下拉列表中选择架构。
  3. 版本 下拉列表中选择适当的版本。
  4. OpenShift v4.12 Linux Client 条目旁的 Download Now 来保存文件。
  5. 解包存档:

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

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

    $ echo $PATH

验证

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

    $ oc <command>
在 Windows 上安装 OpenShift CLI

您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 版本 下拉列表中选择适当的版本。
  3. OpenShift v4.12 Windows Client 条目旁的 Download Now 来保存文件。
  4. 使用 ZIP 程序解压存档。
  5. oc 二进制文件移到 PATH 中的目录中

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

    C:\> path

验证

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

    C:\> oc <command>
在 macOS 上安装 OpenShift CLI

您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 版本 下拉列表中选择适当的版本。
  3. OpenShift v4.12 macOS Client 条目旁的 Download Now 来保存文件。

    注意

    对于 macOS arm64,请选择 OpenShift v4.12 macOS arm64 Client 条目。

  4. 解包和解压存档。
  5. oc 二进制文件移到 PATH 的目录中。

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

    $ echo $PATH

验证

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

    $ oc <command>

2.1.2.2. 使用 Web 控制台安装 OpenShift CLI

您可以安装 OpenShift CLI(oc)来通过 Web 控制台与 OpenShift Container Platform 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc

重要

如果安装了旧版本的 oc,则无法使用 OpenShift Container Platform 4.12 中的所有命令。下载并安装新版本的 oc

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

您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 从 Web 控制台,单击 ?

    点问号
  2. 单击 Command Line Tools

    CLI 列表
  3. 为您的 Linux 平台选择适当的 oc 二进制文件,然后点 Download oc for Linux
  4. 保存该文件。
  5. 解包存档。

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

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

    $ echo $PATH

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

$ oc <command>
2.1.2.2.2. 使用 Web 控制台在 Windows 上安装 OpenShift CLI

您可以按照以下流程在 Winndows 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 从 Web 控制台,单击 ?

    点问号
  2. 单击 Command Line Tools

    CLI 列表
  3. 为 Windows 平台选择 oc 二进制文件,然后单击 Download oc for Windows for x86_64
  4. 保存该文件。
  5. 使用 ZIP 程序解压存档。
  6. oc 二进制文件移到 PATH 中的目录中

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

    C:\> path

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

C:\> oc <command>
2.1.2.2.3. 使用 Web 控制台在 macOS 上安装 OpenShift CLI

您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。

流程

  1. 从 Web 控制台,单击 ?

    点问号
  2. 单击 Command Line Tools

    CLI 列表
  3. 为 macOS 平台选择 oc 二进制文件,然后单击 Download oc for Mac for x86_64

    注意

    对于 macOS arm64,点 Download oc for ARM 64

  4. 保存该文件。
  5. 解包和解压存档。
  6. oc 二进制文件移到 PATH 的目录中。

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

    $ echo $PATH

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

$ oc <command>

2.1.2.3. 使用 RPM 安装 OpenShift CLI

对于 Red Hat Enterprise Linux (RHEL),如果您的红帽帐户中包括有效的 OpenShift Container Platform 订阅,则可将通过 RPM 安装 OpenShift CLI (oc)。

注意

不支持将 OpenShift CLI(oc)安装为 Red Hat Enterprise Linux(RHEL)9 的 RPM。您必须下载二进制文件,为 RHEL 9 安装 OpenShift CLI。

先决条件

  • 必须具有 root 或 sudo 权限。

流程

  1. 使用 Red Hat Subscription Manager 注册:

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

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

    # subscription-manager list --available --matches '*OpenShift*'
  4. 在上一命令的输出中,找到 OpenShift Container Platform 订阅的池 ID,并把订阅附加到注册的系统:

    # subscription-manager attach --pool=<pool_id>
  5. 启用 OpenShift Container Platform 4.12 所需的存储库。

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

    # yum install openshift-clients

安装 CLI 后,就可以使用oc命令:

$ oc <command>

2.1.2.4. 使用 Homebrew 安装 OpenShift CLI

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

先决条件

  • 已安装 Homebrew(brew)。

流程

  • 运行以下命令来安装 openshift-cli 软件包:

    $ brew install openshift-cli

2.1.3. 登录到 OpenShift CLI

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

先决条件

  • 有访问 OpenShift Container Platform 集群的权限。
  • 已安装 OpenShift CLI(oc)。
注意

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

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

流程

  1. 输入 oc login 命令并传递用户名:

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

    输出示例

    Server [https://localhost: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
    输入 OpenShift Container Platform 服务器的 URL。
    2
    输入是否使用不安全的连接。
    3
    输入用户密码。
注意

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

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

2.1.4. 使用 OpenShift CLI

参阅以下部分以了解如何使用 CLI 完成常见任务。

2.1.4.1. 创建一个项目

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

$ oc new-project my-project

输出示例

Now using project "my-project" on server "https://openshift.example.com:6443".

2.1.4.2. 创建一个新的应用程序

使用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.

2.1.4.3. 查看 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>

2.1.4.4. 查看 pod 日志

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

$ oc logs cakephp-ex-1-deploy

输出示例

--> Scaling cakephp-ex-1 to 1
--> Success

2.1.4.5. 查看当前项目

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

$ oc project

输出示例

Using project "my-project" on server "https://openshift.example.com:6443".

2.1.4.6. 查看当前项目的状态

使用 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.

2.1.4.7. 列出支持的 API 资源

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

$ oc api-resources

输出示例

NAME                                  SHORTNAMES       APIGROUP                              NAMESPACED   KIND
bindings                                                                                     true         Binding
componentstatuses                     cs                                                     false        ComponentStatus
configmaps                            cm                                                     true         ConfigMap
...

2.1.5. 获得帮助

您可以通过以下方式获得有关 CLI 命令和 OpenShift Container Platform 资源的帮助信息。

  • 使用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
    
    ...

2.1.6. 注销 OpenShift CLI

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

  • 使用oc logout命令。

    $ oc logout

    输出示例

    Logged "user1" out on "https://openshift.example.com"

这将从服务器中删除已保存的身份验证令牌,并将其从配置文件中删除。