1.4. 开发人员CLI命令

1.4.1. 基本CLI命令

1.4.1.1. explain

显示特定资源的文档。

示例:显示Pod的文档

$ oc explain pods

1.4.1.2. login

登录OpenShift Container Platform服务器并保存登录信息以供后续使用。

示例:交互式登录

$ oc login

示例:指定用户名进行登陆

$ oc login -u user1

1.4.1.3. new-app

通过指定源代码,模板或镜像来创建新应用程序。

示例:从本地Git仓库创建新应用程序

$ oc new-app .

示例:从远程Git仓库创建新应用程序

$ oc new-app https://github.com/sclorg/cakephp-ex

示例:从远程的一个私有Git仓库创建新应用程序

$ oc new-app https://github.com/youruser/yourprivaterepo --source-secret=yoursecret

1.4.1.4. new-project

创建一个新项目,并切换到这个项目作为配置中的默认项目。

示例:创建一个新项目

$ oc new-project myproject

1.4.1.5. project

切换到另一个项目,并使其成为配置中的默认项目。

示例:切换到另外一个项目

$ oc project test-project

1.4.1.6. projects

显示服务器上当前活动项目和现有项目的信息。

示例:列出所有项目

$ oc projects

1.4.1.7. status

显示当前项目的概况信息。

示例:显示当前项目的状态

$ oc status

1.4.2. 构建和部署CLI命令

1.4.2.1. cancel-build

取消正在运行,待处理或新的构建。

示例:取消一个构建

$ oc cancel-build python-1

示例:从python BuildConfig中取消所有待处理的构建

$ oc cancel-build buildconfig/python --state=pending

1.4.2.2. import-image

从镜像仓库中导入最新的 tag 和镜像信息。

示例:导入最新的镜像信息

$ oc import-image my-ruby

1.4.2.3. new-build

从源代码创建一个新的BuildConfig

示例:从本地Git仓库创建一个新的 BuildConfig

$ oc new-build .

示例:从本地Git仓库创建一个新的 BuildConfig

$ oc new-build https://github.com/sclorg/cakephp-ex

1.4.2.4. rollback

将应用程序还原回以前的部署。

示例:回滚到上次成功的部署

$ oc rollback php

示例:回滚到一个特定版本

$ oc rollback php --to-version=3

1.4.2.5. rollout

开始一个新的 rollout 操作,查看它的状态或历史信息,或回滚到应用程序的一个以前的版本。

示例:回滚到上次成功的部署

$ oc rollout undo deploymentconfig/php

示例:使用最新状态启动一个新的 DeploymentConfig rollout 操作

$ oc rollout latest deploymentconfig/php

1.4.2.6. start-build

从一个BuildConfig启动构建或复制现有的一个构建。

示例:从指定的BuildConfig启动构建

$ oc start-build python

示例:从以前的一个构建版本开始进行构建

$ oc start-build --from-build=python-1

示例:为当前构建设置要使用的环境变量

$ oc start-build python --env=mykey=myvalue

1.4.2.7. tag

将存在的镜像 tag 为镜像流(imagestream)。

示例:配置ruby镜像的latest tag 指向2.0 tag

$ oc tag ruby:latest ruby:2.0

1.4.3. 应用程序管理CLI命令

1.4.3.1. annotate

更新一个或多个资源上的注解。

示例:为 Route 添加一个注解

$ oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist="192.168.1.10"

示例:从Route中删除注释

$ oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist-

1.4.3.2. apply

通过文件名或标准输入(stdin)以JSON或YAML格式将配置应用于资源。

示例:将pod.json中的配置应用于一个Pod

$ oc apply -f pod.json

1.4.3.3. autoscale

自动缩放一个 DeploymentConfig 或 ReplicationController。

示例:自动缩放至最少两个,最多五个Pod

$ oc autoscale deploymentconfig/parksmap-katacoda --min=2 --max=5

1.4.3.4. create

通过文件名或标准输入(stdin)使用 JSON 或 YAML 格式创建一个资源。

示例:使用pod.json的内容创建一个Pod

$ oc create -f pod.json

1.4.3.5. delete

删除一个资源。

示例:删除名为parksmap-katacoda-1-qfqz4的Pod

$ oc delete pod/parksmap-katacoda-1-qfqz4

示例:删除所有带有app=parksmap-katacoda标签的Pod

$ oc delete pods -l app=parksmap-katacoda

1.4.3.6. describe

获得有关一个特定对象的详细信息。

示例:获得名为example的部署的详细信息

$ oc describe deployment/example

示例:获得所有Pod的详细信息

$ oc describe pods

1.4.3.7. edit

编辑一个资源。

示例:使用默认编辑器编辑DeploymentConfig

$ oc edit deploymentconfig/parksmap-katacoda

示例:使用其他编辑器编辑DeploymentConfig

$ OC_EDITOR="nano" oc edit deploymentconfig/parksmap-katacoda

示例:编辑一个 JSON 格式的 DeploymentConfig

$ oc edit deploymentconfig/parksmap-katacoda -o json

1.4.3.8. expose

把一个 Service 作为一个 Route 向外部开放。

示例:开放一个 Service

$ oc expose service/parksmap-katacoda

示例:开放一个 Service 并指定主机名

$ oc expose service/parksmap-katacoda --hostname=www.my-host.com

1.4.3.9. get

显示一个或多个资源。

示例:列出 default 命名空间中的 pod

$ oc get pods -n default

示例:获取JSON格式的python DeploymentConfig的详细信息

$ oc get deploymentconfig/python -o json

1.4.3.10. label

更新一个或多个资源上的标签。

示例:更新python-1-mz2rf Pod 的标签,把status设置为unhealthy

$ oc label pod/python-1-mz2rf status=unhealthy

1.4.3.11. scale

为ReplicationController或DeploymentConfig设置所需的副本数。

示例:将ruby-app DeploymentConfig扩展为三个Pod

$ oc scale deploymentconfig/ruby-app --replicas=3

1.4.3.12. secrets

管理项目中的 secret

示例:default 服务账户(service account)使用 my-pull-secret作为 image pull 操作的 secret

$ oc secrets link default my-pull-secret --for=pull

1.4.3.13. serviceaccounts

获取分配给服务帐户的令牌或,或为服务帐户创建新令牌或kubeconfig文件。

示例:获取分配给default服务帐户的令牌

$ oc serviceaccounts get-token default

1.4.3.14. set

配置现有应用资源。

示例:设置BuildConfig中的一个 secret 的名称

$ oc set build-secret --source buildconfig/mybc mysecret

1.4.4. 调试CLI命令

1.4.4.1. attach

为正在运行的容器附加一个 shell。

示例:从Pod python-1-mz2rf获取python容器的输出信息

$ oc attach python-1-mz2rf -c python

1.4.4.2. cp

将文件和目录复制到容器或从容器中复制。

示例:将文件从python-1-mz2rf Pod 中复制到本地文件系统

$ oc cp default/python-1-mz2rf:/opt/app-root/src/README.md ~/mydirectory/.

1.4.4.3. debug

启动一个 shell 以调试正在运行的应用程序。

示例:调试python部署

$ oc debug deploymentconfig/python

1.4.4.4. exec

在容器中执行命令。

示例:在 Pod python-1-mz2rfpython容器中执行ls命令

$ oc exec python-1-mz2rf -c python ls

1.4.4.5. logs

获得特定构建,BuildConfig,DeploymentConfig或Pod的日志输出。

示例:从python DeploymentConfig 中获得最新的日志

$ oc logs -f deploymentconfig/python

1.4.4.6. port-forward

将一个或多个本地端口转发到一个Pod。

示例:在本地侦听端口8888并将其数据转发到Pod的端口5000

$ oc port-forward python-1-mz2rf 8888:5000

1.4.4.7. proxy

运行到Kubernetes API服务器的代理。

示例:在端口8011上运行到API服务器的代理,由./local/www/提供静态内容

$ oc proxy --port=8011 --www=./local/www/

1.4.4.8. rsh

打开到容器的远程shell会话。

示例:在python-1-mz2rf Pod中的第一个容器上打开shell会话

$ oc rsh python-1-mz2rf

1.4.4.9. rsync

将目录的内容复制到正在运行的Pod容器或从容器中复制。rsync命令只复制您的操作系统中已更改的文件。

示例:把一个Pod目录与一个本地目录进行同步

$ oc rsync ~/mydirectory/ python-1-mz2rf:/opt/app-root/src/

1.4.4.10. run

创建并运行一个特定镜像。默认情况下,这会创建一个DeploymentConfig来管理创建的容器。

示例:启动具有三个副本的perl镜像实例

$ oc run my-test --image=perl --replicas=3

1.4.4.11. wait

等待一个或多个资源上的特定条件。

示例:等待python-1-mz2rf Pod 被删除

$ oc wait --for=delete pod/python-1-mz2rf

1.4.5. 高级开发人员CLI命令

1.4.5.1. api-resources

显示服务器支持的完整API资源列表。

示例:列出支持的API资源

$ oc api-resources

1.4.5.2. api-versions

显示服务器支持的完整API版本列表。

示例:列出支持的API版本

$ oc api-versions

1.4.5.3. auth

检查权限并协调RBAC角色。

示例:检查当前用户是否可以读取Pod日志

$ oc auth can-i get pods --subresource=log

示例:从一个文件协调RBAC角色和权限

$ oc auth reconcile -f policy.json

1.4.5.4. cluster-info

显示 master 和集群服务的地址。

示例:显示集群信息

$ oc cluster-info

1.4.5.5. convert

将YAML或JSON配置文件转换为一个不同的API版本并打印到标准输出(stdout)。

示例:将pod.yaml转换到最新版本

$ oc convert -f pod.yaml

1.4.5.6. extract

提取 ConfigMap 或 secret 的内容。ConfigMap或secret中的每个关键字(key)都被创建为具有这个关键字名称的单独文件。

示例:将ruby-1-ca ConfigMap的内容下载到当前目录

$ oc extract configmap/ruby-1-ca

示例:将ruby-1-ca ConfigMap的内容输出到stdout

$ oc extract configmap/ruby-1-ca --to=-

1.4.5.7. idle

把可扩展资源设置为空闲。一个空闲的服务在接收到数据时将自动变为非空闲状态,或使用oc scale命令手动把空闲服务变为非空闲。

示例:把ruby-app服务变为空闲状态

$ oc idle ruby-app

1.4.5.8. image

管理OpenShift Container Platform集群中的镜像。

示例:把一个镜像复制到另外一个 tag

$ oc image mirror myregistry.com/myimage:latest myregistry.com/myimage:stable

1.4.5.9. observe

观察资源的变化并对其采取措施。

示例:观察对服务的更改

$ oc observe services

1.4.5.10. patch

使用JSON或YAML格式的策略合并补丁更新对象的一个或多个字段。

示例:将节点node1spec.unschedulable字段更新为true

$ oc patch node/node1 -p '{"spec":{"unschedulable":true}}'

注意

如果需要使用自定义资源定义,则必须在命令中包含--type merge选项。

1.4.5.11. policy

管理授权策略。

示例:将edit角色添加给当前项目的user1用户

$ oc policy add-role-to-user edit user1

1.4.5.12. process

将模板处理为资源列表。

示例:将template.json转换为资源列表并传递给oc create

$ oc process -f template.json | oc create -f -

1.4.5.13. registry

管理OpenShift Container Platform中集成的 registry。

示例:显示集成的 registry 的信息

$ oc registry info

1.4.5.14. replace

根据指定配置文件的内容修改现有对象。

示例:使用pod.json的内容更新Pod

$ oc replace -f pod.json

1.4.6. 设置CLI命令

1.4.6.1. completion

输出指定shell的shell完成代码。

示例:显示Bash的完成代码

$ oc completion bash

1.4.6.2. config

管理客户端配置文件。

示例:显示当前配置

$ oc config view

示例:切换到另外一个上下文

$ oc config use-context test-context

1.4.6.3. logout

退出当前会话。

示例:结束当前会话

$ oc logout

1.4.6.4. whoami

显示有关当前会话的信息。

示例:显示当前已验证的用户

$ oc whoami

1.4.7. 其他开发人员CLI命令

1.4.7.1. help

显示CLI的常规帮助信息和可用命令列表。

示例:显示可用命令

$ oc help

示例:显示new-project命令的帮助信息

$ oc help new-project

1.4.7.2. plugin

列出用户PATH中的可用插件。

示例:列出可用的插件

$ oc plugin list

1.4.7.3. version

显示oc客户端和服务器版本。

示例:显示版本信息

$ oc version

对于集群管理员,还会显示OpenShift Container Platform服务器版本。