22.2.2. 使用 CLI 从 OperatorHub 安装

您可以使用 CLI 从 OperatorHub 安装 Operator,而不必使用 OpenShift Container Platform Web 控制台。使用 oc 命令来创建或更新一个订阅对象。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 以具有 cluster-admin 特权的用户身份登录。

流程

  1. 确认 MetalLB Operator 可用:

    $ oc get packagemanifests -n openshift-marketplace metallb-operator

    输出示例

    NAME               CATALOG                AGE
    metallb-operator   Red Hat Operators      9h

  2. 创建 metallb-system 命名空间:

    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Namespace
    metadata:
      name: metallb-system
    EOF
  3. 在命名空间中创建一个 Operator 组自定义资源:

    $ cat << EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: metallb-operator
      namespace: metallb-system
    spec:
      targetNamespaces:
      - metallb-system
    EOF
  4. 确认 Operator 组已安装在命名空间中:

    $ oc get operatorgroup -n metallb-system

    输出示例

    NAME               AGE
    metallb-operator   14m

  5. 订阅 MetalLB Operator。

    1. 运行以下命令以获取 OpenShift Container Platform 的主版本和次版本。您可以使用这些值来设置下一步中的 channel 值。

      $ OC_VERSION=$(oc version -o yaml | grep openshiftVersion | \
          grep -o '[0-9]*[.][0-9]*' | head -1)
    2. 要为 Operator 创建订阅自定义资源,请输入以下命令:

      $ cat << EOF| oc apply -f -
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: metallb-operator-sub
        namespace: metallb-system
      spec:
        channel: "${OC_VERSION}"
        name: metallb-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
      EOF
  6. 确认安装计划位于命名空间中:

    $ oc get installplan -n metallb-system

    输出示例

    NAME            CSV                                   APPROVAL    APPROVED
    install-wzg94   metallb-operator.4.9.0-nnnnnnnnnnnn   Automatic   true

  7. 要验证是否已安装 Operator,请输入以下命令:

    $ oc get clusterserviceversion -n metallb-system \
      -o custom-columns=Name:.metadata.name,Phase:.status.phase

    输出示例

    Name                                  Phase
    metallb-operator.4.9.0-nnnnnnnnnnnn   Succeeded