第 13 章 CLI 工具

13.1. 安装 Knative CLI

oc CLI 的安装选项可能因您的操作系统而异。

Knative CLI(kn)本身没有登录机制。要登录到集群,必须安装 oc CLI 并使用 oc login 命令。

有关为您的操作系统安装 oc CLI 并使用 oc 登录的更多信息,请参阅 OpenShift CLI 启动文档

OpenShift Serverless 不能使用 kn CLI 安装。集群管理员必须安装 OpenShift Serverless Operator 并设置 Knative 组件,如 安装 OpenShift Serverless Operator 文档所述。

重要

如果您试图将较旧版本的 Knative kn CLI 与较新的 OpenShift Serverless 发行版本搭配使用,则不会找到 API,并出现错误。

例如,如果您使用 kn CLI 的 1.16.0 发行版本,它使用版本 0.22.0,其 1.17.0 OpenShift Serverless 发行版本使用 Knative Serving 和 Knative Eventing API 的 0.23.0 版本,则 CLI 无法正常工作,因为它仍然会查找过时的 0.22.0 API 版本。

确保您使用 OpenShift Serverless 发行版本的最新 kn CLI 版本来避免问题。

13.1.1. 使用 OpenShift Container Platform Web 控制台安装 Knative CLI

安装 OpenShift Serverless Operator 后,您会在 OpenShift Container Platform Web 控制台的 Command Line Tools 页面中看到下载 Linux(x86_64、amd64、s390x、ppc64le)、macOS 或 Windows 的 Knative CLI(kn)的链接。

您可以点击 web 控制台右上角的 question circle 图标进入 Command Line Tools 页,然后在下拉菜单中选择 Command Line Tools

流程

  1. Command Line Tools 页下载 kn CLI。
  2. 解包存档:

    $ tar -xf <file>
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 运行以下命令可以查看 PATH 的值:

    $ echo $PATH
    注意

    如果不使用 RHEL 或 Fedora,请确保将 libc 安装在库路径的目录中。如果 libc 不可用,您在运行 CLI 命令时可能会看到以下错误:

    $ kn: No such file or directory

13.1.2. 使用 RPM 为 Linux 安装 Knative CLI

对于 Red Hat Enterprise Linux(RHEL),如果您的红帽帐户上已有活跃的 OpenShift Container Platform 订阅,则可将 Knative CLI(kn)安装为 RPM。

流程

  1. 输入命令:

    # subscription-manager register
  2. 输入命令:

    # subscription-manager refresh
  3. 输入命令:

    # subscription-manager attach --pool=<pool_id> 1
    1
    活跃的 OpenShift Container Platform 订阅的池 ID
  4. 输入命令:

    # subscription-manager repos --enable="openshift-serverless-1-for-rhel-8-x86_64-rpms"
  5. 输入命令:

    # yum install openshift-serverless-clients

13.1.3. 为 Linux 安装 Knative CLI

对于 Linux 发行版本,您可以直接下载 Knative CLI(kn)作为 tar.gz 归档

流程

  1. 下载 kn CLI
  2. 解包存档:

    $ tar -xf <file>
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 运行以下命令可以查看 PATH 的值:

    $ echo $PATH
    注意

    如果不使用 RHEL 或 Fedora,请确保将 libc 安装在库路径的目录中。如果 libc 不可用,您在运行 CLI 命令时可能会看到以下错误:

    $ kn: No such file or directory

13.1.4. 使用 RPM 在 IBM Power Systems 上安装 Linux

对于 Red Hat Enterprise Linux(RHEL),如果您的红帽帐户上已有活跃的 OpenShift Container Platform 订阅,则可将 Knative CLI(kn)安装为 RPM。

流程

  1. 在第一次引导过程中使用红帽订阅管理(RHSM)服务注册:

    # subscription-manager register
  2. 刷新 RHSM:

    # subscription-manager refresh
  3. 使用 --pool 选项通过指定订阅池 ID 将订阅附加到系统:

    # subscription-manager attach --pool=<pool_id> 1
    1
    活跃的 OpenShift Container Platform 订阅的池 ID
  4. 使用 Red Hat Subscription Manager 启用软件仓库:

    # subscription-manager repos --enable="openshift-serverless-1-for-rhel-8-ppc64le-rpms"
  5. 在系统中安装 openshift-serverless-clients

    # yum install openshift-serverless-clients

13.1.5. 在 IBM Power 系统上安装 Linux 的 Knative CLI

对于 Linux 发行版本,您可以直接下载 Knative CLI(kn)作为 tar.gz 归档

流程

  1. 下载 kn CLI
  2. 解包存档:

    $ tar -xf <file>
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 运行以下命令可以查看 PATH 的值:

    $ echo $PATH
    注意

    如果不使用 RHEL,请确保将 libc 安装在库路径的目录中。

    如果 libc 不可用,您在运行 CLI 命令时可能会看到以下错误:

    $ kn: No such file or directory

13.1.6. 使用 RPM 在 IBM Z 和 LinuxONE 上安装 Linux 的 Knative CLI

对于 Red Hat Enterprise Linux(RHEL),如果您的红帽帐户上已有活跃的 OpenShift Container Platform 订阅,则可将 Knative CLI(kn)安装为 RPM。

流程

  1. 在第一次引导过程中使用红帽订阅管理(RHSM)服务注册:

    # subscription-manager register
  2. 刷新 RHSM:

    # subscription-manager refresh
  3. 使用 --pool 选项通过指定订阅池 ID 将订阅附加到系统:

    # subscription-manager attach --pool=<pool_id> 1
    1
    活跃的 OpenShift Container Platform 订阅的池 ID
  4. 使用 Red Hat Subscription Manager 启用软件仓库:

    # subscription-manager repos --enable="openshift-serverless-1-for-rhel-8-s390x-rpms"
  5. 在系统中安装 openshift-serverless-clients

    # yum install openshift-serverless-clients

13.1.7. 在 IBM Z 和 LinuxONE 上安装 Linux 的 Knative CLI

对于 Linux 发行版本,您可以直接下载 Knative CLI(kn)作为 tar.gz 归档

流程

  1. 下载 kn CLI
  2. 解包存档:

    $ tar -xf <file>
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 运行以下命令可以查看 PATH 的值:

    $ echo $PATH
    注意

    如果不使用 RHEL,请确保将 libc 安装在库路径的目录中。

    如果 libc 不可用,您在运行 CLI 命令时可能会看到以下错误:

    $ kn: No such file or directory

13.1.8. 为 macOS 安装 Knative CLI

macOS 的 Knative CLI(kn)以 tar.gz 文件形式提供。

流程

  1. 下载 kn CLI
  2. 解包和解压存档。
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 要查看 PATH,打开终端窗口并运行:

    $ echo $PATH

13.1.9. 为 Windows 安装 Knative CLI

Windows 的 Knative CLI(kn)以 zip 文件形式提供。

流程

  1. 下载 kn CLI
  2. 使用 ZIP 程序解压存档。
  3. kn 二进制文件移到 PATH 中的目录中。
  4. 要查看您的 PATH,请打开命令窗口并运行以下命令:

    C:\> path

13.1.10. 自定义 Knative CLI

您可以通过创建 config.yaml 配置文件来自定义 kn CLI 设置。您可以使用 --config 标志来提供此配置,否则会从默认位置提取配置。默认配置位置符合 XDG Base Directory 规格,在 Unix 系统和 Windows 系统上有所不同。

对于 Unix 系统:

  • 如果设置了 XDG_CONFIG_HOME 环境变量,kn CLI 查找的默认配置位置为 $XDG_CONFIG_HOME/kn
  • 如果没有设置 XDG_CONFIG_HOME 环境变量,kn CLI 会在 $HOME/.config/kn/config.yaml 的用户主目录中查找配置。

对于 Windows 系统,默认的 kn CLI 配置位置为 %APPDATA%\kn

配置文件示例

plugins:
  path-lookup: true 1
  directory: ~/.config/kn/plugins 2
eventing:
  sink-mappings: 3
  - prefix: svc 4
    group: core 5
    version: v1 6
    resource: services 7

1
指定 kn CLI 是否应该在 PATH 环境变量中查找插件。这是一个布尔值配置选项。默认值为 false
2
指定 kn CLI 将查找插件的目录。默认路径取决于操作系统,如上所述。这可以是用户可见的任何目录。
3
sink-mappings spec 定义了在 kn CLI 命令中使用 --sink 标志时使用的 Kubernetes 可寻址资源。
4
您用来描述接收器(sink)的前缀。svc(用于服务)、channelbrokerkn 中预定义的前缀。
5
Kubernetes 资源的 API 组。
6
Kubernetes 资源的版本。
7
Kubernetes 资源类型的复数名称。例如,servicesbrokers

13.1.11. Knative CLI 插件

kn CLI 支持使用插件,这允许您通过添加不是核心发行版本一部分的自定义命令和其他共享命令来扩展 kn 安装的功能。kn CLI 插件的使用方式与主 kn 功能相同。

目前,红帽支持 kn-source-kafka 插件。