1.5. 管理员CLI命令

1.5.1. 集群管理CLI命令

1.5.1.1. must-gather

批量收集有关集群当前状态的数据以供进行问题调试。

示例:收集调试信息

$ oc adm must-gather

1.5.1.2. top

显示服务器上资源的使用情况统计信息。

示例:显示Pod的CPU和内存使用情况

$ oc adm top pods

示例:显示镜像的使用情况统计信息

$ oc adm top images

1.5.2. 集群管理CLI命令

1.5.2.1. cordon

将节点标记为不可调度。手动将节点标记为不可调度将会阻止在此节点上调度任何新的pod,但不会影响节点上已存在的pod。

示例:将node1标记为不可调度

$ oc adm cordon node1

1.5.2.2. drain

排空节点以准备进行维护。

示例:排空node1

$ oc adm drain node1

1.5.2.3. node-logs

显示并过滤节点日志。

示例:获取NetworkManager的日志

$ oc adm node-logs --role master -u NetworkManager.service

1.5.2.4. taint

更新一个或多个节点上的污点。

示例:添加污点以为一组用户指定一个节点

$ oc adm taint nodes node1 dedicated=groupName:NoSchedule

示例:使用 dedicated 从节点 node1上删除污点

$ oc adm taint nodes node1 dedicated-

1.5.2.5. uncordon

将节点标记为可调度。

示例:将node1标记为可调度

$ oc adm uncordon node1

1.5.3. 安全和策略CLI命令

1.5.3.1. certificate

批准或拒绝证书签名请求(CSR)。

示例:批准一个 CSR

$ oc adm certificate approve csr-sqgzp

1.5.3.2. groups

管理集群中的组。

示例:创建一个新组

$ oc adm groups new my-group

1.5.3.3. new-project

创建一个新项目并指定管理选项。

示例:使用节点选择器创建新项目

$ oc adm new-project myproject --node-selector='type=user-node,region=east'

1.5.3.4. pod-network

管理集群中的Pod网络。

示例:将project1和project2与其他非全局项目隔离

$ oc adm pod-network isolate-projects project1 project2

1.5.3.5. policy

管理集群上的角色和策略。

示例:为user1用户添加所有项目的edit角色

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

示例:把 privileged安全上下文限制(scc)添加给一个服务账户

$ oc adm policy add-scc-to-user privileged -z myserviceaccount

1.5.4. 维护CLI命令

1.5.4.1. migrate

根据使用的子命令,将集群上的资源迁移到新版本或格式。

示例:执行所有存储对象的更新

$ oc adm migrate storage

示例:仅执行Pod的更新

$ oc adm migrate storage --include=pods

1.5.4.2. prune

从服务器中删除旧版本的资源。

示例:删除旧版本的构建,包括那些BuildConfigs已不存在的版本

$ oc adm prune builds --orphans

1.5.5. 配置CLI命令

1.5.5.1. create-api-client-config

创建用于连接服务器的客户端配置。这将创建一个文件夹,其中包含客户端证书,客户端密钥,服务器证书颁发机构和用于以提供的用户身份连接到主服务器(master)的kubeconfig文件。

示例:为代理生成客户端证书

$ oc adm create-api-client-config \
  --certificate-authority='/etc/origin/master/proxyca.crt' \
  --client-dir='/etc/origin/master/proxy' \
  --signer-cert='/etc/origin/master/proxyca.crt' \
  --signer-key='/etc/origin/master/proxyca.key' \
  --signer-serial='/etc/origin/master/proxyca.serial.txt' \
  --user='system:proxy'

1.5.5.2. create-bootstrap-policy-file

创建默认引导策略。

示例:创建一个带有默认引导策略的名为policy.json的文件

$ oc adm create-bootstrap-policy-file --filename=policy.json

1.5.5.3. create-bootstrap-project-template

创建引导程序项目模板。

示例:将YAML格式的引导项目模板输出到stdout

$ oc adm create-bootstrap-project-template -o yaml

1.5.5.4. create-error-template

创建用于自定义错误页面的模板。

示例:创建输出到stdout的错误页模板

$ oc adm create-error-template

1.5.5.5. create-kubeconfig

基于客户端证书创建基本的.kubeconfig文件。

示例:使用提供的客户端证书创建.kubeconfig文件

$ oc adm create-kubeconfig \
  --client-certificate=/path/to/client.crt \
  --client-key=/path/to/client.key \
  --certificate-authority=/path/to/ca.crt

1.5.5.6. create-login-template

创建用于自定义登陆页面的模板。

示例:创建输出到stdout的登陆页模板

$ oc adm create-login-template

1.5.5.7. create-provider-selection-template

创建用于自定义供应商选择页面的模板。

示例:创建输出到stdout的供应商选择页模板

$ oc adm create-provider-selection-template

1.5.6. 其他管理员CLI命令

1.5.6.1. build-chain

输出构建的输入和依赖项。

示例: 输出perl镜像流的依赖项

$ oc adm build-chain perl

1.5.6.2. completion

输出指定 shell 的 oc adm 命令的 shell 完成代码。

示例:显示Bash的oc adm完成代码

$ oc adm completion bash

1.5.6.3. config

管理客户端配置文件。此命令与oc config命令具有相同的作用。

示例:显示当前配置

$ oc adm config view

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

$ oc adm config use-context test-context

1.5.6.4. release

管理OpenShift Container Platform发布过程的各个方面,例如查看有关发布的信息或检查发布的内容。

示例:生成两个版本之间的 changelog 信息,并保存到changelog.md

$ oc adm release info --changelog=/tmp/git \
    quay.io/openshift-release-dev/ocp-release:4.2.0-rc.7 \
    quay.io/openshift-release-dev/ocp-release:4.2.0 \
    > changelog.md

1.5.6.5. verify-image-signature

使用本地公共GPG密钥验证导入到内部 registry 的一个镜像的镜像签名。

示例:验证nodejs镜像签名

$ oc adm verify-image-signature \
    sha256:2bba968aedb7dd2aafe5fa8c7453f5ac36a0b9639f1bf5b03f95de325238b288 \
    --expected-identity 172.30.1.1:5000/openshift/nodejs:latest \
    --public-key /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
    --save