-
Notifications
You must be signed in to change notification settings - Fork 34
Docker Networking Distribution: Contents and Usage
- Contrail Networking
- Contrail Components
- Distribution
- Contents
- Contents Explained
-
Setup Environment
6.1 > Docker Containers
6.2 > Package Repo
6.3 > Contrail Tools
Contrail Networking solution provides all Contrail components excluding orchestrator related enhancements. Customers can use their preferred Orchestrator like Openstack etc to use with Contrail.
This document explains about how Contrail distributes its networking-only solution and how to use the same to create necessary environment for provisioning it.
Typical Contrail setup involves multiple Contrail services. These services are grouped into roles and are as listed below
-
Contrail Controller
Responsible for the routing control plane, configuration management, and the user interface. Provide APIs to integrate with an orchestration system or a custom user interface. -
Contrail Analytics
Analytics nodes collect, store, correlate, and analyze information from network elements, virtual or physical. This information includes statistics, logs, events, and errors -
Contrail AnalyticsDB
Provides Database services to Analytics -
Contrail vRouter
Responsible for managing the data plane -
Contrail Neutron Plugin
Contrail's extension to neutron services
Contrail Controller, Contrail Analytics, Contrail AnalyticsDB are distributed as docker containers while vRouter/Neutron-plugin are distributed as deb/rpm packages to facilitate easy integration with the Customer's existing orchestration setup.
Docker Containers, Packages and tools required to provision the Contrail Networking solution is provided as a compressed tarfile named
contrail-networking-docker_<release-version>.tgz
For Kubernetes:
contrail-kubernetes-docker_<release-version>.tgz
where
"release" specifies the Contrail Release and
"version" specifies the Build-ID.
eg: contrail-networking-docker_4.0.0.0-1234.tgz,
contrail-kubernetes-docker_4.0.0.0-1234.tgz
contrail-networking-docker_<release-version>.tgz inturn contains below listed tarfiles which contains the actual packages and scripts.
- contrail-docker-images_<release-version>.tgz
- contrail-vrouter-packages_<release-version>.tgz
- contrail-neutron-plugin-packages_<release-version>.tgz
- contrail-networking-tools_<release-version>.tgz
- contrail-networking-thirdparty_<release-version>.tgz
- contrail-networking-dependents_<release-version>.tgz
- contrail-openstack-networking-extras_<release-version>.tgz
- contrail-kubernetes-docker-images_<release-version>.tgz
- contrail-networking-tools_<release-version>.tgz
- contrail-networking-thirdparty_<release-version>.tgz
- contrail-networking-dependents_<release-version>.tgz
- contrail-docker-images_<release-version>.tgz
- contrail-vrouter-packages_<release-version>.tgz
- contrail-neutron-plugin-packages_<release-version>.tgz
- contrail-networking-tools_<release-version>.tgz
- contrail-networking-thirdparty_<release-version>.tgz
Note: For Redhat platform, contrail-networking-dependents is not packaged as the upstream Redhat packages are distributed through Redhat Portal subscription.
Contrail Controller, Contrail Analytics, Contrail AnalyticsDB are provided as Docker containers images in contrail-docker-images_<release-version>.tgz
. These Docker Containers images are preinstalled with necessary deb/rpm packages and can be started using docker commands.
Apart from the Docker container images, packages needed for Contral vRouter
and Contrail Neutron plugin
are provided in contrail-vrouter-packages_<release-version>.tgz
and contrail-neutron-plugin-packages_<release-version>.tgz
respectively along with its upstream package dependencies in contrail-networking-dependents_<release-version>.tgz
for Ubuntu
platform.
Refer to Docker Distribution for complete information about the each tgz listed above.
This section explains about the necessary environment required for provisioning Contrail components.
Copy below tarfile to the target node and provision as explained in the Provisioning Section
contrail-docker-images_<release-version>.tgz
(contrail-kubernetes-docker-images_<release-version>.tgz for kubernetes)
We'd recommend to create a local docker registry to host contrail docker container images.
Refer Deploying a Registry Server on how to set a local docker registry
Extract contrail-docker-images_<release-version>.tgz
(contrail-kubernetes-docker-images_<release-version>.tgz
for kubernetes) which contains all required docker container images and push them to the registry.
Since Contrail Networking assumes using Customer provided Orchestrator, Contrail vRouter has to be installed on the pre provisioned Compute Node
node where nova-compute runs while Contrail Neutron Plugin gets installed in the Controller Node
where Neutron server runs.
To Install these two components (Contrail vRouter
, Contrail Neutron Plugin
), A package repo needs to be setup with below given list of tarfiles. This package repo can be placed in one of the lab server and the target nodes can have the reference to this repo so the packages can be automatically downloaded during installation.
Ubuntu:
contrail-vrouter-packages_<release-version>.tgz
contrail-neutron-plugin-packages_<release-version>.tgz
contrail-networking-thirdparty_<release-version>.tgz
contrail-networking-dependents_<release-version>.tgz
Kubernetes (Ubuntu 16.04)
contrail-networking-thirdparty_<release-version>.tgz
contrail-vrouter-packages_<release-version>.tgz
contrail-kubernetes-packages_<release-version>.tgz
contrail-kubernetes-dependents_<release-version>.tgz
Redhat:
contrail-vrouter-packages_<release-version>.tgz
contrail-neutron-plugin-packages_<release-version>.tgz
contrail-networking-thirdparty_<release-version>.tgz
Note:
For Redhat platforms, contrail-networking-dependents_<release-version>.tgz is not
distributed by Contrail.
User have to register each target nodes to Redhat Portal subscription and enable
below listed Redhat Repos.
* rhel-7-server-rpms
* rhel-7-server-extras-rpms
* rhel-7-server-openstack-<rhosp-release-version>-rpms
where rhosp-release-version
specifies the Redhat Openstack Platform Version.
For instance, Repo name for RHOSP10 is rhel-7-server-openstack-10-rpms
Also refer to Subscribe a system to the Redhat Customer Portal for further help on registering target nodes with Redhat subscription.
Also contrail-networking-openstack-extra_<release-version>.tgz
contains openstack packages that contrail recommends. Its an optional package and can used for reference. It also contains openstack packages which are rebuilt by contrail with patches and additional features which are not in upstream openstack distribution and they can be installed optionally
Create a debian/yum repo with all tarfiles listed in Package Repo
Refer Creating-Apt-Repository on how to create a debian apt repository
Refer createrepo tool on how to create an yum repo
Note:
Above repos needs to be hosted in an HTTP Server
so that the target nodes can access them
Refer to Setup Http Server using nginx to setup an HTTP Server
.
Repos Created during Repo Creation needs to be configured in Target nodes.
Create a repo file under /etc/apt/sources.list.d/contrail.list
with repo config as shown below and
run apt-get update
to resync with package indexes.
Example:
deb [arch=amd64] <Your Repo Server/<path> <repo-name> <component-name>
Create a repo file say /etc/yum.repos.d/contrail.repo
in each target nodes pointing to the yum created created during Repo Creation
Example:
[contrail_install_repo]
name=contrail_install_repo
baseurl=http://<your-repo-server-address>/<path>
enabled=1
priority=1
gpgcheck=0
Note:
We'd recommend to set highest preference to Contrail repos so packages provided by contrail gets higher preference.
Refer YumRepoProrities or
AptPreferences for further instructions.
Contrail provides utilities and install/upgrade tools as contrail-networking-tools_<release-version>.tgz
and it contains below packages/tgz
contrail-docker-tools_<release-version>_all.deb
contrail-ansible-4.0.0.0-6.tar.gz
where
contrail-docker-tools_<release-version>_all.deb contains utilities to
check logs, status and upgrade tools
contrail-ansible-4.0.0.0-6.tar.gz provides ansible playbooks and
related code to install/provision contrail setup.
Once the package repo is created properly apt/yum should be able to download the contrail packages and its dependencies automatically during installation.
Please follow below documentation to install and provision each Contrail components