OpenShift Container Platform 命令行界面(CLI)
- oc login
- oc new-project
- oc new-project
- oc get pods
- oc logs
- oc project
- oc status
- oc api-resources
- oc help
- oc explain
- oc logout
- oc cancel-build
- oc import-image
- oc new-build
- oc rollback
- oc rollout
- oc start-build
- oc tag
- oc annotate
- oc apply -f
- oc autoscale
- oc create -f
- oc new-project
- oc describe
- oc edit
- oc expose
- oc get
- oc label
- oc scale
- oc secrets
- oc serviceaccounts
- oc set
- oc attach
- oc cp
- oc debug
- oc exec
- oc logs -f
- oc port-forward
- oc proxy
- oc rsh
- oc rsync
- oc run
- oc wait
- oc api-versions
- oc auth
- oc config
- oc plugin
- oc adm inspect
- oc adm top
- oc adm cordon
- oc adm drain
- oc adm node-logs
- oc adm taint
- oc adm uncordon
oc 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 https://github.com/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 https://github.com/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-host.com
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