4.2. 安装内核模块管理 Operator

作为集群管理员,您可以使用 OpenShift CLI 或 Web 控制台安装内核模块管理(KMM) Operator。

OpenShift Container Platform 4.12 及更新的版本支持 KMM Operator。在版本 4.11 上安装 KMM 不需要具体附加步骤。有关在版本 4.10 及更早版本上安装 KMM 的详情,请参阅"在早期版本的 OpenShift Container Platform 上安装 Kernel Module Management Operator 部分"。

4.2.1. 使用 Web 控制台安装 Kernel Module Management Operator

作为集群管理员,您可以使用 OpenShift Container Platform Web 控制台安装 Kernel Module Management (KMM) Operator。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 安装内核模块管理 Operator:

    1. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
    2. 从可用的 Operator 列表中选择 Kernel Module Management Operator,然后点 Install
    3. Install Operator 页面中,选择 Installation mode 作为 A specific namespace on the cluster
    4. Installed Namespace 列表中,选择 openshift-kmm 命名空间。
    5. Install

验证

验证 KMM Operator 是否已成功安装:

  1. 进入到 OperatorsInstalled Operators 页面。
  2. 确保 openshift-kmm 项目中列出的 Kernel Module Management OperatorStatusInstallSucceeded

    注意

    在安装过程中,Operator 可能会显示 Failed 状态。如果安装过程结束后有 InstallSucceeded 信息,您可以忽略这个 Failed 信息。

故障排除

  1. 排除安装 Operator 的问题:

    1. 导航到 OperatorsInstalled Operators 页面,检查 Operator SubscriptionsInstall Plans 选项卡中的 Status 项中是否有任何错误。
    2. 进入到 WorkloadsPods 页面,在 openshift-kmm 项目中检查 pod 的日志。

4.2.2. 使用 CLI 安装内核模块管理 Operator

作为集群管理员,您可以使用 OpenShift CLI 安装内核模块管理 (KMM) Operator。

先决条件

  • 有一个正在运行的 OpenShift Container Platform 集群。
  • 已安装 OpenShift CLI(oc)。
  • 以具有 cluster-admin 权限的用户身份登录 OpenShift CLI。

流程

  1. openshift-kmm 命名空间中安装 KMM:

    1. 创建以下 Namespace CR 并保存 YAML 文件,如 kmm-namespace.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-kmm
    2. 创建以下 OperatorGroup CR 并保存 YAML 文件,如 kmm-op-group.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: kernel-module-management
        namespace: openshift-kmm
    3. 创建以下 Subscription CR 并保存 YAML 文件,如 kmm-sub.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: kernel-module-management
        namespace: openshift-kmm
      spec:
        channel: release-1.0
        installPlanApproval: Automatic
        name: kernel-module-management
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        startingCSV: kernel-module-management.v1.0.0
    4. 运行以下命令来创建订阅对象:

      $ oc create -f kmm-sub.yaml

验证

  • 要验证 Operator 部署是否成功,请运行以下命令:

    $ oc get -n openshift-kmm deployments.apps kmm-operator-controller-manager

    输出示例

    NAME                              READY UP-TO-DATE  AVAILABLE AGE
    kmm-operator-controller-manager   1/1   1           1         97s

    Operator 可用。

4.2.3. 在早期版本的 OpenShift Container Platform 上安装 Kernel Module Management Operator

OpenShift Container Platform 4.12 及更新的版本支持 KMM Operator。对于版本 4.10 及更早版本,您必须创建一个新的 SecurityContextConstraint 对象,并将其绑定到 Operator 的 ServiceAccount。作为集群管理员,您可以使用 OpenShift CLI 安装内核模块管理 (KMM) Operator。

先决条件

  • 有一个正在运行的 OpenShift Container Platform 集群。
  • 已安装 OpenShift CLI(oc)。
  • 以具有 cluster-admin 权限的用户身份登录 OpenShift CLI。

流程

  1. openshift-kmm 命名空间中安装 KMM:

    1. 创建以下 Namespace CR 并保存 YAML 文件,如 kmm-namespace.yaml 文件:

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-kmm
    2. 创建以下 SecurityContextConstraint 对象并保存 YAML 文件,如 kmm-security-constraint.yaml

      allowHostDirVolumePlugin: false
      allowHostIPC: false
      allowHostNetwork: false
      allowHostPID: false
      allowHostPorts: false
      allowPrivilegeEscalation: false
      allowPrivilegedContainer: false
      allowedCapabilities:
        - NET_BIND_SERVICE
      apiVersion: security.openshift.io/v1
      defaultAddCapabilities: null
      fsGroup:
        type: MustRunAs
      groups: []
      kind: SecurityContextConstraints
      metadata:
        name: restricted-v2
      priority: null
      readOnlyRootFilesystem: false
      requiredDropCapabilities:
        - ALL
      runAsUser:
        type: MustRunAsRange
      seLinuxContext:
        type: MustRunAs
      seccompProfiles:
        - runtime/default
      supplementalGroups:
        type: RunAsAny
      users: []
      volumes:
        - configMap
        - downwardAPI
        - emptyDir
        - persistentVolumeClaim
        - projected
        - secret
    3. 运行以下命令,将 SecurityContextConstraint 对象绑定到 Operator 的 ServiceAccount

      $ oc apply -f kmm-security-constraint.yaml
      $ oc adm policy add-scc-to-user kmm-security-constraint -z kmm-operator-controller-manager -n openshift-kmm
    4. 创建以下 OperatorGroup CR 并保存 YAML 文件,如 kmm-op-group.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: kernel-module-management
        namespace: openshift-kmm
    5. 创建以下 Subscription CR 并保存 YAML 文件,如 kmm-sub.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: kernel-module-management
        namespace: openshift-kmm
      spec:
        channel: release-1.0
        installPlanApproval: Automatic
        name: kernel-module-management
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        startingCSV: kernel-module-management.v1.0.0
    6. 运行以下命令来创建订阅对象:

      $ oc create -f kmm-sub.yaml

验证

  • 要验证 Operator 部署是否成功,请运行以下命令:

    $ oc get -n openshift-kmm deployments.apps kmm-operator-controller-manager

    输出示例

    NAME                              READY UP-TO-DATE  AVAILABLE AGE
    kmm-operator-controller-manager   1/1   1           1         97s

    Operator 可用。