支持使用 MgmtDriver 的 Kubernetes 集群持久卷

https://blueprints.launchpad.net/tacker/+spec/pv-k8s-cluster

问题描述

Tacker Wallaby 版本支持使用 ETSI NFV-SOL003 [1] VNF 生命周期管理接口,通过 MgmtDriver 管理 Kubernetes 集群作为 VNF 实例,具体参考 “支持使用 MgmtDriver 部署 Kubernetes 集群” [2] 规范。 本规范提出部署的 Kubernetes 集群 VNF 具有一个存储服务器,并使用 Cinder 卷,以便用户可以部署具有持久卷 (PersistentVolume) 的 CNF。

提议的变更

Kubernetes 集群 VNF 的 LCM 操作需要以下更改

  • 使用 MgmtDriver 的 Kubernetes 集群实例化操作 [2]

    1. 创建一个带有 Cinder 卷的存储服务器 VM。

    2. MgmtDriver 将 Cinder 卷作为 NFS 共享目录暴露在存储服务器中。

    3. MgmtDriver 将 NFS 共享目录注册为 Kubernetes 持久卷。

  • 使用 MgmtDriver 的整个 Kubernetes 集群的 Heal 操作 [3]

    1. MgmtDriver 在重新生成的存储服务器中将 Cinder 卷作为 NFS 共享目录暴露。

    2. MgmtDriver 将 NFS 共享目录注册为 Kubernetes 持久卷。

  • 使用 MgmtDriver 的存储服务器 VM 的 Heal 操作。

    MgmtDriver 在 heal_start 中执行以下过程。

    1. 检查 Kubernetes 集群中所有已注册的持久卷是否在使用中,否则失败。

    2. 删除所有持久卷。

    注意

    在 Heal 存储服务器 VM 之前,应先删除所有持久卷。 为了避免 Pod 进入失败状态,还需要终止带有持久卷的 Pod。

    MgmtDriver 在 heal_end 中执行以下过程。

    1. MgmtDriver 在重新生成的存储服务器中将 Cinder 卷作为 NFS 共享目录暴露。

    2. MgmtDriver 将 NFS 共享目录注册为 Kubernetes 持久卷。

在所有 LCM 操作中,在新创建的 Master/Worker VM 上安装 NFS 客户端。 以下 LCM 操作需要一些额外的过程,才能在新创建的 Master/Worker VM 上安装 NFS 客户端。

  • 使用 MgmtDriver 的 Kubernetes 集群 Worker 节点的扩展操作 [4]

    MgmtDriver 在 scale_end 中安装 NFS 客户端。

  • 使用 MgmtDriver 的 Kubernetes 集群中单个节点 (Master/Worker) 的 Heal 操作 [3]

    MgmtDriver 在 heal_end 中安装 NFS 客户端。

注意

  • 不支持存储服务器 VM 的扩展操作。

  • Worker 节点的缩减操作保持不变。

  • 终止操作保持不变。

注意

当用户将其 CNF 作为带有持久卷的 Pod 部署时,应在 Kubernetes 资源文件中定义持久卷声明 (PersistentVolumeClaim)。 持久卷声明和控制器资源,例如 Deployment、ReplicaSet 和 Pod,已在 Victoria 版本中的 “带有 VNFM 和 CISM 的容器网络功能 (CNF)” 中得到支持 [5]

带有持久卷的 Kubernetes 集群实例化操作

将存储服务器 VM 提供的持久卷添加到 “支持使用 MgmtDriver 部署 Kubernetes 集群” [2] 规范。

下图显示了 Kubernetes 集群的创建和持久卷的注册

                                                 +---------+ +---------+
                                                 | Cluster | |         |
                                                 | Install | |  VNFD   |
                          +-------------------+  | Script  | |         |
                          | PersistentVolumes |  +-------+-+ +-+-------+
                          | manifest(yaml)    +--+       |     |
                          +-------------------+  |       v     v
                              +---------------+  |    +----------+  +---------------+
                              | LCM operation |  +--->|          |  | Instantiation |
                              | UserData      +------>|   CSAR   |  | Request with  |
                              +---------------+       |          |  | Additional    |
                                 +------------+  +--->|          |  | Params        |
                                 | Heat       |  |    +----+-----+  +-+-------------+
                                 | Template   +--+         |          | 1. Instantiate VNF
                                 | (Base HOT) |            |          |
                                 +------------+      +-----+----------+-------------+
                                                     |     v          v       VNFM  |
                                                     |  +-------------------+       |
                                                     |  |   TackerServer    |       |
                                                     |  +-------+-----------+       |
        3. Kubernetes Cluster                        |          |                   |
           Installation                              |          v                   |
        6. NFS client                                |  +----------------------+    |
           Installation                              |  |   +--------------+   |    |
        +--------------+-----------------------------+--+---+              |   |    |
        |              |                             |  |   |              |   |    |
+-------+--------------+--------+                    |  |   |              |   |    |
|       |              |        |                    |  |   |              |   |    |
|  +----+-----+   +----+-----+  | 7. Kubernetes      |  |   |              |   |    |
|  |    v     |   |    v     |  | PersistentVolumes  |  |   |              |   |    |
|  | +------+ |   | +------+ |  | Registration       |  |   |  MgmtDriver  |   |    |
|  | |Worker| |   | |Master|<+--+--------------------+--+---+              |   |    |
|  | +------+ |   | +------+ |  |                    |  |   |              |   |    |
|  |    VM    |   |    VM    |  |                    |  |   |              |   |    |
|  +----------+   +----------+  |                  +-+--+---+              |   |    |
|  +-------------------------+  | 5. NFS server    | |  |   |              |   |    |
|  |    +---------------+    |  | Installation     | |  | +-+              |   |    |
|  |    |      NFS      |<---+--+------------------+ |  | | +--------------+   |    |
|  |    +---------------+    |  | 4. Set up Cinder   |  | |                    |    |
|  |    +---------------+    |  | volume directories |  | |                    |    |
|  |    | Cinder volume |<---+--+--------------------+--+-+ +--------------+   |    |
|  |    +---------------+    |  |                    |  |   | OpenStack    |   |    |
|  |                         |  |<-------------------+--+---+ Infra Driver |   |    |
|  |    Storage server VM    |  | 2. Create VMs      |  |   +--------------+   |    |
|  +-------------------------+  |(MasterVM/WorkerVM/ |  |                      |    |
+-------------------------------+ Storage server VM  |  |   Tacker Conductor   |    |
+-------------------------------+ with Cinder volume)|  +----------------------+    |
|      Hardware Resources       |                    |                              |
+-------------------------------+                    +------------------------------+

带有 UserData 的 Kubernetes 集群 VNFD

它基本上与用户指南 “如何使用 Mgmt Driver 部署 Kubernetes 集群” [6] 相同,除了以下添加内容。

将与存储服务器 VM 相关的定义添加到 VNFD 和 Heat 模板 (Base HOT),如下所示

VNFD

node_templates:
  ...
  storage_server:
    type: tosca.nodes.nfv.Vdu.Compute
    ...
    requirements:
      - virtual_storage: storage_server_volume
    ...

  storage_server_volume:
    type: tosca.nodes.nfv.Vdu.VirtualBlockStorage
    properties:
      virtual_block_storage_data:
        ...

  storage_server_CP:
    type: tosca.nodes.nfv.VduCp
    ...
    requirements:
      - virtual_binding: storage_server
    ...

Heat 模板 (Base HOT)

resources:
  ...
  storage_server_volume:
    type: OS::Cinder::Volume
    properties:
      ...

  storage_server_CP:
    type: OS::Neutron::Port
    properties:
      ...

  storage_server:
    type: OS::Nova::Server
    properties:
      name: storage_server
      block_device_mapping_v2:
      - device_name: vdb
        volume_id: {get_resource: storage_server_volume}
        boot_index: -1
      networks:
      - port: {get_resource: storage_server_CP}
      ...

带有持久卷的 Kubernetes 集群实例化请求参数

将以下属性添加到用户指南 “如何使用 Mgmt Driver 部署 Kubernetes 集群” [6] 中描述的 additionalParams 中。

属性名称

基数

参数描述

k8s_cluster_installation_param

1

Kubernetes 集群安装配置。

>storage_server

0..1

可选。存储服务器 VM 的配置。 如果未使用本规范的功能,则省略该属性。

>>ssh_cp_name

1

MgmtDriver 在通过 SSH/SFTP 访问存储服务器 VM 时使用的 CP 名称。

>>username

1

MgmtDriver 在通过 SSH/SFTP 访问存储服务器 VM 时使用的用户名。

>>password

1

MgmtDriver 在通过 SSH/SFTP 访问存储服务器 VM 时使用的用户密码。

>>cinder_volume_setup_params

1..N

存储服务器 VM 上 Cinder 卷目录的配置。

>>>volume_resource_id

1

Heat 模板 (Base HOT) 中定义的 Cinder 卷的资源 ID。 MgmtDriver 使用此属性来标识 Cinder 卷。

>>>mount_to

1

Cinder 卷将挂载到存储服务器 VM 上的目录路径。

>>nfs_server_setup_params

1..N

存储服务器 VM 上 NFS 导出的配置。

>>>export_dir

1

要通过 NFS 导出的目录路径。

>>>export_to

1

目录通过 NFS 导出的网络地址。

>pv_registration_params

0..N

可选。 Kubernetes 持久卷的配置。 如果未使用本规范的功能,则省略该属性。

>>pv_manifest_file_path

1

VNF 包中 Kubernetes 持久卷清单文件的路径。

>>nfs_server_cp

1

NFS 服务器的 CP 名称。 如果为 NFS 使用的网络启用了 DHCP,则无法在 Kubernetes 持久卷的清单文件中预配置 NFS 服务器 IP 地址。 因此,清单文件中的 NFS 服务器 IP 地址将替换为由此属性指定的 CP 的 IP 地址。

以下是提供到 Instantiate VNF 请求 POST /vnflcm/v1/vnf_instances/{vnfInstanceId}/instantiate 的 body 示例

{
  "flavourId": "simple",
  "additionalParams": {
    "k8s_cluster_installation_param": {
      "script_path": "Scripts/install_k8s_cluster.sh",
      "vim_name": "kubernetes_vim",
      "master_node": {
        "aspect_id": "master_instance",
        "ssh_cp_name": "masterNode_CP1",
        "nic_cp_name": "masterNode_CP1",
        "username": "ubuntu",
        "password": "ubuntu",
        "pod_cidr": "192.168.3.0/16",
        "cluster_cidr": "10.199.187.0/24",
        "cluster_cp_name": "masterNode_CP1"
      },
      "worker_node": {
        "aspect_id": "worker_instance",
        "ssh_cp_name": "workerNode_CP2",
        "nic_cp_name": "workerNode_CP2",
        "username": "ubuntu",
        "password": "ubuntu"
      },
      "proxy": {
        "http_proxy": "http://user1:password1@host1:port1",
        "https_proxy": "https://user2:password2@host2:port2",
        "no_proxy": "192.168.246.0/24,10.0.0.1",
        "k8s_node_cidr": "10.10.0.0/24"
      },
      "storage_server": {
        "ssh_cp_name": "storage_server_CP",
        "username": "ubuntu",
        "password": "ubuntu",
        "cinder_volume_setup_params": [
          {
            "volume_resource_id": "storage_server_volume",
            "mount_to": "/volume"
          }
        ],
        "nfs_server_setup_params": [
          {
            "export_dir": "/volume/nfs/pv1",
            "export_to": "10.10.0.0/24"
          },
          {
            "export_dir": "/volume/nfs/pv2",
            "export_to": "10.10.0.0/24"
          },
          {
            "export_dir": "/volume/nfs/pv3",
            "export_to": "10.10.0.0/24"
          }
        ]
      },
      "pv_registration_params": [
        {
          "pv_manifest_file_path": "Files/kubernetes/nfs-pv1.yaml",
          "nfs_server_cp": "storage_server_CP"
        },
        {
          "pv_manifest_file_path": "Files/kubernetes/nfs-pv2.yaml",
          "nfs_server_cp": "storage_server_CP"
        },
        {
          "pv_manifest_file_path": "Files/kubernetes/nfs-pv3.yaml",
          "nfs_server_cp": "storage_server_CP"
        }
      ]
    },
    "lcm-operation-user-data": "./UserData/k8s_cluster_user_data.py",
    "lcm-operation-user-data-class": "KubernetesClusterUserData"
  },
  "extVirtualLinks": [
    {
      "id": "net0_master",
      "resourceId": "f0c82461-36b5-4d86-8322-b0bc19cda65f",
      "extCps": [
        {
          "cpdId": "masterNode_CP1",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "net0_worker",
      "resourceId": "f0c82461-36b5-4d86-8322-b0bc19cda65f",
      "extCps": [
        {
          "cpdId": "workerNode_CP2",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "net0_storage",
      "resourceId": "f0c82461-36b5-4d86-8322-b0bc19cda65f",
      "extCps": [
        {
          "cpdId": "storage_server_CP",
          "cpConfig": [
            {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET"
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "vimConnectionInfo": [
    {
      "id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
      "vimId": "8d8373fe-6977-49ff-83ac-7756572ed186",
      "vimType": "openstack"
    }
  ]
}

带有持久卷的 Kubernetes 集群实例化序列

../../_images/0134.png

该过程由上述序列中说明的以下步骤组成。

  1. 客户端发送 POST Instantiate VNF 请求。

  2. 它基本上与规范 “支持使用 MgmtDriver 部署 Kubernetes 集群” [2] 中描述的相同序列,除了以下额外的过程。

  3. 以下过程添加到 instantiate_end 中。

    1. MgmtDriver 为 Cinder 卷创建文件系统,并将其挂载到存储服务器 VM 上的目录。

    2. MgmtDriver 在存储服务器 VM 上安装 NFS 服务器并设置 NFS 导出。

    3. MgmtDriver 在所有 Master/Worker VM 上安装 NFS 客户端。

    4. MgmtDriver 将 Kubernetes 持久卷的清单文件传输到 Master VM。

    5. MgmtDriver 将 Kubernetes 持久卷的清单文件中的 NFS 服务器 IP 地址替换为实际的 NFS 服务器 IP 地址。

    6. MgmtDriver 使用 CLI 在 Master VM 上注册持久卷。

    注意

    假设存储服务器 VM 的操作系统是 Ubuntu。 Cinder 卷的文件系统使用 “ext4” 创建。

带有持久卷的整个 Kubernetes 集群的 Heal 操作

将存储服务器 VM 提供的持久卷添加到规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3]

下图显示 Heal(整个 Kubernetes 集群) 操作

                                                                    +---------------+
                                                                    | Heal Request  |
                                                                    +---+-----------+
                                                                        | 1. Heal VNF
                                                                        |
                                                       +----------------+-------------+
                                                       |                v       VNFM  |
                                                       |  +-------------------+       |
                                                       |  |   TackerServer    |       |
                                                       |  +-------+-----------+       |
        5. Kubernetes Cluster                          |          |                   |
           Installation                                |          v                   |
        8. NFS client                                  |  +----------------------+    |
           Installation                                |  |   +--------------+   |    |
        +--------------+-------------------------------+--+---+              |   |    |
        |              |                               |  |   |              |   |    |
+-------+--------------+--------+                      |  |   |              |   |    |
|       |              |        |                      |  |   |              |   |    |
|  +----+-----+   +----+-----+  | 9. Kubernetes        |  |   |              |   |    |
|  |    v     |   |    v     |  | PersistentVolumes    |  |   |              |   |    |
|  | +------+ |   | +------+ |  | Registration         |  |   |  MgmtDriver  |   |    |
|  | |Worker| |   | |Master|<+--+----------------------+--+---+              |   |    |
|  | +------+ |   | +------+ |  |                      |  |   |              |   |    |
|  |    VM    |   |    VM    |  |                      |  |   |              |   |    |
|  +----------+   +----------+  |                      |  |   |              |   |    |
|  +-------------------------+  | 7. NFS server        |  |   |              |   |    |
|  |    +---------------+    |  | Installation         |  |   |              |   |    |
|  |    |      NFS      |<---+--+----------------------+--+---+              |   |    |
|  |    +---------------+    |  | 6. Set up Cinder     |  |   |              |   |    |
|  |    +---------------+    |  | volume directories   |  |   |              |   |    |
|  |    | Cinder volume |<---+--+----------------------+--+---+              |   |    |
|  |    +---------------+    |  |                      |  |   +--------------+   |    |
|  |    Storage server VM    |  |                      |  |  2. Delete old       |    |
|  +-------------------------+  |                      |  |   Kubernetes cluster |    |
|            New VMs            |<-------------------+ |  |   information        |    |
+-------------------------------+ 4. Create VMs      | |  |  10. Register new    |    |
+-------------------------------+(MasterVM/WorkerVM/ | |  |   Kubernetes cluster |    |
|  +----------+   +----------+  | Storage server VM  | |  |   information        |    |
|  | +------+ |   | +------+ |  | with Cinder volume)| |  |                      |    |
|  | |Worker| |   | |Master| |  |                    | |  |                      |    |
|  | +------+ |   | +------+ |  |                    | |  |                      |    |
|  |    VM    |   |    VM    |  |                    | |  |                      |    |
|  +----------+   +----------+  |                    | |  |                      |    |
|  +-------------------------+  |                    | |  |                      |    |
|  |    +---------------+    |  |                    | |  |   +--------------+   |    |
|  |    |      NFS      |    |  |                    +-+--+---+              |   |    |
|  |    +---------------+    |  |                      |  |   | OpenStack    |   |    |
|  |    +---------------+    |  |                      |  |   | Infra Driver |   |    |
|  |    | Cinder volume |    |  |<---------------------+--+---+              |   |    |
|  |    +---------------+    |  | 3. Delete VMs        |  |   +--------------+   |    |
|  |    Storage server VM    |  |(MasterVM/WorkerVM/   |  |                      |    |
|  +-------------------------+  | Storage server VM    |  |                      |    |
|            Old VMs            | with Cinder volume)  |  |                      |    |
+-------------------------------+                      |  |   Tacker Conductor   |    |
+-------------------------------+                      |  +----------------------+    |
|      Hardware Resources       |                      |                              |
+-------------------------------+                      +------------------------------+

Heal(整个 Kubernetes 集群) 操作的 VNFD

与规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3] 相比没有变化。

Heal(整个 Kubernetes 集群) 操作的请求参数

与规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3] 相比没有变化。

Heal(整个 Kubernetes 集群) 操作的流程

该流程包括以下步骤。

  1. 客户端发送 POST Heal VNF 请求。

  2. 它基本上与规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3] 中描述的相同序列,除了以下额外的过程。

  3. 以下过程添加到 heal_end 中。

    1. MgmtDriver 从 VnfInstance (Tacker DB) 获取 Instantiate VNF 请求的 additionalParams

    2. MgmtDriver 为新的 Cinder 卷创建文件系统,并将其挂载到新的存储服务器 VM 上的目录。

    3. MgmtDriver 在新的存储服务器 VM 上安装 NFS 服务器并设置 NFS 导出。

    4. MgmtDriver 在所有新的 Master/Worker VM 上安装 NFS 客户端。

    5. MgmtDriver 将 Kubernetes 持久卷的清单文件传输到新的 Master VM。

    6. MgmtDriver 将 Kubernetes 持久卷的清单文件中的 NFS 服务器 IP 地址替换为实际的 NFS 服务器 IP 地址。

    7. MgmtDriver 使用 CLI 在新的 Master VM 上注册 Kubernetes 持久卷。

存储服务器 VM 的 Heal 操作

下图显示了存储服务器 VM 的 Heal 操作

                                                                    +---------------+
                                                                    | Heal Request  |
                                                                    +---+-----------+
                                                                        | 1. Heal VNF
                                                                        |
                                                       +----------------+-------------+
                                                       |                v       VNFM  |
                                                       |  +-------------------+       |
                                                       |  |   TackerServer    |       |
                                  2. Delete old        |  +-------+-----------+       |
                                     Kubernetes        |          |                   |
+-------------------------------+    PersistentVolumes |          v                   |
|                 +----------+  | 7. Register new      |  +----------------------+    |
|                 |          |  |    Kubernetes        |  |   +--------------+   |    |
|                 | +------+ |  |    PersistentVolumes |  |   |              |   |    |
|                 | |Master|<+--+----------------------+--+---+              |   |    |
|                 | +------+ |  |                      |  |   |              |   |    |
|                 |    VM    |  |                      |  |   |              |   |    |
|                 +----------+  |                      |  |   |              |   |    |
|  +-------------------------+  | 6. NFS server        |  |   |  MgmtDriver  |   |    |
|  |    +---------------+    |  | Installation         |  |   |              |   |    |
|  |    |      NFS      |<---+--+----------------------+--+---+              |   |    |
|  |    +---------------+    |  | 5. Set up Cinder     |  |   |              |   |    |
|  |    +---------------+    |  | volume directories   |  |   |              |   |    |
|  |    | Cinder volume |<---+--+----------------------+--+---+              |   |    |
|  |    +---------------+    |  |                      |  |   +--------------+   |    |
|  |  New Storage server VM  |<-+--------------------+ |  |                      |    |
|  +-------------------------+  | 4. Create new      | |  |                      |    |
|  +-------------------------+  | Storage server VM  | |  |                      |    |
|  |    +---------------+    |  |                    | |  |                      |    |
|  |    |      NFS      |    |  |                    | |  |   +--------------+   |    |
|  |    +---------------+    |  |                    +-+--+---+              |   |    |
|  |    +---------------+    |  |                      |  |   | OpenStack    |   |    |
|  |    | Cinder volume |    |  |                      |  |   | Infra Driver |   |    |
|  |    +---------------+    |<-+----------------------+--+---+              |   |    |
|  |  Old Storage server VM  |  | 3. Delete old        |  |   +--------------+   |    |
|  +-------------------------+  | Storage server VM    |  |                      |    |
+-------------------------------+                      |  |   Tacker Conductor   |    |
+-------------------------------+                      |  +----------------------+    |
|      Hardware Resources       |                      |                              |
+-------------------------------+                      +------------------------------+

Heal(存储服务器 VM) 操作的 VNFD

VNFD 需要具有 heal_startheal_end 定义。 与规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3] 相同。

Heal(存储服务器 VM) 操作的请求参数

用户提供 ETSI NFV-SOL002 v2.6.1 [7] 中定义的 HealVnfRequest 数据类型作为请求参数。 与规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3] 相同。

Heal(存储服务器 VM) 操作的流程

该流程包括以下步骤。

  1. 客户端发送 POST Heal VNF 请求。

  2. 它基本上与规范 “基于 ETSI NFV-SOL 规范的 VNF REST API” [8] 的 “3) VNF 实例 Heal 的流程” 章节中描述的相同序列,除了 MgmtDriver 之外。

  3. heal_start 中执行以下过程。

    1. MgmtDriver 从 VnfInstance (Tacker DB) 获取 Instantiate VNF 请求的 additionalParams

    2. MgmtDriver 使用 CLI 获取 Kubernetes 持久卷的状态,并检查它们是否在使用中。 如果 Kubernetes 持久卷正在使用中,则引发异常并 Heal 操作失败。

    3. MgmtDriver 使用 CLI 删除 Master VM 上的 Kubernetes 持久卷。

  4. 以下流程在 heal_end 中执行。

    1. MgmtDriver 从 Heat 获取新的存储服务器 VM 的 IP 地址。

    2. MgmtDriver 从 VnfInstance (Tacker DB) 获取 Instantiate VNF 请求的 additionalParams

    3. MgmtDriver 为新的 Cinder 卷创建文件系统,并将其挂载到新的存储服务器 VM 上的目录。

    4. MgmtDriver 在新的存储服务器 VM 上安装 NFS 服务器并设置 NFS 导出。

    5. MgmtDriver 将 Kubernetes 持久卷的清单文件传输到 Master VM。

    6. MgmtDriver 将 Kubernetes 持久卷的清单文件中的 NFS 服务器 IP 地址替换为实际的 NFS 服务器 IP 地址。

    7. MgmtDriver 使用 CLI 在 Master VM 上注册 Kubernetes 持久卷。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>

其他贡献者

伊藤良人 <yoshito.itou.dr@hco.ntt.co.jp>

Yoshiyuki Katada <katada.yoshiyuk@fujitsu.com>

Ayumu Ueha <ueha.ayumu@fujitsu.com>

陆梁 <lu.liang@fujitsu.com>

工作项

  • 提供基于 Wallaby 发布版本的 Kubernetes 集群示例脚本,MgmtDriver 执行以下更改

    • 将存储服务器 VM 的 Cinder 卷作为 NFS 共享目录暴露,并将 NFS 共享目录注册为 Kubernetes 持久卷。

    • 在所有 Master/Worker VM 上安装 NFS 客户端。

    • 在 Heal 存储服务器 VM 时,重新注册 Kubernetes 持久卷。

  • 添加新的单元和功能测试。

依赖项

Kubernetes集群的LCM操作取决于以下规范

  • Kubernetes集群的实例化操作

    依赖于规范 “支持使用 MgmtDriver 部署 Kubernetes 集群” [2]

  • Kubernetes集群的伸缩操作

    依赖于规范 “支持使用 Mgmtdriver 扩展 Kubernetes Worker 节点” [4]

  • Kubernetes集群的修复操作

    依赖于规范 “支持使用 Mgmtdriver Heal Kubernetes Master/Worker 节点” [3]

测试

将添加单元和功能测试,以涵盖规范所需的用例。

文档影响

将添加完整的用户指南,以解释如何使用包含 Cinder 卷的存储服务器的 Kubernetes 集群。

参考资料