支持使用 MgmtDriver 的 Kubernetes 集群的 Docker 私有仓库¶
https://blueprints.launchpad.net/tacker/+spec/cir-k8s-cluster
问题描述¶
Tacker Wallaby 版本支持规范“支持使用 MgmtDriver 部署 Kubernetes 集群” [1]。部署的 Kubernetes 集群仅支持在 Docker 公共仓库中注册的镜像,不支持 Docker 私有仓库中的镜像。本规范添加了功能,以支持在 Kubernetes 集群环境中使用的 Docker 私有仓库镜像。本规范假定规范“支持使用 MgmtDriver 部署 Kubernetes 集群” [1]。
提议的变更¶
支持以下操作
在部署 Kubernetes 集群 VNF 之前,部署 Docker 私有仓库 VNF。
部署 Kubernetes 集群 VNF,该 VNF 可以支持上述创建的 Docker 私有仓库以及在 Tacker 之外创建的任何其他仓库。
Docker 私有仓库 VNF 的 LCM 操作需要以下更改
使用 MgmtDriver 执行实例化操作以安装 Docker 私有仓库。
使用 MgmtDriver 执行修复操作以重新安装 Docker 私有仓库。
注意
不支持伸缩操作。
终止操作在本规范中超出范围。Docker 私有仓库 VNF 的终止过程中没有特定流程,因此已通过现有实现支持。
Kubernetes 集群 VNF 的 LCM 操作需要以下更改
使用 MgmtDriver 执行 Kubernetes 集群的实例化操作 [1]。
更改:MgmtDriver 在新创建的所有 Master/Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 执行 Kubernetes 集群 Worker 节点的伸缩操作 [2]。
更改:MgmtDriver 在新创建的 Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 执行整个 Kubernetes 集群的修复操作 [3]。
更改:MgmtDriver 在所有创建的 Master/Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 执行 Kubernetes 集群中单个节点(Master/Worker)的修复操作 [3]。
更改:MgmtDriver 在创建的 Master/Worker VM 上配置与 Docker 私有仓库的连接。
为 Kubernetes 集群部署 Docker 私有仓库 VNF¶
将 Docker 私有仓库作为 VNF 部署到 Kubernetes 集群。下图显示了创建 VM 并设置 Docker 私有仓库
+--------------+ +---------+
| Docker Image | | VNFD |
| (Optional) | | |
+------------+-+ +-+-------+
| |
v v +---------------+
+----------+ | Instantiation |
| | | Request with |
| CSAR | | Additional |
| | | Params |
+----+-----+ +-+-------------+
| | 1. Instantiate VNF
| |
+-----+----------+-------------+
| v v VNFM |
| +-------------------+ |
| | Tacker-server | |
| +-------+-----------+ |
| | |
| v |
+--------------------------+ 4. Run Private | +------------------------+ |
| | registry | | | |
| +--------------------+ | container | | +--------------+ | |
| | Docker container |<-+-----------------+--+----+ | | |
| | (Private registry) | | | | | MgmtDriver | | |
| +--------------------+ | 3. Docker | | | | | |
| +--------------------+ | Installation | | | | | |
| | Docker |<-+-----------------+--+----+ | | |
| +--------------------+ | | | +--------------+ | |
| | | | +--------------+ | |
| | 2. Create VM | | | OpenStack | | |
| |<----------------+--+----+ Infra Driver | | |
| | | | +--------------+ | |
| VM | | | | |
+--------------------------+ | | Tacker-conductor | |
+--------------------------+ | +------------------------+ |
| Hardware Resources | | |
+--------------------------+ +------------------------------+
Docker 私有仓库 VNF 的 VNFD¶
VNFD 需要一个 VDU 和一个或多个 CP,以及 instantiate_end 和 heal_end 的接口定义,如下所示示例
node_templates:
VNF:
...
interfaces:
Vnflcm:
...
instantiate_end:
implementation: mgmt-drivers-private-registry
heal_end:
implementation: mgmt-drivers-private-registry
artifacts:
mgmt-drivers-private-registry:
description: Management driver for Docker private registry
type: tosca.artifacts.Implementation.Python
file: Scripts/private_registry_mgmt.py
PrivateRegistryVDU:
type: tosca.nodes.nfv.Vdu.Compute
...
CP1:
type: tosca.nodes.nfv.VduCp
...
requirements:
- virtual_binding: PrivateRegistryVDU
...
实例化 Docker 私有仓库 VNF 操作的请求参数¶
用户提供 ETSI NFV-SOL003 v2.6.1 中定义的 InstantiateVnfRequest 数据类型 [4] 作为请求参数。它基本上与规范“基于 ETSI NFV-SOL 规范的 VNF REST API” [5] 中描述的参数相同。用户可以使用以下 additionalParams
属性名称 |
基数 |
参数描述 |
|---|---|---|
private_registry_installation_param |
1 |
私有仓库安装配置。 |
>ssh_cp_name |
1 |
MgmtDriver 在 SSH/SFTP 访问私有仓库 VM 时使用的 CP 名称。 |
>ssh_username |
1 |
MgmtDriver 在 SSH/SFTP 访问私有仓库 VM 时使用的用户名。 |
>ssh_password |
1 |
MgmtDriver 在 SSH/SFTP 访问私有仓库 VM 时使用的用户密码。 |
>image_path |
0..1 |
可选。私有仓库容器在 Docker 上运行的 VNF 包中 Docker 镜像文件的路径。如果省略此属性,则从 Docker 公共仓库拉取私有仓库容器的镜像。如果私有仓库 VM 无法连接到 Docker 公共仓库,请使用“docker save”命令创建的文件放入 VNF 包中,并在该属性中指定文件的路径。 |
>port_no |
0..1 |
可选。默认值为 5000。提供私有仓库服务的 TCP 端口号。 |
以下是 Instantiate VNF 请求 POST /vnflcm/v1/vnf_instances/{vnfInstanceId}/instantiate 中提供的 body 的示例
{
"flavourId": "simple",
"extVirtualLinks": [
{
"id": "net0",
"resourceId": "f0c82461-36b5-4d86-8322-b0bc19cda65f",
"extCps": [
{
"cpdId": "CP1",
"cpConfig": [
{
"cpProtocolData": [
{
"layerProtocol": "IP_OVER_ETHERNET"
}
]
}
]
}
]
}
],
"additionalParams": {
"private_registry_installation_param": {
"ssh_cp_name": "CP1",
"ssh_username": "ubuntu",
"ssh_password": "ubuntu",
"image_path": "Files/images/private_registry.tar"
}
},
"vimConnectionInfo": [
{
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
"vimId": "8d8373fe-6977-49ff-83ac-7756572ed186",
"vimType": "openstack"
}
]
}
实例化 Docker 私有仓库 VNF 操作的序列¶
该过程包括以下步骤,如图所示
客户端发送 POST Instantiate VNF 请求。
它基本上与规范“基于 ETSI NFV-SOL 规范的 VNF REST API” [5] 的“2) VNF 实例实例化流程”章节中描述的序列相同,除了 MgmtDriver 之外。
以下流程在
instantiate_end中执行。MgmtDriver 从 Heat 获取私有仓库 VM 的 IP 地址。
MgmtDriver 在私有仓库 VM 上安装 Docker。
如果请求参数“image_path”指定,MgmtDriver 将 Docker 镜像文件传输到私有仓库 VM。
MgmtDriver 使用 Docker 镜像在 Docker 上运行私有仓库容器。
MgmtDriver 使用如下命令启动私有仓库容器
sudo docker run -d -p 5000:5000 -v /home/ubuntu/registry:/var/lib/registry --restart=always --name private_registry registry:latest
注意
私有仓库容器的 Docker 镜像名称为
registry。如果指定了请求参数“image_path”,则使用“docker load”命令从传输的镜像文件加载registry镜像。如果省略了请求参数“image_path”,则使用“docker pull”命令从 Docker 公共仓库拉取registry镜像。注意
上述示例命令假定私有仓库 VM 的操作系统为 Ubuntu 20.04。
使用 MgmtDriver 的 Docker 私有仓库 VNF 的修复操作¶
下图显示了 Docker 私有仓库 VNF 的 Heal VNF 操作
+--------------+
| Heal Request |
+-+------------+
| 1. Heal VNF
|
+-----+------------------------+
| v VNFM |
| +-------------------+ |
| | Tacker-server | |
| +-------+-----------+ |
| | |
+--------------------------+ | v |
| | 5. Run Private | +------------------------+ |
| | registry | | | |
| +--------------------+ | container | | +--------------+ | |
| | Docker container |<-+------------------+--+----+ | | |
| | (Private registry) | | | | | MgmtDriver | | |
| +--------------------+ | 4. Docker | | | | | |
| +--------------------+ | Installation | | | | | |
| | Docker |<-+------------------+--+----+ | | |
| +--------------------+ | | | +--------------+ | |
| | 3. Create new VM | | +--------------+ | |
| VM |<-----------------+--+----+ OpenStack | | |
+--------------------------+ | | | Infra Driver | | |
2. Delete +--+--+----+ | | |
+--------------------------+ failed VM | | | +--------------+ | |
| VM |<--------------+ | | | |
+--------------------------+ | | Tacker-conductor | |
+--------------------------+ | +------------------------+ |
| Hardware Resources | | |
+--------------------------+ +------------------------------+
修复操作的 VNFD¶
与“Docker 私有仓库 VNF 的 VNFD”章节相同。
修复 Docker 私有仓库 VNF 操作的请求参数¶
与规范“基于 ETSI NFV-SOL 规范的 VNF REST API” [5] 中描述的参数相同。
修复 Docker 私有仓库 VNF 操作的序列¶
该过程包括以下步骤,如图所示
客户端发送 POST Heal VNF 请求。
它基本上与规范“基于 ETSI NFV-SOL 规范的 VNF REST API” [5] 的“3) VNF 实例修复流程”章节中描述的序列相同,除了 MgmtDriver 之外。
以下流程在
heal_end中执行。MgmtDriver 从 Heat 获取新的私有仓库 VM 的 IP 地址。
MgmtDriver 从 VnfInstance(Tacker DB)获取 Instantiate VNF 请求的
additionalParams。MgmtDriver 在新的私有仓库 VM 上安装 Docker。
如果 Instantiate VNF 请求参数“image_path”指定,MgmtDriver 将 Docker 镜像文件传输到新的私有仓库 VM。
MgmtDriver 使用 Docker 镜像在 Docker 上运行私有仓库容器。
可以连接到 Docker 私有仓库的 Kubernetes 集群 VNF 的部署¶
基于规范“支持使用 MgmtDriver 部署 Kubernetes 集群” [1],添加连接到 Docker 私有仓库的功能。
下图显示了创建 Kubernetes 集群并配置与 Docker 私有仓库的连接
+---------+ +---------+
| Cluster | | |
| Install | | VNFD |
| Script | | |
+----------------+ +-------+-+ +-+-------+
| CA certificate +--+ | |
+----------------+ | v v
+---------------+ | +----------+ +---------------+
| LCM operation | +--->| | | Instantiation |
| UserData +------>| CSAR | | Request with |
+---------------+ | | | Additional |
+------------+ +--->| | | Params |
| Heat | | +----+-----+ +-+-------------+
| Template +--+ | | 1. Instantiate VNF
| (Base HOT) | | |
+------------+ +-----+----------+-------------+
| v v VNFM |
| +------------------+ |
| | Tacker-server | |
| +-------+----------+ |
3. Kubernetes Cluster | | |
Installation | v |
4. Configure connections | +------------------------+ |
to Docker private registries | | +--------------+ | |
+-------------+--------------------+--+----+ MgmtDriver | | |
| | | | +--------------+ | |
+-------+-------------+--------+ | | | |
| | | | | | | |
| +----+-----+ +----+-----+ | | | | |
| | v | | v | | | | +--------------+ | |
| | +------+ | | +------+ | | | | | OpenStack | | |
| | |Worker| | | |Master| |<-+-----------+--+----+ Infra Driver | | |
| | +------+ | | +------+ | | 2. Create | | +--------------+ | |
| | VM | | VM | | VMs | | | |
| +----------+ +----------+ | | | | |
+------------------------------+ | | Tacker-conductor | |
+------------------------------+ | +------------------------+ |
| Hardware Resources | | |
+------------------------------+ +------------------------------+
Kubernetes 集群 VNF 的 VNFD¶
与用户指南“如何使用 Mgmt Driver 部署 Kubernetes 集群” [6] 没有变化。
带有 Docker 私有仓库的请求参数¶
将以下属性添加到用户指南“如何使用 Mgmt Driver 部署 Kubernetes 集群” [6] 中描述的 additionalParams 中。
属性名称 |
基数 |
参数描述 |
|---|---|---|
k8s_cluster_installation_param |
1 |
Kubernetes 集群安装配置。 |
>private_registry_connection_info |
0..N |
可选。配置连接到 Docker 私有仓库。 |
>>connection_type |
1 |
连接类型。设置以下值之一。
0:HTTP,1:HTTPS
如果通过 HTTP 连接到部署的 Docker 私有仓库 VNF 或 Tacker 之外的 Docker 私有仓库,则设置为 0。
如果通过 HTTPS 连接到 Tacker 之外的 Docker 私有仓库,则设置为 1。
|
>>server |
1 |
要连接的 Docker 私有仓库的服务器名称。例如,“192.168.0.10:5000” |
>>username |
0..1 |
可选。登录到 Docker 私有仓库的用户名。 |
>>password |
0..1 |
可选。登录到 Docker 私有仓库的密码。 |
>>certificate_path |
0..1 |
可选。用于 HTTPS 连接的 CA 证书文件的路径。 |
>>hosts_string |
0..1 |
可选。要添加到 /etc/hosts 的字符串。基本的 Kubernetes 集群环境没有 DNS 服务器,必须添加到 /etc/hosts。该值由“<IP 地址> <FQDN>”组成。例如,“192.168.0.20 registry.example.com” |
以下是 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/24",
"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,registry.example.com",
"k8s_node_cidr": "192.168.0.0/24"
},
"private_registry_connection_info": [
{
"connection_type": "0",
"server": "192.168.0.10:5000"
},
{
"connection_type": "1",
"server": "registry.example.com",
"username": "user01",
"password": "user01",
"certificate_path": "Files/registries/ca.crt",
"hosts_string": "192.168.0.20 registry.example.com"
}
]
},
"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"
}
]
}
]
}
]
}
],
"vimConnectionInfo": [
{
"id": "8a3adb69-0784-43c7-833e-aab0b6ab4470",
"vimId": "8d8373fe-6977-49ff-83ac-7756572ed186",
"vimType": "openstack"
}
]
}
使用 Docker 私有仓库实例化 Kubernetes 集群 VNF 的序列¶
该过程由上述序列中说明的以下步骤组成。
客户端发送 POST Instantiate VNF 请求。
它基本上与规范“支持使用 MgmtDriver 部署 Kubernetes 集群” [1] 中描述的序列相同,除了以下其他流程。
以下流程添加到
instantiate_end中。MgmtDriver 从 Heat 获取私有仓库 VM 的 IP 地址。
MgmtDriver 在所有 Master/Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 伸缩 Kubernetes 集群 Worker 节点的规模操作¶
基于规范“支持使用 Mgmtdriver 伸缩 Kubernetes Worker 节点” [2],添加连接到 Docker 私有仓库的功能。
下图显示了伸缩 VNF 操作
+---------------+
| Scale Request |
+--+------------+
| 1. Scale VNF
| (Scale-out)
+----------------+------------+
| v VNFM |
| +------------------+ |
| | Tacker-server | |
| +-------+----------+ |
3. Kubernetes Cluster | | |
Installation | v |
4. Configure connections | +-----------------------+ |
to Docker private registries | | +-------------+ | |
+----------------------+--+----+ MgmtDriver | | |
| | | +-------------+ | |
+---------------------+--------+ | | | |
| | | | | | |
| +----------+ +----+-----+ | | | | |
| | | | v | | 2. Add | | +-------------+ | |
| | +------+ | | +------+ | | new VM | | | OpenStack | | |
| | |Master| | | |Worker| |<-+-------------+--+----+ InfraDriver | | |
| | +------+ | | +------+ | | | | +-------------+ | |
| | VM | | VM | | | | | |
| +----------+ +----------+ | | | | |
| +----------+ | | | | |
| | +------+ | | | | | |
| | |Worker| | | | | | |
| | +------+ | | | | | |
| | VM | | | | | |
| +----------+ | | | | |
+------------------------------+ | | Tacker-conductor | |
+------------------------------+ | +-----------------------+ |
| Hardware Resources | | |
+------------------------------+ +-----------------------------+
伸缩操作的 VNFD¶
与规范“支持使用 Mgmtdriver 伸缩 Kubernetes Worker 节点” [2] 没有变化。
伸缩操作的请求参数¶
与规范“支持使用 Mgmtdriver 伸缩 Kubernetes Worker 节点” [2] 没有变化。
伸缩操作的序列¶
该过程由上述序列中说明的以下步骤组成。
客户端发送 POST Scale VNF 请求。
它基本上与规范“支持使用 Mgmtdriver 伸缩 Kubernetes Worker 节点” [2] 中描述的序列相同,除了以下其他流程。
以下流程添加到
scale_end中。MgmtDriver 从 VnfInstance(Tacker DB)获取 Instantiate VNF 请求的
private_registry_connection_info。MgmtDriver 将 CA 证书文件传输到新的 Worker VM(如果 Instantiate VNF 请求参数指定)。
MgmtDriver 在新的 Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 的整个 Kubernetes 集群的修复操作¶
基于规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3],添加连接到 Docker 私有仓库的功能。
下图显示了 Heal VNF(整个 Kubernetes 集群)操作
+--------------+
| Heal Request |
+-+------------+
| 1. Heal VNF
|
+----------------+------------+
| v VNFM |
| +-------------------+ |
| | Tacker-server | |
| +---------+---------+ |
5. Kubernetes Cluster | | |
Installation | v |
6. Configure connections | +-----------------------+ |
to Docker private registries | | +-------------+ | |
+-------------+---------------------+--+----+ MgmtDriver | | |
| | | | +-------------+ | |
| | | | 2. Delete old | |
| | | | Kubernetes cluster | |
| | | | information | |
| | | | 7. Register new | |
+-------+-------------+--------+ | | Kubernetes cluster | |
| | | | | | information | |
| +----+-----+ +----+-----+ | | | | |
| | v | | v | | 4. Create | | +-------------+ | |
| | +------+ | | +------+ | | new VMs | | | OpenStack | | |
| | |Master| | | |Worker| | |<-----------+--+----+ InfraDriver | | |
| | +------+ | | +------+ | | | | +---+---------+ | |
| | VM | | VM | | | | | | |
| +----------+ +----------+ | | | | | |
| Kubernetes cluster(new) | | | | | |
+------------------------------+ | | | | |
+------------------------------+ | | | | |
| +----------+ +----------+ | 3. Delete | | | | |
| | +------+ | | +------+ | | failed VMs | | | | |
| | |Master| | | |Worker| | |<-----------+--+--------+ | |
| | +------+ | | +------+ | | | | | |
| | VM | | VM | | | | | |
| +----------+ +----------+ | | | | |
| Kubernetes cluster(old) | | | | |
+------------------------------+ | | Tacker-conductor | |
+------------------------------+ | +-----------------------+ |
| Hardware Resources | | |
+------------------------------+ +-----------------------------+
修复操作的 VNFD¶
与规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3] 没有变化。
修复操作的请求参数¶
与规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3] 没有变化。
修复(整个 Kubernetes 集群)操作的序列¶
该过程由上述序列中说明的以下步骤组成。
客户端发送 POST Heal VNF 请求。
它基本上与规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3] 中描述的序列相同,除了以下其他流程。
以下流程添加到
heal_end中。MgmtDriver 从 VnfInstance(Tacker DB)获取 Instantiate VNF 请求的
private_registry_connection_info。MgmtDriver 将 CA 证书文件传输到所有新的 Master/Worker VM(如果 Instantiate VNF 请求参数指定)。
MgmtDriver 在所有新的 Master/Worker VM 上配置与 Docker 私有仓库的连接。
使用 MgmtDriver 的 Kubernetes 集群中单个节点(Master/Worker)的修复操作¶
基于规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3],添加连接到 Docker 私有仓库的功能。
下图显示了 Heal VNF(单个节点)操作
+--------------+
| Heal Request |
+-+------------+
| 1. Heal VNF
|
+----------------+------------+
| v VNFM |
| +-------------------+ |
| | Tacker-server | |
| +---------+---------+ |
5. Kubernetes Cluster | | |
Installation | v |
6. Configure connections | +-----------------------+ |
to Docker private registries | | +-------------+ | |
+------------------------+--+----+ MgmtDriver | | |
| | | +------------++ | |
| | | 2. Evacuating | | |
| | | Pods(Worker) | | |
+------------+------------+ | | and removing | | |
| | | | | failed node | | |
| | | | | from cluster | | |
| | | | | (Master/Worker) | | |
| +---------+---------+ | | | | | |
| | v | | 4. Create | | +-------------+ | | |
| | +---------------+ | | new VM | | | OpenStack | | | |
| | | Master/Worker | |<-+-----------+--+-+ InfraDriver | | | |
| | +---------------+ | | | | +------+------+ | | |
| | VM | | | | | | | |
| +-------------------+ | | | | | | |
| +-------------------+ | 3. Delete | | | | | |
| | +---------------+ | | failed VM | | | | | |
| | | Master/Worker | |<-+-----------+--+--------+ | | |
| | +---------------+ | | | | | | |
| | VM |<-+-----------+--+-----------------+ | |
| +-------------------+ | | | | |
+-------------------------+ | | Tacker-conductor | |
+-------------------------+ | +-----------------------+ |
| Hardware Resources | | |
+-------------------------+ +-----------------------------+
修复操作的 VNFD¶
与规范“支持使用 Mgmtdriver 修复 Kubernetes Master/Worker 节点” [3] 没有变化。
修复操作的请求参数¶
与规范“使用Mgmtdriver支持修复Kubernetes Master/Worker节点”相比没有变化 [3]。
修复操作(单个节点)的流程¶
该过程由上述序列中说明的以下步骤组成。
客户端发送 POST Heal VNF 请求。
它基本上与规范“使用Mgmtdriver支持修复Kubernetes Master/Worker节点”中描述的流程相同 [3],除了以下附加流程。
以下流程添加到
heal_end中。MgmtDriver 从 VnfInstance(Tacker DB)获取 Instantiate VNF 请求的
private_registry_connection_info。如果实例化VNF请求参数指定,MgmtDriver会将CA证书文件传输到新的Master/Worker VM。
MgmtDriver配置对新Master/Worker VM上Docker私有注册表的连接。
备选方案¶
无
数据模型影响¶
无
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>
工作项¶
提供由MgmtDriver执行的以下示例脚本
对于Docker私有注册表VNF
在
instantiate_end和heal_end中安装Docker私有注册表。对于Kubernetes集群VNF
根据Wallaby发布的Kubernetes集群脚本,添加连接到Docker私有注册表的流程。
添加新的单元和功能测试。
依赖项¶
Kubernetes集群的LCM操作取决于以下规范
测试¶
将添加单元和功能测试,以涵盖规范所需的用例。
文档影响¶
完整的用户指南将添加,以解释如何部署Docker私有注册表VNF以及如何从Kubernetes集群连接到Docker私有注册表。