CLI 工具


Red Hat build of MicroShift 4.12

了解如何使用 MicroShift 的命令行工具

Red Hat OpenShift Documentation Team

摘要

本文档提供有关为 MicroShift 使用命令行工具的信息。详细列出了安装和配置可选 CLI 工具,如 'oc' 和 'kubectl'。还包括 CLI 命令参考和使用方法的示例。

第 1 章 红帽构建的 MicroShift CLI 工具

用户在红帽使用 MicroShift 构建的同时构建、部署和管理应用程序和集群。

红帽构建的 MicroShift 可以使用不同的命令行界面(CLI)工具,通过允许用户从终端执行各种管理和开发操作来简化这些任务。这些工具提供简单的命令来管理部署,并与系统的每个组件交互。

除了内置的 microshift 命令类型和 Linux CLI 工具外,如果您已经熟悉了 OpenShift Container Platform 和 Kubernetes,可以使用带有启用命令子集的可选 OpenShift CLI (oc) 工具。

第 2 章 OpenShift CLI 入门

要使用 OpenShift CLI (oc)工具,您必须独立于您的 {microshift-short} 安装下载并安装它。

2.1. 安装 OpenShift CLI

您可以通过下载二进制文件或使用 Homebrew 来安装 OpenShift CLI (oc)。

2.1.1. 通过下载二进制文件安装 OpenShift CLI

您可以安装 OpenShift CLI (oc)来使用命令行界面与红帽构建的 MicroShift 交互。您可以在 Linux、Windows 或 macOS 上安装 oc

重要

如果安装了旧版本的 oc,则无法使用 Red Hat build of MicroShift 4.12 中的所有命令。下载并安装新版本的 oc

在 Linux 上安装 OpenShift CLI

您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc)二进制文件。

注意

红帽构建的 MicroShift 版本编号与 OpenShift Container Platform 版本号匹配。使用与 {microshift-short} 版本匹配的 oc 二进制文件,并具有适当的 RHEL 兼容性。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 产品变体 下拉列表中选择架构。
  3. 版本 下拉列表中选择适当的版本。
  4. OpenShift v4.12 Linux Client 条目旁的 Download Now 来保存文件。
  5. 解包存档:

    $ tar xvf <file>
    Copy to Clipboard
  6. oc 二进制文件放到 PATH 中的目录中

    要查看您的 PATH,请执行以下命令:

    $ echo $PATH
    Copy to Clipboard

安装 OpenShift CLI 后,可以使用 oc 命令:

$ oc <command>
Copy to Clipboard
在 Windows 上安装 OpenShift CLI

您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc)二进制文件。

注意

红帽构建的 MicroShift 版本编号与 OpenShift Container Platform 版本号匹配。使用与 {microshift-short} 版本匹配的 oc 二进制文件,并具有适当的 RHEL 兼容性。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 版本 下拉列表中选择适当的版本。
  3. OpenShift v4.12 Windows Client 条目旁的 Download Now 来保存文件。
  4. 使用 ZIP 程序解压存档。
  5. oc 二进制文件移到 PATH 中的目录中

    要查看您的 PATH,请打开命令提示并执行以下命令:

    C:\> path
    Copy to Clipboard

安装 OpenShift CLI 后,可以使用 oc 命令:

C:\> oc <command>
Copy to Clipboard
在 macOS 上安装 OpenShift CLI

您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc)二进制文件。

注意

红帽构建的 MicroShift 版本编号与 OpenShift Container Platform 版本号匹配。使用与 {microshift-short} 版本匹配的 oc 二进制文件,并具有适当的 RHEL 兼容性。

流程

  1. 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面
  2. 版本 下拉列表中选择适当的版本。
  3. OpenShift v4.12 macOS Client 条目旁的 Download Now 来保存文件。
  4. 解包和解压存档。
  5. oc 二进制文件移到 PATH 的目录中。

    要查看您的 PATH,请打开终端并执行以下命令:

    $ echo $PATH
    Copy to Clipboard

安装 OpenShift CLI 后,可以使用 oc 命令:

$ oc <command>
Copy to Clipboard

2.1.2. 使用 Homebrew 安装 OpenShift CLI

对于 macOS,您可以使用 Homebrew 软件包管理器安装 OpenShift CLI(oc)。

先决条件

  • 已安装 Homebrew(brew)。

流程

  • 运行以下命令来安装 openshift-cli 软件包:

    $ brew install openshift-cli
    Copy to Clipboard

2.1.3. 使用 RPM 安装 OpenShift CLI

对于 Red Hat Enterprise Linux (RHEL),如果您的红帽帐户上已有有效的 MicroShift 订阅,您可以将 OpenShift CLI (oc)安装为 RPM。

先决条件

  • 必须具有 root 或 sudo 权限。

流程

  1. 使用 Red Hat Subscription Manager 注册:

    # subscription-manager register
    Copy to Clipboard
  2. 获取最新的订阅数据:

    # subscription-manager refresh
    Copy to Clipboard
  3. 列出可用的订阅:

    # subscription-manager list --available --matches '*OpenShift*'
    Copy to Clipboard
  4. 在上一命令的输出中,找到红帽构建的 MicroShift 订阅的池 ID,并将订阅附加到注册的系统:

    # subscription-manager attach --pool=<pool_id>
    Copy to Clipboard
  5. 启用红帽构建 MicroShift 4.12 所需的存储库。

    # subscription-manager repos --enable="rhocp-4.12-for-rhel-8-x86_64-rpms"
    Copy to Clipboard
    注意

    不支持将 OpenShift CLI(oc)安装为 Red Hat Enterprise Linux(RHEL)9 的 RPM。您必须通过下载二进制文件来安装 OpenShift CLI for {op-system-base} 9。

  6. 安装 openshift-clients 软件包:

    # yum install openshift-clients
    Copy to Clipboard

安装 CLI 后,就可以使用oc命令:

$ oc <command>
Copy to Clipboard

第 3 章 配置 OpenShift CLI

根据您的偏好配置 oc 以使用它。

3.1. 启用 tab 自动完成功能

您可以为 Bash 或 Zsh shell 启用 tab 自动完成功能。

3.1.1. 为 Bash 启用 tab 自动完成

安装 OpenShift CLI (oc)后,您可以启用 tab 自动完成功能,以便在按 Tab 键时自动完成 oc 命令或建议选项。以下流程为 Bash shell 启用 tab 自动完成功能。

先决条件

  • 已安装 OpenShift CLI (oc)。
  • 已安装软件包 bash-completion

流程

  1. 将 Bash 完成代码保存到一个文件中:

    $ oc completion bash > oc_bash_completion
    Copy to Clipboard
  2. 将文件复制到 /etc/bash_completion.d/

    $ sudo cp oc_bash_completion /etc/bash_completion.d/
    Copy to Clipboard

    您也可以将文件保存到一个本地目录,并从您的.bashrc文件中 source 这个文件。

开新终端时 tab 自动完成功能将被启用。

3.1.2. 为 Zsh 启用 tab 自动完成功能

安装 OpenShift CLI (oc)后,您可以启用 tab 自动完成功能,以便在按 Tab 键时自动完成 oc 命令或建议选项。以下流程为 Zsh shell 启用 tab 自动完成功能。

先决条件

  • 已安装 OpenShift CLI (oc)。

流程

  • 要在 .zshrc 文件中为 oc 添加 tab 自动完成功能,请运行以下命令:

    $ cat >>~/.zshrc<<EOF
    if [ $commands[oc] ]; then
      source <(oc completion zsh)
      compdef _oc oc
    fi
    EOF
    Copy to Clipboard

开新终端时 tab 自动完成功能将被启用。

第 4 章 使用 oc 工具

如果您已熟悉 OpenShift Container Platform 和 Kubernetes,可以使用可选的 OpenShift CLI (oc) 工具。

4.1. 关于 OpenShift CLI

通过 OpenShift 命令行界面(CLI),oc 命令,您可以从终端部署和管理 MicroShift 项目的红帽构建。OpenShift CLI 在以下情况下是理想的选择:

  • 直接使用项目源代码
  • 编写红帽构建的 MicroShift 操作
  • 管理项目,同时受带宽资源的限制

4.2. 在 Red Hat build of MicroShift 中使用 OpenShift CLI

查看以下部分以了解如何使用 oc CLI 在红帽构建的 MicroShift 中完成常见任务。

4.2.1. 查看 pod

使用oc get pods命令查看当前项目的 pod。

注意

当您在 pod 中运行 oc 且没有指定命名空间时,默认使用 pod 的命名空间。

$ oc get pods -o wide
Copy to Clipboard

输出示例

NAME                  READY   STATUS      RESTARTS   AGE     IP            NODE                           NOMINATED NODE
cakephp-ex-1-build    0/1     Completed   0          5m45s   10.131.0.10   ip-10-0-141-74.ec2.internal    <none>
cakephp-ex-1-deploy   0/1     Completed   0          3m44s   10.129.2.9    ip-10-0-147-65.ec2.internal    <none>
cakephp-ex-1-ktz97    1/1     Running     0          3m33s   10.128.2.11   ip-10-0-168-105.ec2.internal   <none>
Copy to Clipboard

4.2.2. 查看 pod 日志

使用oc logs命令查看特定 pod 的日志。

$ oc logs cakephp-ex-1-deploy
Copy to Clipboard

输出示例

--> Scaling cakephp-ex-1 to 1
--> Success
Copy to Clipboard

4.2.3. 列出支持的 API 资源

使用oc api-resources命令查看服务器上支持的 API 资源列表。

$ oc api-resources
Copy to Clipboard

输出示例

NAME                                  SHORTNAMES       APIGROUP                              NAMESPACED   KIND
bindings                                                                                     true         Binding
componentstatuses                     cs                                                     false        ComponentStatus
configmaps                            cm                                                     true         ConfigMap
...
Copy to Clipboard

4.3. 获得帮助

您可以通过以下方式获得 CLI 命令和红帽构建的 MicroShift 资源的帮助信息。

  • 使用 oc help --flag 来获取有关特定 CLI 命令的信息:

    示例:获取oc create命令的帮助信息

    $ oc create --help
    Copy to Clipboard

    输出示例

    Create a resource by filename or stdin
    
    JSON and YAML formats are accepted.
    
    Usage:
      oc create -f FILENAME [flags]
    
    ...
    Copy to Clipboard

  • 使用oc explain命令查看特定资源的描述信息和项信息:

    示例:查看 Pod 资源的文档

    $ oc explain pods
    Copy to Clipboard

    输出示例

    KIND:     Pod
    VERSION:  v1
    
    DESCRIPTION:
         Pod is a collection of containers that can run on a host. This resource is
         created by clients and scheduled onto hosts.
    
    FIELDS:
       apiVersion	<string>
         APIVersion defines the versioned schema of this representation of an
         object. Servers should convert recognized schemas to the latest internal
         value, and may reject unrecognized values. More info:
         https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
    
    ...
    Copy to Clipboard

4.4. 红帽构建的 MicroShift 中的 oc 命令错误

并非所有 OpenShift Container Platform CLI 工具(oc)命令都与 MicroShift 部署的红帽构建相关。当您使用 oc 对不受支持的 API 发出请求调用时,oc 二进制文件通常会生成有关无法找到资源的错误消息。

输出示例

例如,当运行以下 new-project 命令时:

$ oc new-project test
Copy to Clipboard

可能会出现信息:

Error from server (NotFound): the server could not find the requested resource (get projectrequests.project.openshift.io)
Copy to Clipboard

get projects 命令运行时,可以会产生另一个错误,如下所示:

$ oc get projects
error: the server doesn't have a resource type "projects"
Copy to Clipboard

第 5 章 使用 oc 和 kubectl 命令

Kubernetes 命令行界面(CLI)kubectl 可以用来对 Kubernetes 集群运行命令。因为 Red Hat build of MicroShift 是一个经过认证的 Kubernetes 发行版本,所以您可以使用 Red Hat build of MicroShift 附带的受支持的 kubectl 二进制文件,或使用 oc 二进制文件来获取扩展功能。

5.1. oc 二进制文件

oc 二进制文件提供与 kubectl 二进制文件相同的功能,但它被扩展为原生支持额外的红帽构建的 MicroShift 功能,包括:

  • 路由资源

    Route 资源对象特定于红帽构建的 MicroShift 发行版本,基于标准 Kubernetes 原语构建。

  • 附加命令

    例如,借助附加命令 oc new-app 可以更轻松地使用现有源代码或预构建镜像来启动新的应用程序。

重要

如果安装了旧版本的 oc 二进制文件,则无法使用 Red Hat build of MicroShift 4.12 中的所有命令。如果需要最新的功能,您必须下载并安装与红帽构建的 MicroShift 服务器版本对应的 oc 二进制文件的最新版本。

非安全 API 更改至少涉及两个次发行版本(例如,4.1 到 4.2 到 4.3)来更新旧的 oc 二进制文件。使用新功能可能需要较新的 oc 二进制文件。一个 4.3 服务器可能会带有版本 4.2 oc 二进制文件无法使用的功能,而一个 4.3 oc 二进制文件可能会带有 4.2 服务器不支持的功能。

表 5.1. 兼容性列表
 

X.Y (oc Client)

X.Y+N footnote:versionpolicyn[其中 N 是一个大于或等于 1 的数字] (oc Client)

X.Y (Server)

redcircle 1

redcircle 3

X.Y+N footnote:versionpolicyn[] (Server)

redcircle 2

redcircle 1

redcircle 1 完全兼容。

redcircle 2 oc 客户端可能无法访问服务器的功能。

redcircle 3 oc 客户端可能会提供与要访问的服务器不兼任的选项和功能。

5.2. kubectl 二进制文件

提供 kubectl 二进制文件的目的是为来自标准 Kubernetes 环境的新红帽构建的 MicroShift 用户或者希望使用 kubectl CLI 的用户支持现有工作流和脚本。kubectl 的现有用户可以继续使用二进制文件与 Kubernetes 原语交互,而无需更改红帽构建的 MicroShift 集群。

如果您下载了 oc 二进制文件,则 kubectl 二进制文件会包括在存档中。

如需更多信息,请参阅 kubectl 文档

第 6 章 OpenShift CLI 命令参考

本参考提供了 OpenShift CLI (oc) 命令的描述和示例命令。您必须具有 cluster-admin 或同等权限才能使用这些命令。

运行 oc adm -h 以列出所有管理员命令或运行 oc <command> --help 获取特定命令的更多详情。

重要

使用 oc <command> --help 列出所有 oc 命令的详情。并非所有 oc 命令都适用于使用 MicroShift 的红帽构建。

6.1. oc command list for Red Hat build of MicroShift

以下列出了几个 oc 命令示例,可用于管理、部署和观察红帽构建的 MicroShift 节点。

6.1.1. oc apply

通过文件名或 stdin 将配置应用到资源

用法示例

  # Apply the configuration in pod.json to a pod
  oc apply -f ./pod.json

  # Apply resources from a directory containing kustomization.yaml - e.g. dir/kustomization.yaml
  oc apply -k dir/

  # Apply the JSON passed into stdin to a pod
  cat pod.json | oc apply -f -

  # Apply the configuration from all files that end with '.json' - i.e. expand wildcard characters in file names
  oc apply -f '*.json'

  # Note: --prune is still in Alpha
  # Apply the configuration in manifest.yaml that matches label app=nginx and delete all other resources that are not in the file and match label app=nginx
  oc apply --prune -f manifest.yaml -l app=nginx

  # Apply the configuration in manifest.yaml and delete all the other config maps that are not in the file
  oc apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap
Copy to Clipboard

6.1.2. oc delete

通过文件名、stdin、资源和名称或者资源和标签选择器删除资源

用法示例

  # Delete a pod using the type and name specified in pod.json
  oc delete -f ./pod.json

  # Delete resources from a directory containing kustomization.yaml - e.g. dir/kustomization.yaml
  oc delete -k dir

  # Delete resources from all files that end with '.json' - i.e. expand wildcard characters in file names
  oc delete -f '*.json'

  # Delete a pod based on the type and name in the JSON passed into stdin
  cat pod.json | oc delete -f -

  # Delete pods and services with same names "baz" and "foo"
  oc delete pod,service baz foo

  # Delete pods and services with label name=myLabel
  oc delete pods,services -l name=myLabel

  # Delete a pod with minimal delay
  oc delete pod foo --now

  # Force delete a pod on a dead node
  oc delete pod foo --force

  # Delete all pods
  oc delete pods --all
Copy to Clipboard

6.1.3. oc get

显示一个或多个资源

用法示例

  # List all pods in ps output format
  oc get pods

  # List all pods in ps output format with more information (such as node name)
  oc get pods -o wide

  # List a single replication controller with specified NAME in ps output format
  oc get replicationcontroller web

  # List deployments in JSON output format, in the "v1" version of the "apps" API group
  oc get deployments.v1.apps -o json

  # List a single pod in JSON output format
  oc get -o json pod web-pod-13je7

  # List a pod identified by type and name specified in "pod.yaml" in JSON output format
  oc get -f pod.yaml -o json

  # List resources from a directory with kustomization.yaml - e.g. dir/kustomization.
  oc get -k dir/

  # Return only the phase value of the specified pod
  oc get -o template pod/web-pod-13je7 --template={{.status.phase}}

  # List resource information in custom columns
  oc get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image

  # List all replication controllers and services together in ps output format
  oc get rc,services

  # List one or more resources by their type and names
  oc get rc/web service/frontend pods/web-pod-13je7

  # List status subresource for a single pod.
  oc get pod web-pod-13je7 --subresource status
Copy to Clipboard

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat