OpenShift Container Platform 命令行界面(CLI)
oc loginoc new-projectoc new-projectoc get podsoc logsoc projectoc statusoc api-resourcesoc helpoc explainoc logoutoc cancel-buildoc import-imageoc new-buildoc rollbackoc rolloutoc start-buildoc tagoc annotateoc apply -foc autoscaleoc create -foc new-projectoc describeoc editoc exposeoc getoc labeloc scaleoc secretsoc serviceaccountsoc setoc attachoc cpoc debugoc execoc logs -foc port-forwardoc proxyoc rshoc rsyncoc runoc waitoc api-versionsoc authoc configoc pluginoc adm inspectoc adm topoc adm cordonoc adm drainoc adm node-logsoc adm taintoc adm uncordonoc login
使用oc login命令登录到 CLI
$ oc login
oc new-project
使用oc new-project命令创建新项目。
$ oc new-project my-project
oc new-project
使用oc new-app命令创建新应用程序。
$ oc new-app /sclorg/cakephp-ex
oc get pods
使用oc get pods命令查看当前项目的 pod。
$ oc get pods -o wide
oc logs
使用oc logs命令查看特定 pod 的日志。
$ oc logs podname
oc project
使用oc project命令查看当前项目。
$ oc project#切换到另外一个项目$ oc project demo-project
oc status
使用 oc status 命令查看有关当前项目的信息,如服务、部署和构建配置。
$ oc status
oc api-resources
使用oc api-resources命令查看服务器上支持的 API 资源列表。
$ oc api-resources
oc help
使用oc help获取所有可用 CLI 命令的列表和描述:
#获取 CLI 的常规帮助信息$ oc help#使用--help标志获取有关特定CLI命令的帮助信息:$ oc create --help
oc explain
使用oc explain命令查看特定资源的描述信息和项信息:
#查看 Pod 资源的文档$ oc explain pods
oc logout
注销 CLI
$ oc logout
oc cancel-build
取消一个或者所有构建
$ oc cancel-build demo-1#从 demo 构建配置中取消所有待处理的构建$ oc cancel-build buildconfig/demo --state=pending
oc import-image
从镜像仓库中导入最新的 tag 和镜像信息。
$ oc import-image my-ruby
oc new-build
从源代码创建新构建配置。
$ oc new-build .#从远程 Git 仓库创建构建配置$ oc new-build /sclorg/cakephp-ex
oc rollback
将应用程序还原回以前的部署。
#回滚到上次成功部署$ oc rollback php#回滚到一个特定版本$ oc rollback php --to-version=3
oc rollout
开始一个新的 rollout 操作,查看它的状态或历史信息,或回滚到应用程序的一个以前的版本。
#回滚到上次成功部署$ oc rollout undo deploymentconfig/php#使用最新状态启动一个新的部署 rollout$ oc rollout latest deploymentconfig/php
oc start-build
从构建配置启动构建或复制现有构建。
#从指定的构建配置启动构建$ oc start-build python#从以前的一个构建版本开始进行构建$ oc start-build --from-build=python-1#为当前构建设置要使用的环境变量$ oc start-build python --env=mykey=myvalue
oc tag
将现有镜像标记为镜像流。
#配置ruby镜像的latest tag 指向2.0 tag$ oc tag ruby:latest ruby:2.0
oc 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-
oc apply -f
通过文件名或标准输入(stdin)以JSON或YAML格式将配置应用于资源。
#将 pod.json 中的配置应用到 pod$ oc apply -f pod.json
oc autoscale
自动缩放部署或复制控制器。
#自动缩放至最少两个最多五个 pod$ oc autoscale deploymentconfig/parksmap-katacoda --min=2 --max=5
oc create -f
通过文件名或标准输入(stdin)使用 JSON 或 YAML 格式创建一个资源。
#使用 pod.json 中的内容创建一个 pod$ oc create -f pod.json
oc new-project
删除一个资源。
#删除名为 parksmap-katacoda-1-qfqz4 的 pod$ oc delete pod/parksmap-katacoda-1-qfqz4#删除所有带有 app=parksmap-katacoda 标签的 pod$ oc delete pods -l app=parksmap-katacoda
oc describe
获得有关一个特定对象的详细信息。
#描述名为 example 的部署$ oc describe deployment/example#描述所有 pod$ oc describe pods
oc edit
编辑一个资源
#使用默认编辑器编辑部署$ oc edit deploymentconfig/parksmap-katacoda#使用不同的编辑器编辑部署$ OC_EDITOR="nano" oc edit deploymentconfig/parksmap-katacoda#编辑 JSON 格式的部署$ oc edit deploymentconfig/parksmap-katacoda -o json
oc expose
以外部方式公开服务作为路由
#开放一个服务$ oc expose service/parksmap-katacoda#开放服务并指定主机名$ oc expose service/parksmap-katacoda --hostname=www.my-
oc get
显示一个或多个资源。
#列出 default 命名空间中的 pod$ oc get pods -n default#获取 JSON 格式的 python 部署详情$ oc get deploymentconfig/python -o json
oc label
更新一个或多个资源上的标签。
#更新 python-1-mz2rf pod,标签 status 设置为 unhealthy$ oc label pod/python-1-mz2rf status=unhealthy
oc scale
设置复制控制器或部署所需的副本数。
#将 ruby-app 部署扩展为三个 pod$ oc scale deploymentconfig/ruby-app --replicas=3
oc secrets
管理项目中的 secret
#default 服务账户(service account)使用 my-pull-secret作为 image pull 操作的 secret$ oc secrets link default my-pull-secret --for=pull
oc serviceaccounts
获取分配给服务帐户的令牌或,或为服务帐户创建新令牌或kubeconfig文件。
#获取分配给default服务帐户的令牌$ oc serviceaccounts get-token default
oc set
配置现有应用资源。
#设置构建配置上的 secret 的名称$ oc set build-secret --source buildconfig/mybc mysecret
oc attach
为正在运行的容器附加一个 shell。
#从 pod python-1-mz2rf 获取python 容器的输出信息$ oc attach python-1-mz2rf -c python
oc cp
将文件和目录复制到容器或从容器中复制。
#将文件从 python-1-mz2rf pod 复制到本地文件系统$ oc cp default/python-1-mz2rf:/opt/app-root/src/README.md ~/mydirectory/.
oc debug
启动一个 shell 以调试正在运行的应用程序。
#调试 python 部署$ oc debug deploymentconfig/python
oc exec
在容器中执行命令。
#从 pod python-1-mz2rf 的python 容器中执行ls命令$ oc exec python-1-mz2rf -c python ls
oc logs -f
检索特定构建、构建配置、部署或 Pod 的日志输出。
#从 python 部署中获得最新的日志$ oc logs -f deploymentconfig/python
oc port-forward
将一个或多个本地端口转发到一个 pod。
#在本地侦听端口 8888 并将其数据转发到 pod 的端口 5000$ oc port-forward python-1-mz2rf 8888:5000
oc proxy
运行到Kubernetes API服务器的代理。
#在端口8011上运行到API服务器的代理,由./local/www/提供静态内容$ oc proxy --port=8011 --www=./local/www/
oc rsh
打开到容器的远程shell会话。
#在 python-1-mz2rf pod 中的第一个容器上打开一个 shell 会话$ oc rsh python-1-mz2rf
oc rsync
将目录的内容复制到正在运行的 pod 容器或从容器中复制。rsync命令只复制您的操作系统中已更改的文件。
#将本地目录中的文件与 pod 目录同步$ oc rsync ~/mydirectory/ python-1-mz2rf:/opt/app-root/src/
oc run
创建运行特定镜像的 pod。
#启动运行 perl 镜像的 pod$ oc run my-test --image=perl
oc wait
等待一个或多个资源上的特定条件。
#等待 python-1-mz2rf pod 被删除$ oc wait --for=delete pod/python-1-mz2rf
oc api-versions
列出支持的API版本
oc api-versions
oc auth
检查权限并协调RBAC角色。
#检查当前用户是否可以读取 pod 日志$ oc auth can-i get pods --subresource=log#从一个文件协调RBAC角色和权限$ oc auth reconcile -f policy.json
oc config
管理客户端配置文件。
#显示当前配置$ oc config view#切换到另外一个上下文$ oc config use-context test-context
oc plugin
列出用户PATH中的可用插件。
#列出可用的插件$ oc plugin list
oc adm inspect
为特定资源收集调试信息。
#为 OpenShift API 服务器集群 Operator 收集调试数据$ oc adm inspect clusteroperator/openshift-apiserver
oc adm top
显示服务器上资源的使用情况统计信息。
#显示 pod 的 CPU 和内存使用情况$ oc adm top pods#显示镜像的使用情况统计信息$ oc adm top images
oc adm cordon
将节点标记为不可调度。手动将节点标记为不可调度将会阻止在此节点上调度任何新的pod,但不会影响节点上已存在的pod。
#将node1标记为不可调度$ oc adm cordon node1
oc adm drain
排空节点以准备进行维护。
#排空node1$ oc adm drain node1
oc adm node-logs
显示并过滤节点日志。
#获取 NetworkManager的日志$ oc adm node-logs --role master -u NetworkManager.service
oc adm taint
更新一个或多个节点上的污点。
#添加污点以为一组用户指定一个节点$ oc adm taint nodes node1 dedicated=groupName:NoSchedule#使用 dedicated 从节点 node1上删除污点$ oc adm taint nodes node1 dedicated-
oc adm uncordon
将节点标记为可调度。
#将node1标记为可调度$ oc adm uncordon node1