Skip to content

Docker Networking Distribution: Contents and Usage

npchandran edited this page Jun 2, 2017 · 21 revisions

Table of Contents

  1. Contrail Networking
  2. Contrail Components
  3. Distribution
  4. Contents
  5. Contents Explained
  6. Setup Environment
    6.1 > Docker Containers
    6.2 > Package Repo
    6.3 > Contrail Tools

Contrail Networking

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.

Contrail Components

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.

Distribution

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  

Contents

contrail-networking-docker_<release-version>.tgz inturn contains below listed tarfiles which contains the actual packages and scripts.

Ubuntu Platform
  1. contrail-docker-images_<release-version>.tgz
  2. contrail-vrouter-packages_<release-version>.tgz
  3. contrail-neutron-plugin-packages_<release-version>.tgz
  4. contrail-networking-tools_<release-version>.tgz
  5. contrail-networking-thirdparty_<release-version>.tgz
  6. contrail-networking-dependents_<release-version>.tgz
  7. contrail-openstack-networking-extras_<release-version>.tgz
Kubernetes
  1. contrail-kubernetes-docker-images_<release-version>.tgz
  2. contrail-networking-tools_<release-version>.tgz
  3. contrail-networking-thirdparty_<release-version>.tgz
  4. contrail-networking-dependents_<release-version>.tgz
Redhat Platform
  1. contrail-docker-images_<release-version>.tgz
  2. contrail-vrouter-packages_<release-version>.tgz
  3. contrail-neutron-plugin-packages_<release-version>.tgz
  4. contrail-networking-tools_<release-version>.tgz
  5. 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.

Contents Explained

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.

Setup Environment

This section explains about the necessary environment required for provisioning Contrail components.

Docker Containers

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)  

Docker Registry

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.

Package Repo

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

Repo Creation

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.

Repo Configuration at the Target Nodes

Repos Created during Repo Creation needs to be configured in Target nodes.

Debian

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>
RPM

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 Tools

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.  

Provisioning

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

Provision Contrail Components Manually

Clone this wiki locally