如何使用 Mgmt Driver 部署带有私有仓库的 Kubernetes 集群

概述

在通过用户指南 如何使用 Mgmt Driver 部署 Kubernetes 集群 构建的 Kubernetes 集群中,支持从 Docker 公共仓库下载镜像文件,但不支持从 Docker 私有仓库下载。在本用户指南中,我们提供了一种支持 Kubernetes 集群使用 Docker 私有仓库的方法。Docker 私有仓库可以在 Tacker 中创建,也可以在 Tacker 外部创建。如果您想使用 Tacker 创建 Docker 私有仓库,我们提供了一个由 Mgmt Driver 运行的示例用户脚本,用于安装 Docker 私有仓库。您可以参考章节 安装 Docker 私有仓库 了解此用法。如果您想使用在 tacker 外部创建的私有仓库,请创建它,然后将您的私有仓库配置添加到 Kubernetes 集群实例化请求体的参数中。

安装 Docker 私有仓库

1. 准备工作

安装 Docker 私有仓库的准备工作与 如何使用 Mgmt Driver 部署 Kubernetes 集群 中的相同。您可以参考它了解如何设置 OpenStack 配置、如何下载 ubuntu 镜像以及如何注册 Mgmt Driver 和 VNF 包的使用方法。

VNF 包的示例结构如下所示。

注意

您也可以在 tacker 的 samples/mgmt_driver/kubernetes/private_registry_vnf_package/ 目录中找到它们。

目录结构

  • TOSCA-Metadata/TOSCA.meta

  • Definitions/

  • Files/images/

  • Scripts/

!----TOSCA-Metadata
        !---- TOSCA.meta
!----Definitions
        !---- etsi_nfv_sol001_common_types.yaml
        !---- etsi_nfv_sol001_vnfd_types.yaml
        !---- sample_vnfd_df_simple.yaml
        !---- sample_vnfd_top.yaml
        !---- sample_vnfd_types.yaml
!----Files
        !---- images
                !---- ubuntu-20.04-server-cloudimg-amd64.img
!----Scripts
        !---- private_registry_mgmt.py

2. 部署 Docker 私有仓库 VNF

Docker 私有仓库可以在 instantiate_end 操作中安装和设置,这允许您在实例化后执行任何脚本,并且支持 Mgmt Driver。

您必须创建用于正确实例化的参数文件。以下是创建参数文件和 OpenStack CLI 命令的方法。

1. 创建参数文件

创建一个 private_registry_param_file.json 文件,格式如下。该文件定义了实例化请求的参数。这些参数将设置在实例化请求的主体中。

必需参数

  • flavourId

  • additionalParams

可选参数

  • instantiationLevelId

  • extVirtualLinks

  • extManagedVirtualLinks

  • vimConnectionInfo

在本指南中,VM 需要具有 extCP 才能通过 SSH 被 Tacker 访问。因此,需要 extVirtualLinks 参数。如果您有 cli-legacy-vim 中描述的默认 VIM,则可以跳过 vimConnectionInfo

部署 Docker 私有仓库 VNF 的参数说明

要部署 Docker 私有仓库 VNF,您必须在 additionalParams 中设置 private_registry_installation_param 键。KeyValuePairs 如下表所示

additionalParams.private_registry_installation_param(由用户指定)列表

参数

数据类型

description

必需/可选

ssh_cp_name

字符串

MgmtDriver 在通过 SSH/SFTP 访问私有仓库 VM 时使用的 CP 名称。

必需

ssh_username

字符串

MgmtDriver 在通过 SSH/SFTP 访问私有仓库 VM 时使用的用户名。

必需

ssh_password

字符串

MgmtDriver 在通过 SSH/SFTP 访问私有仓库 VM 时使用的用户密码。

必需

image_path

字符串

私有仓库容器在 Docker 上运行的 VNF 包中 Docker 镜像文件的路径。如果省略此属性,则从 Docker 公共仓库拉取私有仓库容器的镜像。如果私有仓库 VM 无法连接到 Docker 公共仓库,请使用“docker save”命令创建文件并在此属性中指定文件的路径。

可选

port_no

字符串

默认值为 5000。TCP 端口号提供私有仓库服务。

可选

proxy

dict

VM 上代理设置信息

可选

proxy dict

参数

数据类型

description

必需/可选

http_proxy

字符串

Http 代理服务器地址

可选

https_proxy

字符串

Https 代理服务器地址

可选

no_proxy

字符串

用户自定义的、无需代理服务器的 IP 地址或段

可选

private_registry_param_file.json

{
    "flavourId": "simple",
    "extVirtualLinks": [{
        "id": "net0",
        "resourceId": "f0c82461-36b5-4d86-8322-b0bc19cda65f", #Set the uuid of the network to use
        "extCps": [{
            "cpdId": "CP1",
            "cpConfig": [{
                "cpProtocolData": [{
                    "layerProtocol": "IP_OVER_ETHERNET"
                }]
            }]
        }]
    }],
    "additionalParams": {
        "private_registry_installation_param": {
            "ssh_cp_name": "CP1",
            "ssh_username": "ubuntu",
            "ssh_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"
            }
        }
    },
    "vimConnectionInfo": [{
        "id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
        "vimId": "8d8373fe-6977-49ff-83ac-7756572ed186", #Set the uuid of the VIM to use
        "vimType": "openstack"
    }]
}

2. 执行实例化操作

执行以下 CLI 命令来实例化 VNF 实例。

使用 VNFD ID 创建 VNF

$ openstack vnflcm create c1bb0ce7-ebca-4fa7-95ed-4840d70a118f
+--------------------------+---------------------------------------------------------------------------------------------+
| Field                    | Value                                                                                       |
+--------------------------+---------------------------------------------------------------------------------------------+
| ID                       | f93ed99c-e2f2-4f18-8377-37a171ea344f                                                        |
| Instantiation State      | NOT_INSTANTIATED                                                                            |
| Links                    | {                                                                                           |
|                          |     "self": {                                                                               |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f"             |
|                          |     },                                                                                      |
|                          |     "instantiate": {                                                                        |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f/instantiate" |
|                          |     }                                                                                       |
|                          | }                                                                                           |
| VNF Instance Description | None                                                                                        |
| VNF Instance Name        | vnf-f93ed99c-e2f2-4f18-8377-37a171ea344f                                                    |
| VNF Package ID           | f352d10f-74c2-4d37-b41c-bfcdc73e9d09                                                        |
| VNF Product Name         | Sample Private registry VNF                                                                 |
| VNF Provider             | Company                                                                                     |
| VNF Software Version     | 1.0                                                                                         |
| VNFD ID                  | c1bb0ce7-ebca-4fa7-95ed-4840d70a118f                                                        |
| VNFD Version             | 1.0                                                                                         |
+--------------------------+---------------------------------------------------------------------------------------------+

使用 VNF ID 实例化 VNF

$ openstack vnflcm instantiate f93ed99c-e2f2-4f18-8377-37a171ea344f ./private_registry_param_file.json
Instantiate request for VNF Instance f93ed99c-e2f2-4f18-8377-37a171ea344f has been accepted.

检查实例化状态

$ openstack vnflcm show f93ed99c-e2f2-4f18-8377-37a171ea344f
+--------------------------+-------------------------------------------------------------------------------------------------+
| Field                    | Value                                                                                           |
+--------------------------+-------------------------------------------------------------------------------------------------+
| ID                       | f93ed99c-e2f2-4f18-8377-37a171ea344f                                                            |
| Instantiated Vnf Info    | {                                                                                               |
|                          |     "flavourId": "simple",                                                                      |
|                          |     "vnfState": "STARTED",                                                                      |
|                          |     "extCpInfo": [                                                                              |
|                          |         {                                                                                       |
|                          |             "id": "187cc96a-7577-4156-8b0a-efcda82d56fc",                                       |
|                          |             "cpdId": "CP1",                                                                     |
|                          |             "extLinkPortId": null,                                                              |
|                          |             "associatedVnfcCpId": "52431660-dde4-49de-99a4-9d593b17b9c4",                       |
|                          |             "cpProtocolInfo": [                                                                 |
|                          |                 {                                                                               |
|                          |                     "layerProtocol": "IP_OVER_ETHERNET"                                         |
|                          |                 }                                                                               |
|                          |             ]                                                                                   |
|                          |         }                                                                                       |
|                          |     ],                                                                                          |
|                          |     "extVirtualLinkInfo": [                                                                     |
|                          |         {                                                                                       |
|                          |             "id": "net0",                                                                       |
|                          |             "resourceHandle": {                                                                 |
|                          |                 "vimConnectionId": null,                                                        |
|                          |                 "resourceId": "1642ac54-642c-407c-9c7d-e94c55ba5d33",                           |
|                          |                 "vimLevelResourceType": null                                                    |
|                          |             }                                                                                   |
|                          |         }                                                                                       |
|                          |     ],                                                                                          |
|                          |     "vnfcResourceInfo": [                                                                       |
|                          |         {                                                                                       |
|                          |             "id": "52431660-dde4-49de-99a4-9d593b17b9c4",                                       |
|                          |             "vduId": "PrivateRegistryVDU",                                                      |
|                          |             "computeResource": {                                                                |
|                          |                 "vimConnectionId": "c3369b54-e376-4423-bb61-afd255900fea",                      |
|                          |                 "resourceId": "f93edf04-07ac-410e-96aa-7fd64774f951",                           |
|                          |                 "vimLevelResourceType": "OS::Nova::Server"                                      |
|                          |             },                                                                                  |
|                          |             "storageResourceIds": [],                                                           |
|                          |             "vnfcCpInfo": [                                                                     |
|                          |                 {                                                                               |
|                          |                     "id": "8355de52-61ec-495e-ac81-537d0c676915",                               |
|                          |                     "cpdId": "CP1",                                                             |
|                          |                     "vnfExtCpId": null,                                                         |
|                          |                     "vnfLinkPortId": "2b7fa3dc-35a8-4d46-93ba-0c11f39ccced",                    |
|                          |                     "cpProtocolInfo": [                                                         |
|                          |                         {                                                                       |
|                          |                             "layerProtocol": "IP_OVER_ETHERNET"                                 |
|                          |                         }                                                                       |
|                          |                     ]                                                                           |
|                          |                 }                                                                               |
|                          |             ]                                                                                   |
|                          |         }                                                                                       |
|                          |     ],                                                                                          |
|                          |     "vnfVirtualLinkResourceInfo": [                                                             |
|                          |         {                                                                                       |
|                          |             "id": "245b35c0-7cf1-4470-87c7-5927eb0ad2ee",                                       |
|                          |             "vnfVirtualLinkDescId": "net0",                                                     |
|                          |             "networkResource": {                                                                |
|                          |                 "vimConnectionId": null,                                                        |
|                          |                 "resourceId": "1642ac54-642c-407c-9c7d-e94c55ba5d33",                           |
|                          |                 "vimLevelResourceType": "OS::Neutron::Net"                                      |
|                          |             },                                                                                  |
|                          |             "vnfLinkPorts": [                                                                   |
|                          |                 {                                                                               |
|                          |                     "id": "2b7fa3dc-35a8-4d46-93ba-0c11f39ccced",                               |
|                          |                     "resourceHandle": {                                                         |
|                          |                         "vimConnectionId": "c3369b54-e376-4423-bb61-afd255900fea",              |
|                          |                         "resourceId": "2eb5d67b-fe24-40ca-b25a-8c4e47520aee",                   |
|                          |                         "vimLevelResourceType": "OS::Neutron::Port"                             |
|                          |                     },                                                                          |
|                          |                     "cpInstanceId": "8355de52-61ec-495e-ac81-537d0c676915"                      |
|                          |                 }                                                                               |
|                          |             ]                                                                                   |
|                          |         }                                                                                       |
|                          |     ],                                                                                          |
|                          |     "vnfcInfo": [                                                                               |
|                          |         {                                                                                       |
|                          |             "id": "49330b17-bb00-44df-a1e1-34ea0cd09307",                                       |
|                          |             "vduId": "PrivateRegistryVDU",                                                      |
|                          |             "vnfcState": "STARTED"                                                              |
|                          |         }                                                                                       |
|                          |     ],                                                                                          |
|                          |     "additionalParams": {                                                                       |
|                          |         "private_registry_installation_param": {                                                |
|                          |             "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"                                         |
|                          |             },                                                                                  |
|                          |             "ssh_cp_name": "CP1",                                                               |
|                          |             "ssh_username": "ubuntu",                                                           |
|                          |             "ssh_password": "ubuntu"                                                            |
|                          |         }                                                                                       |
|                          |     }                                                                                           |
|                          | }                                                                                               |
| Instantiation State      | INSTANTIATED                                                                                    |
| Links                    | {                                                                                               |
|                          |     "self": {                                                                                   |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f"                 |
|                          |     },                                                                                          |
|                          |     "terminate": {                                                                              |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f/terminate"       |
|                          |     },                                                                                          |
|                          |     "scale": {                                                                                  |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f/scale"           |
|                          |     },                                                                                          |
|                          |     "heal": {                                                                                   |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f/heal"            |
|                          |     },                                                                                          |
|                          |     "changeExtConn": {                                                                          |
|                          |         "href": "/vnflcm/v1/vnf_instances/f93ed99c-e2f2-4f18-8377-37a171ea344f/change_ext_conn" |
|                          |     }                                                                                           |
|                          | }                                                                                               |
| VIM Connection Info      | [                                                                                               |
|                          |     {                                                                                           |
|                          |         "id": "8a3adb69-0884-43c7-833e-aab0b6ab4470",                                           |
|                          |         "vimId": "c3369b54-e376-4423-bb61-afd255900fea",                                        |
|                          |         "vimType": "openstack",                                                                 |
|                          |         "interfaceInfo": {},                                                                    |
|                          |         "accessInfo": {}                                                                        |
|                          |     }                                                                                           |
|                          | ]                                                                                               |
| VNF Instance Description | None                                                                                            |
| VNF Instance Name        | vnf-f93ed99c-e2f2-4f18-8377-37a171ea344f                                                        |
| VNF Package ID           | f352d10f-74c2-4d37-b41c-bfcdc73e9d09                                                            |
| VNF Product Name         | Sample Private registry VNF                                                                     |
| VNF Provider             | Company                                                                                         |
| VNF Software Version     | 1.0                                                                                             |
| VNFD ID                  | c1bb0ce7-ebca-4fa7-95ed-4840d70a118f                                                            |
| VNFD Version             | 1.0                                                                                             |
+--------------------------+-------------------------------------------------------------------------------------------------+

3. 修复 Docker 私有仓库 VNF

根据 NFV-SOL001 v2.6.1heal_startheal_end 操作允许用户在修复操作中执行任何脚本,并且 Mgmt Driver 支持对私有仓库服务器进行修复操作。

实例化 Docker 私有仓库 VNF 后,如果它未正确运行,您可以修复它。以下是创建参数文件和 OpenStack CLI 命令的方法。

注意

由于整个修复操作会导致服务器的 ip 更改,因此在 Docker 私有仓库服务已经使用时,用户应避免使用它。

注意

修复目标 Docker 私有仓库中注册的镜像信息在修复后不会保留。

1. 创建参数文件

以下是发送到“POST /vnf_instances/{id}/heal”的修复参数,数据类型为 HealVnfRequest。它与 SOL002 和 SOL003 不同。

NFV-SOL002 v2.6.1

heal 参数

属性名称

参数描述

vnfcInstanceId

用户指定修复目标,用户可以通过“GET /vnf_instances/{id}”响应中包含的“InstantiatedVnfInfo.vnfcResourceInfo”来了解“vnfcInstanceId”。

cause

不需要

additionalParams

不需要

healScript

不需要

NFV-SOL003 v2.6.1

heal 参数

属性名称

参数描述

cause

不需要

additionalParams

不需要

如果 vnfcInstanceId 参数为 null,则表示需要对整个 Kubernetes 集群进行修复操作,这在 SOL003 中是这种情况。

以下是 SOL002 的修复请求主体的示例

{
    "vnfcInstanceId": "52431660-dde4-49de-99a4-9d593b17b9c4"
}

注意

部署 Docker 私有 仓库 VNF 的章节中,VNF 实例实例化结果已在 CLI 命令 openstack vnflcm show VNF INSTANCE ID 中显示。

您可以从上述结果的 Instantiated Vnf Info 中获取 vnfcInstanceId。 vnfcResourceInfo.id 是 vnfcInstanceId。

2. 执行修复操作

1. 修复 Docker 私有仓库 VNF(指定 VNFC)

修复指定 VNFC 实例时,Heat API 将从 Tacker 调用。

  • 堆栈资源标记为不健康

  • 堆栈更新

要确认修复是否成功,请执行 Heat CLI 命令并检查修复前后私有仓库 VNF 的 physical_resource_id 和 resource_status。

注意

请注意,“vnfc-instance-id”由 Tacker 管理,“physical-resource-id”由 Heat 管理。 physical_resource_idvnfcResourceInfo.computeResource.resourceId 相同。

修复前私有仓库 VNF 信息

$ openstack stack resource list vnf-f93ed99c-e2f2-4f18-8377-37a171ea344f -n 2 \
 --filter type=OS::Nova::Server -c resource_name -c physical_resource_id -c \
 resource_type -c resource_status
+--------------------+--------------------------------------+------------------+-----------------+
| resource_name      | physical_resource_id                 | resource_type    | resource_status |
+--------------------+--------------------------------------+------------------+-----------------+
| PrivateRegistryVDU | f93edf04-07ac-410e-96aa-7fd64774f951 | OS::Nova::Server | CREATE_COMPLETE |
+--------------------+--------------------------------------+------------------+-----------------+

我们使用 physical_resource_id f93edf04-07ac-410e-96aa-7fd64774f951 修复私有仓库 VNF,其 vnfc_instance_id52431660-dde4-49de-99a4-9d593b17b9c4

修复 vnf_instance 的私有仓库 vnf

$ openstack vnflcm heal f93ed99c-e2f2-4f18-8377-37a171ea344f --vnfc-instance 52431660-dde4-49de-99a4-9d593b17b9c4
Heal request for VNF Instance f93ed99c-e2f2-4f18-8377-37a171ea344f has been accepted.

修复后私有仓库 vnf 信息

$ openstack stack resource list vnf-c5215213-af4b-4080-95ab-377920474e1a -n 2 \
 --filter type=OS::Nova::Server -c resource_name -c physical_resource_id -c \
 resource_type -c resource_status
+--------------------+--------------------------------------+------------------+-----------------+
| resource_name      | physical_resource_id                 | resource_type    | resource_status |
+--------------------+--------------------------------------+------------------+-----------------+
| PrivateRegistryVDU | c8a67180-f49b-492c-a2a2-1ac668a80453 | OS::Nova::Server | CREATE_COMPLETE |
+--------------------+--------------------------------------+------------------+-----------------+
2. 修复 Docker 私有仓库 VNF(整个修复)

修复整个 VNF 时,以下 API 将从 Tacker 调用到 Heat。

  • 堆栈删除

  • 堆栈创建

1. 执行 Heat CLI 命令,并在修复前后检查堆栈的 ‘ID’ 和 ‘Stack Status’。

2. 所有私有仓库 VNF 的信息都将被更改。

这用于确认堆栈 ‘ID’ 在修复前后已更改。

修复前堆栈信息

$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
+--------------------------------------+---------------------------------------------+-----------------+
| ID                                   | Stack Name                                  | Stack Status    |
+--------------------------------------+---------------------------------------------+-----------------+
| fb03d2f0-3bd1-4382-a303-b7619484a4fa | vnf-f93ed99c-e2f2-4f18-8377-37a171ea344f    | CREATE_COMPLETE |
+--------------------------------------+---------------------------------------------+-----------------+

执行整个 VNF 的修复

$ openstack vnflcm heal f93ed99c-e2f2-4f18-8377-37a171ea344f
Heal request for VNF Instance f93ed99c-e2f2-4f18-8377-37a171ea344f has been accepted.

修复后堆栈信息

$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
+--------------------------------------+---------------------------------------------+-----------------+
| ID                                   | Stack Name                                  | Stack Status    |
+--------------------------------------+---------------------------------------------+-----------------+
| 98ef6003-5422-4b04-bfc8-d56614d23fcc | vnf-f93ed99c-e2f2-4f18-8377-37a171ea344f    | CREATE_COMPLETE |
+--------------------------------------+---------------------------------------------+-----------------+

使用 Docker 私有仓库部署 Kubernetes 集群

1. 实例化 Kubernetes 集群

此处使用的 Kubernetes 集群 VNF 的 VNF 包与 如何使用 Mgmt Driver 部署 Kubernetes 集群 中使用的 VNF 包没有变化。

要为 Kubernetes 集群使用 Docker 私有仓库,操作步骤和实例化方法与 部署 Kubernetes 集群 中的相同。不同之处在于参数文件。应将以下属性添加到 Deploy Kubernetes Cluster 中描述的 additionalParamsk8s_cluster_installation_param 中。

additionalParams.k8s_cluster_installation_param.private_registry_connection_info(由用户指定)列表

参数

数据类型

description

必需/可选

connection_type

字符串

连接类型。设置以下值之一。0:HTTP,1:HTTPS。如果通过 HTTP 连接到部署的 Docker 私有仓库 VNF 或 Tacker 外部的 Docker 私有仓库,则设置为 0。如果通过 HTTPS 连接到 Tacker 外部的 Docker 私有仓库,则设置为 1。

必需

server

字符串

要连接的 Docker 私有仓库的服务器名称。例如,“192.168.0.10:5000”

必需

username

字符串

登录到 Docker 私有仓库的用户名。

可选

password

字符串

登录到 Docker 私有仓库的密码。

可选

certificate_path

字符串

用于 HTTPS 连接的 CA 证书文件的路径。

可选

hosts_string

字符串

要添加到 /etc/hosts 的字符串。基本的 Kubernetes 集群环境没有 DNS 服务器,必须添加到 /etc/hosts。该值由“ ”组成。例如,“192.168.0.20 registry.example.com”。

可选

以下是 private_registry_kubernetes_param_file.json

private_registry_kubernetes_param_file.json

{
    "flavourId": "simple",
    "vimConnectionInfo": [{
        "id": "3cc2c4ff-525c-48b4-94c9-29247223322f",
        "vimId": "05ef7ca5-7e32-4a6b-a03d-52f811f04496", #Set the uuid of the VIM to use
        "vimType": "openstack"
    }],
    "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.0.0/16",
                "cluster_cidr": "10.199.187.0/24",
                "cluster_cp_name": "vip_CP"
            },
            "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"
            },
            "private_registry_connection_info": [
                {
                    "connection_type": "0",
                    "server": "192.168.246.10:5000"  #Set the server of Docker private registry to use
                }
            ]
        },
        "lcm-operation-user-data": "./UserData/k8s_cluster_user_data.py",
        "lcm-operation-user-data-class": "KubernetesClusterUserData"
    },
    "extVirtualLinks": [{
        "id": "net0_master",
        "resourceId": "71a3fbd1-f31e-4c2c-b0e2-26267d64a9ee",  #Set the uuid of the network to use
        "extCps": [{
            "cpdId": "masterNode_CP1",
            "cpConfig": [{
                "cpProtocolData": [{
                    "layerProtocol": "IP_OVER_ETHERNET"
                }]
            }]
        }]
    }, {
        "id": "net0_worker",
        "resourceId": "71a3fbd1-f31e-4c2c-b0e2-26267d64a9ee",  #Set the uuid of the network to use
        "extCps": [{
            "cpdId": "workerNode_CP2",
            "cpConfig": [{
                "cpProtocolData": [{
                    "layerProtocol": "IP_OVER_ETHERNET"
                }]
            }]
        }]
    }]
}

2. 缩放和修复操作

对于用户,其他操作(如缩放和修复)与 如何使用 Mgmt Driver 部署 Kubernetes 集群 中的相同。

限制

  1. 整个修复操作会导致服务器的 ip 更改,用户应避免在 Docker 私有仓库服务使用时使用它。

  2. 修复目标 Docker 私有仓库中注册的镜像信息在修复后不会保留。