第 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:64431 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): y2 Authentication required for https://openshift.example.com:6443 (openshift) Username: user13 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"
这将从服务器中删除已保存的身份验证令牌,并将其从配置文件中删除。