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
构建配置中取消所有待处理的构建
$ 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
从源代码创建新构建配置。
示例:从本地 Git 仓库创建构建配置
$ oc new-build .
示例:从远程 Git 仓库创建构建配置
$ 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
示例:使用最新状态启动一个新的部署 rollout
$ oc rollout latest deploymentconfig/php
1.4.2.6. start-build
从构建配置启动构建或复制现有构建。
示例:从指定的构建配置启动构建
$ oc start-build python
示例:从以前的一个构建版本开始进行构建
$ oc start-build --from-build=python-1
示例:为当前构建设置要使用的环境变量
$ oc start-build python --env=mykey=myvalue
1.4.2.7. tag
将现有镜像标记为镜像流。
示例:配置ruby
镜像的latest
tag 指向2.0
tag
$ oc tag ruby:latest ruby:2.0
1.4.3. 应用程序管理CLI命令
1.4.3.1. annotate
更新一个或多个资源上的注解。
示例:向路由添加注解
$ oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist="192.168.1.10"
示例:从路由中删除注解
$ 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
自动缩放部署或复制控制器。
示例:自动缩放至最少两个最多五个 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
编辑一个资源。
示例:使用默认编辑器编辑部署
$ oc edit deploymentconfig/parksmap-katacoda
示例:使用不同的编辑器编辑部署
$ OC_EDITOR="nano" oc edit deploymentconfig/parksmap-katacoda
示例:编辑 JSON 格式的部署
$ oc edit deploymentconfig/parksmap-katacoda -o json
1.4.3.8. expose
以外部方式公开服务作为路由。
示例:开放一个服务
$ oc expose service/parksmap-katacoda
示例:开放服务并指定主机名
$ oc expose service/parksmap-katacoda --hostname=www.my-host.com
1.4.3.9. get
显示一个或多个资源。
示例:列出 default
命名空间中的 pod
$ oc get pods -n default
示例:获取 JSON 格式的 python
部署详情
$ 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
设置复制控制器或部署所需的副本数。
示例:将 ruby-app
部署扩展为三个 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
配置现有应用资源。
示例:设置构建配置上的 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-mz2rf
的python
容器中执行ls
命令
$ oc exec python-1-mz2rf -c python ls
1.4.4.5. logs
检索特定构建、构建配置、部署或 Pod 的日志输出。
示例:从 python
部署中获得最新的日志
$ 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
提取配置映射或 secret 的内容。配置映射或 secret 中的每个密钥都被创建为拥有密钥名称的独立文件。
示例:将 ruby-1-ca
配置映射的内容下载到当前目录
$ oc extract configmap/ruby-1-ca
示例:将 ruby-1-ca
配置映射的内容输出到 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格式的策略合并补丁更新对象的一个或多个字段。
示例:将节点node1
的spec.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服务器版本。