Understanding Contrail Deployment on Windows
Starting in release 5.1, Contrail supports overlay network virtualization for Windows Docker containers. Windows server 2016 supports containerization using Docker containers and Contrail components such as vRouter agent and the vRouter kernel module have been ported and qualified to run on Windows Server 2016. A Docker CNM plugin is added to process requests from the Docker daemon when a user creates or removes a network or an endpoint.
A Windows Compute node hosts the following components:
Windows vRouter Forwarding Extension
Windows vRouter Agent
Windows CNM plugin (for Docker)
Host Networking Service (HNS), Host Compute Service (HCS)
Microsoft Hyper-V Switch
Docker client and docker daemon
The Windows Agent acts the same way as a Linux Agent, communicating with the Control and Analytics nodes. It runs as a Windows service.
The vRouter is implemented as a Forwarding Extension of the Hyper-V switch as a kernel only module. The other components (Docker and HNS, HCS, and Hyper-V) are provided by docker and Microsoft, respectively. Docker runs as a service, while HNS, HCS, and Hyper-V switch are kernel components.
CNM plugin communicates with Controller Config nodes to allocate Contrail resources as needed. It implements CNM API. It communicates with vRouter Agent to associate local port with logical port and HNS.
Only the CNM plugin and vRouter Agent interact with Contrail Controller. The CNM plugin communicates with Config nodes to allocate resources as needed. vRouter Agent acts the same way as the Linux Agent, communicating with the Control and Analytics nodes.
To install Contrail for Windows, you must have Windows Server 2016 and Docker EE 17.06. For more information on deployment, see Deploying Contrail on Windows by Using Ansible Deployer