从 Contrail 网络版本 2005 开始,您可以使用 Contrail Ansible Deployer 容器执行 Contrail 网络的零影响升级 (ZIU)。Contrail Ansible Deployer 容器映像可以从托管在 的 hub.juniper.net/contrail瞻博网络 Contrail 容器注册表加载。
使用本文档中的过程,使用 Contrail Ansible Deployer 容器执行 Contrail 网络的零影响升级 (ZIU)。此 ZIU 允许 Contrail 网络进行升级,同时保持最短的网络停机时间。
此过程说明如何使用 Ansible 部署程序容器执行 ZIU。其中包括从 Contrail 网络版本 2005 升级到版本 2008 所执行步骤的代表性示例。
要使用 Ansible 部署程序执行 ZIU,请执行以下操作:
- 拉取 contrail-ansible-deployer 目标升级版本的文件。此过程通常从环境中运行的 Contrail 控制器执行,但也可以从与正在升级的部署具有网络连接的单独服务器执行。
此过程说明如何从瞻博网络 Contrail 容器注册表加载 2008 映像。但是,您也可以更改值以从专用注册表加载文件。
瞻博网络 Contrail 容器注册表托管在 hub.juniper.net/contrail。如果需要凭据来访问注册表,请发送电子邮件 mailto:contrail-registry@juniper.net。
输入以下命令以从注册表中提取 contrail-ansible-deployer 文件:
sudo docker login -u <username> -p <password> hub.juniper.net
sudo docker pull hub.juniper.net/contrail/contrail-kolla-ansible-deployer:2008.<contrail_container_tag>
其中:
- 启动 Contrail Ansible Deployer:
docker run -t --net host -d --privileged --name contrail-kolla-ansible-deployer hub.juniper.net/contrail/contrail-kolla-ansible-deployer:2008.<contrail_container_tag>
- 导航到 instances.yaml 该文件并将其打开以进行编辑。
该文件 instances.yaml 用于最初部署安装程序。 instances.yaml 可以将其加载到 Contrail Ansible Deployer 中并进行编辑以支持目标升级版本。
使用 VI 作为编辑器的 Contrail 2008 版目标升级示例:
docker cp instances.yaml contrail-kolla-ansible-deployer:/root/contrail-ansible-deployer/config/instances.yaml
docker exec -it contrail-kolla-ansible-deployer bash
cd /root/contrail-ansible-deployer/config/
vi instances.yaml
- 从现有部署中将 更新CONTRAIL_CONTAINER_TAG为 instances.yaml 文件中所需的版本标记。该CONTRAIL_CONTAINER_TAG变量位于 instances.yaml 文件中的层次结构中contrail_configuration:。
任何 Contrail Release 20 软件的信息 CONTRAIL_CONTAINER_TAG 都可以从 README Access to Contrail Networking Registry 20xx 获得。
下面是文件配置instances.yml示例:
contrail_configuration:
CONTRAIL_CONTAINER_TAG: "2008.121"
CONFIG_DATABASE_NODEMGR__DEFAULTS__minimum_diskGB: "2"
DATABASE_NODEMGR__DEFAULTS__minimum_diskGB: "2"
JVM_EXTRA_OPTS: "-Xms1g -Xmx2g"
VROUTER_ENCRYPTION: FALSE
LOG_LEVEL: SYS_DEBUG
CLOUD_ORCHESTRATOR: kubernetes
- 通过从 Contrail ansible 部署程序容器内部运行 ziu.yml playbook 文件来升级控制平面。
对于 Contrail 网络版本 2005 至 Contrail 网络版本 2008:
通过运行 ziu.yml 剧本文件升级控制平面。
sudo -E ansible-playbook -v -e orchestrator=openstack -e config_file=instances.yaml playbooks/ziu.yml
对于 Contrail 网络版本 2011 及更高版本:
通过运行 playbook 文件的控制器阶段来升级控制平面 ziu.yml 。
sudo -E ansible-playbook -v -e stage=controller -e orchestrator=openstack -e config_file=../instances.yaml playbooks/ziu.yml
- 通过运行 install_openstack.yml 剧本文件来升级 Openstack 插件。
对于 Contrail 网络版本 2005 至 Contrail 网络版本 2008:
sudo -E ansible-playbook -v -e orchestrator=openstack -e config_file=instances.yaml playbooks/install_openstack.yml
对于 Contrail 网络版本 2011 及更高版本:
sudo -E ansible-playbook -v -e stage=openstack -e orchestrator=openstack -e config_file=../instances.yaml playbooks/ziu.yml
- 输入命令以
contrail-status
监控升级状态。确保所有 Pod 都达到状态,所有服务都达到状态runningactive。
成功升级后,此 contrail-status
命令提供以下输出:
Original
Pod Service Name State
redis contrail-external-redis running
rsyslogd running
analytics api contrail-analytics-api running
analytics collector contrail-analytics-collector running
analytics nodemgr contrail-nodemgr running
analytics provisioner contrail-provisioner running
analytics-alarm alarm-gen contrail-analytics-alarm-gen running
analytics-alarm kafka contrail-external-kafka running
analytics-alarm nodemgr contrail-nodemgr running
analytics-alarm provisioner contrail-provisioner running
analytics-snmp nodemgr contrail-nodemgr running
analytics-snmp provisioner contrail-provisioner running
analytics-snmp snmp-collector contrail-analytics-snmp-collector running
analytics-snmp topology contrail-analytics-snmp-topology running
config api contrail-controller-config-api running
config device-manager contrail-controller-config-devicemgr running
config dnsmasq contrail-controller-config-dnsmasq running
config nodemgr contrail-nodemgr running
config provisioner contrail-provisioner running
config schema contrail-controller-config-schema running
config stats contrail-controller-config-stats running
config svc-monitor contrail-controller-config-svcmonitor running
config-database cassandra contrail-external-cassandra running
<trimmed>
vrouter kernel module is PRESENT
== Contrail control ==
control: active
nodemgr: active
named: active
dns: active
== Contrail analytics-alarm ==
nodemgr: active
kafka: active
alarm-gen: active
== Contrail kubernetes ==
kube-manager: active
== Contrail database ==
nodemgr: active
query-engine: active
cassandra: active
== Contrail analytics ==
nodemgr: active
api: active
collector: active
== Contrail config-database ==
nodemgr: active
zookeeper: active
rabbitmq: active
cassandra: active
== Contrail webui ==
web: active
job: active
== Contrail vrouter ==
nodemgr: active
agent: active
== Contrail analytics-snmp ==
snmp-collector: active
nodemgr: active
topology: active
== Contrail config ==
svc-monitor: active
nodemgr: active
device-manager: active
api: active
schema: active
- 从一组计算节点迁移工作负载 VM。在 instances.yaml 文件中将它们保留为未注释。注释其他尚未准备好在实例中升级的计算.yaml。
- 升级计算节点。
对于 Contrail 网络版本 2005 至 Contrail 网络版本 2008:
install_contrail.yml运行 playbook 文件以升级文件中未注释instances.yaml的计算节点。在此步骤中,只有 8 中未注释的计算节点才会升级到目标版本。
sudo -E ansible-playbook -v -e orchestrator=openstack -e config_file=instances.yaml playbooks/install_contrail.yml
对于 Contrail 网络版本 2011 及更高版本:
运行 playbook 文件的计算阶段 ziu.yml ,以升级文件中未注释 instances.yaml 的计算节点。在此步骤中,只有 8 中未注释的计算节点才会升级到目标版本。
sudo -E ansible-playbook -v -e stage=compute -e orchestrator=openstack -e config_file=../instances.yaml playbooks/ziu.yml
- 重复步骤 8 和 9 ,直到升级所有计算节点。