第 1 章 OpenShift CLI (oc)
1.1. CLI 入门
1.1.1. 关于 CLI
使用 OpenShift Container Platform 命令行界面(CLI),您可以通过终端创建应用程序并管理OpenShift Container Platform 项目。CLI 适用于以下情况:
- 直接使用项目源代码。
- OpenShift Container Platform 操作脚本。
- 受带宽资源限制,无法使用 Web 控制台。
1.1.2. 安装 CLI
您可以通过下载二进制文件或使用 RPM 来安装 OpenShift CLI(oc
)。
1.1.2.1. 通过下载二进制文件安装 CLI
您需要安装 CLI(oc
) 来使用命令行界面与 OpenShift Container Platform 进行交互。您可在 Linux 、Windows 或 macOS 上安装 oc
。
如果安装了旧版本的 oc
,则无法使用 OpenShift Container Platform 4.4 中的所有命令。下载并安装新版本的 oc
。
1.1.2.1.1. 在 Linux 上安装 CLI
您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 访问 Red Hat OpenShift Cluster Manager 网站的 Infrastructure Provider 页面。
- 选择您的基础架构供应商及安装类型。
- 在 Command-line interface 部分,从下拉菜单中选择 Linux,并点 Download command-line tools。
解包存档:
$ tar xvzf <file>
把
oc
二进制代码放到PATH
中的目录中。执行以下命令可以查看当前的
PATH
设置:$ echo $PATH
安装 CLI 后,就可以使用oc
命令:
$ oc <command>
1.1.2.1.2. 在 Windows 上安装 CLI
您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc
)二进制代码。
流程
- 访问 Red Hat OpenShift Cluster Manager 网站的 Infrastructure Provider 页面。
- 选择您的基础架构供应商及安装类型。
- 在 Command-line interface 部分,从下拉菜单中选择 Windows,点 Download command-line tools。
- 使用 ZIP 程序解压存档。
把
oc
二进制代码放到PATH
中的目录中。要查看您的
PATH
,请打开命令提示窗口并执行以下命令:C:\> path
安装 CLI 后,就可以使用oc
命令:
C:\> oc <command>
1.1.2.1.3. 在 macOS 上安装 CLI
您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc
)二进制代码。
流程
- 访问 Red Hat OpenShift Cluster Manager 网站的 Infrastructure Provider 页面。
- 选择您的基础架构供应商及安装类型。
- 在 Command-line interface 部分,从下拉菜单中选择 MacOS,并点 Download command-line tools。
- 解包和解压存档。
将
oc
二进制文件移到 PATH 的目录中。要查看您的
PATH
,打开一个终端窗口并执行以下命令:$ echo $PATH
安装 CLI 后,就可以使用oc
命令:
$ oc <command>
1.1.2.2. 使用 RPM 安装 CLI
对于 Red Hat Enterprise Linux (RHEL),如果您的红帽帐户中包括有效的 OpenShift Container Platform 订阅,则可将通过 RPM 安装 OpenShift CLI (oc
)。
先决条件
- 必须具有 root 或 sudo 权限。
流程
使用 Red Hat Subscription Manager 注册:
# subscription-manager register
获取最新的订阅数据:
# subscription-manager refresh
列出可用的订阅:
# subscription-manager list --available --matches '*OpenShift*'
在上一命令的输出中,找到 OpenShift Container Platform 订阅的池 ID,并把订阅附加到注册的系统:
# subscription-manager attach --pool=<pool_id>
启用 OpenShift Container Platform 4.4 所需的存储库:
Red Hat Enterprise Linux 8:
# subscription-manager repos --enable="rhocp-4.4-for-rhel-8-x86_64-rpms"
Red Hat Enterprise Linux 7:
# subscription-manager repos --enable="rhel-7-server-ose-4.4-rpms"
安装
openshift-clients
软件包:# yum install openshift-clients
安装 CLI 后,就可以使用oc
命令:
$ oc <command>
1.1.3. 登录到 CLI
您可以登录到oc
CLI 以访问和管理您的群集。
先决条件
- 有访问 OpenShift Container Platform 集群的权限。
- 已安装CLI。
要访问只能通过 HTTP 代理服务器访问的集群,可以设置 HTTP_PROXY
、HTTPS_PROXY
和 NO_PROXY
变量。oc
CLI 会使用这些环境变量以便所有与集群的通信都通过 HTTP 代理进行。
流程
使用
oc login
命令登录到 CLI,根据提示输入所需信息。$ oc login 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 3 Password: 4 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.1.4. 使用 CLI
参阅以下部分以了解如何使用 CLI 完成常见任务。
1.1.4.1. 创建一个项目
使用oc new-project
命令创建新项目。
$ oc new-project my-project Now using project "my-project" on server "https://openshift.example.com:6443".
1.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.
1.1.4.3. 查看 pod
使用oc get pods
命令查看当前项目的 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>
1.1.4.4. 查看 pod 日志
使用oc logs
命令查看特定 pod 的日志。
$ oc logs cakephp-ex-1-deploy --> Scaling cakephp-ex-1 to 1 --> Success
1.1.4.5. 查看当前项目
使用oc project
命令查看当前项目。
$ oc project Using project "my-project" on server "https://openshift.example.com:6443".
1.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.
1.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 ...
1.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 ...
1.1.6. 注销 CLI
您可以注销CLI以结束当前会话。
使用
oc logout
命令。$ oc logout Logged "user1" out on "https://openshift.example.com"
这将从服务器中删除已保存的身份验证令牌,并将其从配置文件中删除。