如何在OpenStack Kolla上部署Tungsten Fabric(附14个常见的配置问题)

在这里插入图片描述
首先,使用contil-kolla-ansible-deployer容器在OpenStack Kolla上部署Tungsten Fabric(注:原文为Contrail,本文以功能一致的Tungsten Fabric替换):

更多详细信息,请关注TF中文社区

无论是使用contil-kolla-ansible部署kolla容器,或者使用contrail-ansible-deployer部署Tungsten Fabric容器,都涉及以下主要步骤:

1.设置基本主机
2.部署OpenStack(kolla)和Tungsten Fabric容器

1. 设置基本主机

下面给出的步骤假定是在内核为3.10.0-862.3.2.el7.x86_64.的Centos 7.5基本主机上。vRouter与主机内核具有依赖性。

1.0安装必备软件包

yum -y install epel-release 
yum install -y python-pip
pip install requests

1.1 安装Ansible

yum -y install git
pip install ansible==2.5.2.0

1.2 克隆contrail-ansible-deployer

git clone http://github.com/Juniper/contrail-ansible-deployer
cd contrail-ansible-deployer

1.3 在适当的参数下配置必要的参数config/instances.yaml

这是单节点、单接口的多合一集群的最低配置。

对于多接口设置,请参考以下链接获取推荐的配置:

更多详细信息,请关注TF中文社区

provider_config:
  bms:
    ssh_pwd: 
    ssh_user: root
    ntpserver: 
    domainsuffix: local
instances:
  :
    provider: bms
    ip: 
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      vrouter:
      openstack:
      openstack_compute:  
contrail_configuration:
  AUTH_MODE: keystone
  KEYSTONE_AUTH_URL_VERSION: /v3
kolla_config:
  kolla_globals:
    enable_haproxy: no
    enable_ironic: "no"
    enable_swift: "no"
  kolla_passwords:
    keystone_admin_password: 

这里是一个用于类似多合一单节点的文件,用于解释目的。

provider_config:
  bms:
    ssh_pwd: 
    ssh_user: root
    ntpserver: 
    domainsuffix: local
instances:
 :
    provider: bms
    ip: 
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      vrouter:
      openstack:
      openstack_compute:
global_configuration:
  CONTAINER_REGISTRY: :
  REGISTRY_PRIVATE_INSECURE: True
  CONTAINER_REGISTRY_USERNAME: 
  CONTAINER_REGISTRY_PASSWORD: 
contrail_configuration:
  CLOUD_ORCHESTRATOR: openstack
  # Default value for OPENSTACK_VERSION is 'queens'
  OPENSTACK_VERSION: ocata
  # Default value for CONTRAIL_VERSION is 'latest'. The version must be available in
  # registry specified in CONTAINER_REGISTRY
  CONTRAIL_VERSION: 5.0-198
  # Set UPGRADE_KERNEL to True to automatically install the latest kernel version
  UPGRADE_KERNEL: True
  CONTRAIL_VERSION:   # Ex: latest or any private-repo containers tag.
  VROUTER_GATEWAY: 
  AUTH_MODE: keystone
  KEYSTONE_AUTH_URL_VERSION: /v3
kolla_config:
  kolla_globals:
    enable_haproxy: no
    enable_ironic: no
    enable_swift: no
  kolla_passwords:
    keystone_admin_password: 

这里有一些提示:

a、Provider configuration是指Tungsten Fabric集群主机所在的云服务商。对于裸机服务器,provide将为“bms”。

b、有关此文件字段的更多详细信息,请关注TF中文社区。

c、更多详细信息,请关注TF中文社区,以了解在OpenStack服务的“ kolla_globals”部分和Tungsten Fabric服务的“ contrail_configuration”部分可以自定义哪些字段:

  • Kolla全局档案
  • 更多Kolla配置
  • Tungsten Fabric配置参数

d、如果您要构建自己的容器,则可以将CONTAINER_REGISTRY设置为本地Docker注册表。如果未指定,它将尝试从docker hub中拉取容器。如果指定了自定义注册表,请注意,您必须在kolla_globals下指定与“contrail_docker_registry”相同的注册表。目前暂时不会自动导出,将在以后的代码更改中完成。

e、如果未指定,则CONTRAIL_VERSION将默认为“latest”标签。如果您喜欢nightly build的特定版本,更多详细信息,请关注TF中文社区。

f、其它场景的样本配置(更多详细信息,请关注TF中文社区)

  • 多节点多接口配置
  • 多节点单接口配置

g、如果需要为每个主机指定特定于主机的值(例如,如果集群中的服务器上用于“network_interface”的接口名称不同),更多详细信息,请关注TF中文社区

h、许多参数会自动导出为默认设置,这是第一种配置的工作方式。如果需要,用户可以显式指定变量以覆盖派生的值。如果您想了解派生逻辑,请查看代码。

i、如果您希望在多合一节点上配置Tungsten Fabric + OpenStack,并且所有服务都侦听私有子网IP地址(非mgmt),请按以下方式配置OpenStack:

openstack:
  kolla_internal_address: 192.168.10.10
  network_interface: eth2

如果不需要限制仅访问该子网,则在kolla_globals部分下将“enable_haproxy”设置为“yes”就足够了。

1.4安装Tungsten Fabric和Kolla要求

以下Playbook将软件包安装在部署程序主机以及启动Kolla和Tungsten Fabric容器所需的目标主机上。

ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/configure_instances.yml

2. 配置Tungsten Fabric和Kolla容器

ansible-playbook -i inventory/ playbooks/install_openstack.yml
ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/install_contrail.yml

3. 运行OpenStack命令

3.1 安装OpenStack客户端

由于kolla_toolbox容器已经安装了客户端,因此无需安装OpenStack客户端。更多详细信息,请关注TF中文社区。

或者,如果您希望从基本主机上运行命令,请遵循以下说明。

OpenStack客户端以前是作为Playbook运行的一部分自动安装的。但是在安装python docker组件库时引入了一些必要的python库,这些库现在与从Yum repos中安装python-openstackclients相冲突。获取python-openstackclient软件包的另一个选项是通过“pip”repos进行安装。但是安装这些pip软件包可能会导致Ansible可执行文件崩溃,因为Ansible使用的库也会发生变化。因此,需要使用pip手动安装客户端。

yum install -y gcc python-devel
pip install python-openstackclient
pip install python-ironicclient

3.2 使用VM到VM ping测试您的设置

source /etc/kolla/kolla-toolbox/admin-openrc.sh
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
openstack image create cirros2 --disk-format qcow2 --public --container-format bare --file cirros-0.4.0-x86_64-disk.img                                      
openstack network create testvn
openstack subnet create --subnet-range 192.168.100.0/24 --network testvn subnet1
openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny
NET_ID=`openstack network list | grep testvn | awk -F '|' '{print $2}' | tr -d ' '`
openstack server create --flavor m1.tiny --image cirros2 --nic net-id=${
   NET_ID} test_vm1
openstack server create --flavor m1.tiny --image cirros2 --nic net-id=${
   NET_ID} test_vm2

附:14个常见的配置问题

检查配置的常见问题以及修补程序/解决方法。

1. 找不到Kolla的文件/目录:

[root@a6s14 contrail-ansible-deployer]# ansible-playbook -i inventory/ -e orchestrator=vcenter  playbooks/install_openstack.yml
...
...
ERROR! Unable to retrieve file contents
Could not find or access '/root/contrail-kolla-ansible/ansible/kolla-host.yml'
[root@a6s14 contrail-ansible-deployer]#

解决方法:在运行install_contrail之前,请先运行以下命令:

ansible-playbook -i inventory/ playbooks/configure_instances.yml

2. 在Ansible中缺少IPv4:

TASK [memcached : Copying over config.json files for services] **********************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值