搜索

13.3. Nutanix 安装后配置

download PDF

按照以下步骤完成并验证 OpenShift Container Platform 与 Nutanix 云提供商的集成。

先决条件

  • Assisted Installer 成功完成安装集群。
  • 集群连接到 console.redhat.com
  • 您可以访问 Red Hat OpenShift Container Platform 命令行界面。

13.3.1. 更新 Nutanix 配置设置

使用辅助安装程序在 Nutanix 平台上安装 OpenShift Container Platform 后,您必须手动更新以下 Nutanix 配置设置:

  • <prismcentral_username> : Nutanix Prism Central 用户名。
  • <prismcentral_password> : Nutanix Prism Central 密码。
  • <prismcentral_address> : Nutanix Prism Central 地址。
  • <prismcentral_port>: Nutanix Prism Central 端口。
  • <prismelement_username> : Nutanix Prism Element 用户名。
  • <prismelement_password> : Nutanix Prism Element 密码。
  • <prismelement_address> : Nutanix Prism Element 地址。
  • <prismelement_port>: Nutanix Prism Element 端口。
  • <prismelement_clustername>: Nutanix Prism Element 集群名称。
  • <nutanix_storage_container> : Nutanix Prism storage 容器。

流程

  1. 在 OpenShift Container Platform 命令行界面中,更新 Nutanix 集群配置设置:

    $ oc patch infrastructure/cluster --type=merge --patch-file=/dev/stdin <<-EOF
    {
      "spec": {
        "platformSpec": {
          "nutanix": {
            "prismCentral": {
              "address": "<prismcentral_address>",
              "port": <prismcentral_port>
            },
            "prismElements": [
              {
                "endpoint": {
                  "address": "<prismelement_address>",
                  "port": <prismelement_port>
                },
                "name": "<prismelement_clustername>"
              }
            ]
          },
          "type": "Nutanix"
        }
      }
    }
    EOF

    输出示例

    infrastructure.config.openshift.io/cluster patched

    如需了解更多详细信息,请参阅在 Nutanix 上创建机器集

  2. 创建 Nutanix secret:

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
       name: nutanix-credentials
       namespace: openshift-machine-api
    type: Opaque
    stringData:
      credentials: |
    [{"type":"basic_auth","data":{"prismCentral":{"username":"${<prismcentral_username>}","password":"${<prismcentral_password>}"},"prismElements":null}}]
    EOF

    输出示例

    secret/nutanix-credentials created

  3. 安装 OpenShift Container Platform 版本 4.13 或更高版本时,更新 Nutanix 云提供商配置:

    1. 获取 Nutanix 云提供商配置 YAML 文件:

      $ oc get cm cloud-provider-config -o yaml -n openshift-config > cloud-provider-config-backup.yaml
    2. 创建一个配置文件的备份:

      $ cp cloud-provider-config_backup.yaml cloud-provider-config.yaml
    3. 打开配置 YAML 文件:

      $ vi cloud-provider-config.yaml
    4. 编辑配置 YAML 文件,如下所示:

      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: cloud-provider-config
        namespace: openshift-config
      data:
        config: |
          {
          	"prismCentral": {
          		"address": "<prismcentral_address>",
          		"port":<prismcentral_port>,
          		"credentialRef": {
          		   "kind": "Secret",
          		   "name": "nutanix-credentials",
          		   "namespace": "openshift-cloud-controller-manager"
          		}
          	},
          	"topologyDiscovery": {
          		"type": "Prism",
          		"topologyCategories": null
          	},
          	"enableCustomLabeling": true
          }
    5. 应用配置更新:

      $ oc apply -f cloud-provider-config.yaml

      输出示例

      Warning: resource configmaps/cloud-provider-config is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by oc apply. oc apply should only be used on resources created declaratively by either oc create --save-config or oc apply. The missing annotation will be patched automatically.
      
      configmap/cloud-provider-config configured

13.3.2. 创建 Nutanix CSI Operator 组

为 Nutanix CSI Operator 创建一个 Operator 组。

注意

有关 operator 组的描述和相关的概念,请参阅 其它资源 中的 常用 Operator 框架术语

流程

  1. 打开 Nutanix CSI Operator Group YAML 文件:

    $ vi openshift-cluster-csi-drivers-operator-group.yaml
  2. 编辑 YAML 文件,如下所示:

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      generateName: openshift-cluster-csi-drivers
      namespace: openshift-cluster-csi-drivers
    spec:
      targetNamespaces:
      - openshift-cluster-csi-drivers
      upgradeStrategy: Default
  3. 创建 Operator 组:

    $ oc create -f openshift-cluster-csi-drivers-operator-group.yaml

    输出示例

    operatorgroup.operators.coreos.com/openshift-cluster-csi-driversjw9cd created

13.3.3. 安装 Nutanix CSI Operator

Kubernetes 的 Nutanix Container Storage Interface (CSI) Operator 部署和管理 Nutanix CSI 驱动程序。

注意

有关通过 OpenShift Container Platform Web 控制台执行此步骤的说明,请参阅 其它资源 中的 Nutanix CSI Operator 文档中的 安装 Operator 部分。

流程

  1. 获取 Nutanix CSI Operator YAML 文件的参数值:

    1. 检查 Nutanix CSI Operator 是否存在:

      $ oc get packagemanifests | grep nutanix

      输出示例

      nutanixcsioperator   Certified Operators   129m

    2. 将 Operator 的默认渠道分配给一个 BASH 变量:

      $ DEFAULT_CHANNEL=$(oc get packagemanifests nutanixcsioperator -o jsonpath={.status.defaultChannel})
    3. 将 Operator 的起始集群服务版本(CSV)分配给一个 BASH 变量:

      $ STARTING_CSV=$(oc get packagemanifests nutanixcsioperator -o jsonpath=\{.status.channels[*].currentCSV\})
    4. 将订阅的目录源分配给一个 BASH 变量:

      $ CATALOG_SOURCE=$(oc get packagemanifests nutanixcsioperator -o jsonpath=\{.status.catalogSource\})
    5. 将 Nutanix CSI Operator 源命名空间分配给一个 BASH 变量:

      $ SOURCE_NAMESPACE=$(oc get packagemanifests nutanixcsioperator -o jsonpath=\{.status.catalogSourceNamespace\})
  2. 使用 BASH 变量创建 Nutanix CSI Operator YAML 文件:

    $ cat << EOF > nutanixcsioperator.yaml
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: nutanixcsioperator
      namespace: openshift-cluster-csi-drivers
    spec:
      channel: $DEFAULT_CHANNEL
      installPlanApproval: Automatic
      name: nutanixcsioperator
      source: $CATALOG_SOURCE
      sourceNamespace: $SOURCE_NAMESPACE
      startingCSV: $STARTING_CSV
    EOF
  3. 创建 CSI Nutanix Operator:

    $ oc apply -f nutanixcsioperator.yaml

    输出示例

    subscription.operators.coreos.com/nutanixcsioperator created

  4. 运行以下命令,直到 Operator 订阅状态变为 AtLatestKnown。这表明 Operator 订阅已创建,并可能需要一些时间。

    $ oc get subscription nutanixcsioperator -n openshift-cluster-csi-drivers -o 'jsonpath={..status.state}'

13.3.4. 部署 Nutanix CSI 存储驱动程序

Kubernetes 的 Nutanix Container Storage Interface (CSI)驱动程序为有状态的应用程序提供可扩展的和持久的存储。

注意

有关通过 OpenShift Container Platform Web 控制台执行此步骤的说明,请参阅 其它资源Nutanix CSI Operator 文档中的 使用 Operator 安装 CSI 驱动程序 部分。

流程

  1. 创建一个 NutanixCsiStorage 资源来部署驱动程序:

    $ cat <<EOF | oc create -f -
    apiVersion: crd.nutanix.com/v1alpha1
    kind: NutanixCsiStorage
    metadata:
      name: nutanixcsistorage
      namespace: openshift-cluster-csi-drivers
    spec: {}
    EOF

    输出示例

    snutanixcsistorage.crd.nutanix.com/nutanixcsistorage created

  2. 为 CSI 存储驱动程序创建一个 Nutanix secret YAML 文件:

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: ntnx-secret
      namespace: openshift-cluster-csi-drivers
    stringData:
      # prism-element-ip:prism-port:admin:password
      key: <prismelement_address:prismelement_port:prismcentral_username:prismcentral_password> 1
    EOF
    注意
    1
    使用实际值替换这些参数,并保持相同的格式。

    输出示例

    secret/nutanix-secret created

13.3.5. 验证安装后配置

运行以下命令来验证配置。

流程

  1. 验证您是否可以创建一个存储类:

    $ cat <<EOF | oc create -f -
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: nutanix-volume
      annotations:
        storageclass.kubernetes.io/is-default-class: 'true'
    provisioner: csi.nutanix.com
    parameters:
      csi.storage.k8s.io/fstype: ext4
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-cluster-csi-drivers
      csi.storage.k8s.io/provisioner-secret-name: ntnx-secret
      storageContainer: <nutanix_storage_container> 1
      csi.storage.k8s.io/controller-expand-secret-name: ntnx-secret
      csi.storage.k8s.io/node-publish-secret-namespace: openshift-cluster-csi-drivers
      storageType: NutanixVolumes
      csi.storage.k8s.io/node-publish-secret-name: ntnx-secret
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-cluster-csi-drivers
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate
    EOF
    注意
    1
    从 Nutanix 配置中获取 <nutanix_storage_container>,例如 SelfServiceContainer。

    输出示例

    storageclass.storage.k8s.io/nutanix-volume created

  2. 验证您是否可以创建 Nutanix 持久性卷声明(PVC):

    1. 创建持久性卷声明(PVC):

      $ cat <<EOF | oc create -f -
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: nutanix-volume-pvc
        namespace: openshift-cluster-csi-drivers
        annotations:
          volume.beta.kubernetes.io/storage-provisioner: csi.nutanix.com
          volume.kubernetes.io/storage-provisioner: csi.nutanix.com
        finalizers:
          - kubernetes.io/pvc-protection
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: nutanix-volume
        volumeMode: Filesystem
      EOF

      输出示例

      persistentvolumeclaim/nutanix-volume-pvc created

    2. 验证持久性卷声明(PVC)状态是否为 Bound:

      $ oc get pvc -n openshift-cluster-csi-drivers

      输出示例

      NAME                 STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS     AGE
      nutanix-volume-pvc   Bound                                        nutanix-volume   52s

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.