在CentOS 7和Kubernetes上使用Ansible安装OpenContrail

时间:2020-02-23 14:31:45  来源:igfitidea点击:

在CentOS 7服务器上使用Ansible安装OpenContrail的步骤。
我正在新安装的CentOS 7服务器上进行此操作,以进行POC和测试。

在进入安装步骤之前,我们只需要定义OpenContrail是什么即可。
这将对OpenContrail的新手有所帮助。

什么是OpenContrail?

OpenContrail官方将OpenContrail定义为"使用基于标准的协议构建的Apache 2.0许可项目,并为网络虚拟化提供所有必需的组件-SDN控制器,虚拟路由器,分析引擎和已发布的北向API。
它具有广泛的REST API,可以从系统配置和收集操作和分析数据。
"

OpenContrail关键功能。

路由和交换负载平衡网络服务性能和规模安全性和策略网关服务丰富的分析HA和升级API和编排请单击提供的链接以获取有关这些项目的详细说明。

我们想要在使用OpenContrail的项目中实现的目标是:

设置覆盖网络以互连两个数据中心,而无需依赖基础网络链接。
这将有助于2个区域的VM移动性。
为我们的Openstack/Cloudstack和VMware Infrastructure下的VM的VPC(虚拟私有云)实现更好的功能。
使用OpenContrail作为SD WAN服务的控制器

设置准备工作

对于此设置,我将在一台服务器上运行所有内容。
一旦确信可以在生产环境中运行它,我们将必须使用HA进行多服务器安装。
我的专用服务器规格为:Dell PowerEdge R610英特尔®至强®CPU L5630 @ 2.13GHz(2×8)96GB RAMOS:CentOS Linux版本7.4.1708(Core)准备工作是:Python 2.7Dockerpython-pipdocker-composedocker- pyansibleKubernetes – kubelet kubeadm kubectl kubernetes-cni

安装准备工作

除非我们是SELinux专家,否则请禁用SELinux:

# setenforce 0
# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# cat /etc/selinux/config

另外,禁用firewalld,我们将需要打开大量端口。
稍后,当所有内容都在运行时,可以将其打开。

# systemctl disable firewalld && systemctl stop firewalld

添加epel存储库:

要添加epel存储库,请运行以下命令:

# yum -y install epel-release

安装Docker

对于Docker安装,请使用我们的教程:如何在Ubuntu/Debian/Fedora上安装Docker CE

安装ansible,python-pip,docker-compose和docker-py python模块

接下来的部分我们需要将这些项目安装在服务器上。
因此,请在此处安装它们。

# yum -y install ansible python-pip docker-compose
# pip install --upgrade pip
# pip install docker-py docker-compose

安装kubelet kubeadm kubectl kubernetes-cni

我们必须首先为CentOS 7添加官方的Kubernetes存储库。

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

然后安装软件包:

# yum install -y kubelet kubeadm kubectl kubernetes-cni

启动并启用Docker

# systemctl start docker && systemctl enable docker

如果我们从Kubelet收到有关启用交换功能的错误投诉,则可以使用命令swapoff将其关闭。

# swapoff /dev/mapper/centos-swap

至此,我们已经满足了所有依赖性。
继续部署OpenContrail。

在Kubernetes上使用Ansible部署OpenContrail

如果尚未安装git,vim,tmux和bash-completion,请安装。

# yum -y install vim git tmux bash-completion

克隆OpenContrail Ansible存储库:

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

配置主机列表

切换到contil-ansible-deployer目录:

# cd contrail-ansible-deployer

编辑文件:

# cat inventory/hosts 
localhost:
hosts:
localhost:
config_file: ../config/instances.yaml
connection: local
ansible_connection: local
python_interpreter: python
ansible_python_interpreter: python
container_hosts: 
 hosts:
 localhost
# ansible_ssh_pass: contrail123
# 192.168.1.101:
# ansible_ssh_pass: contrail123
# 192.168.1.102:
# ansible_ssh_pass: contrail123

如果容器主机是远程主机,请取消注释container_hosts的行:请注意,如果未提供配置,则剧本将在列表/主机中指定的所有主机上进行一次全部安装。
默认情况下,以下角色已安装:['analytics ','analytics_database','config','config_database','control','k8s_master','vrouter','webui']。
注册表默认为opencontrailnightnight和容器的最新标签。
必须创建group_vars/container_hosts.yml。
库存/group_vars目录包含一些示例。
在此文件中可以设置以下设置:Contrail服务配置注册表设置容器版本角色分配

填充配置

编辑文件config/instances.yaml

vim config/instances.yaml

创建一个新的tmux会话并开始部署。

# tmux new -s contrail
# ansible-playbook -i inventory/playbooks/deploy.yml | tee /root/setup-contrail.log

等待部署完成。
UI仪表板应可在以下位置访问:

https://host-ip:8143

用户名:admin密码:contrail123