在CentOS 7和Kubernetes上使用Ansible安装OpenContrail
在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