Do I need SSH tunnel to deploy Docker containers from Windows Server 2016 using Full CI/CD pipeline

8/22/2017

Thank you very much for your help with the previous questions

Deploying Windows Containers (created with Docker) into Azure Container Service

Windows Container vs Docker Container and Azure Container Services/Kubernetes cluster with Linux OS

I am continuing my research and somewhat at a standstill as I try to follow the instructions of the following article that explains how to create CI/CD pipeline to deploy a multi-container application.

https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-docker-swarm-setup-ci-cd

The code sample that is referenced here is built for the Linux application, and I am not able to run it or create Docker container out of it.

Thus, I have following questions (those questions could be all over the place, my apologies for that)

  1. When I create a .Net Core Web API on Windows 2016 server, is there any possibility for me to create an application that I could deploy to a Linux environment? (portable .NET Core Web API application)

  2. When I would like to take advantage of CI/CD pipeline using Visual Studio Team Services, do I really need to create Azure Container Service with Docker Swarm? As far as I understand ACS is a Linux based environment whereas I would create Windows based docker containers on Windows Server 2016

  3. Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could easily deploy those containers to a Kubernetes cluster with Windows nodes

  4. Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual Studio Team Services without using the Linux based SSH tunnel/ACS

Thank you very much for your generous input

Mikhail

-- Mikhail
azure
docker
docker-swarm
kubernetes
ssh

1 Answer

8/23/2017

1.When I create a .Net Core Web API on Windows 2016 server, is there any possibility for me to create an application that I could deploy to a Linux environment?

Yes, .Net core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows, macOS and Linux, and can be used in device, cloud, and embedded/IoT scenarios. So we can deploy .net core web api app on Linux environment.

Maybe we can refer to this link.

2.When I would like to take advantage of CI/CD pipeline using Visual Studio Team Services, do I really need to create Azure Container Service with Docker Swarm?

No, creating a CI/CD pipeline on Azure Container service with kubernetes and visual studio team services is available. More information about VSTS and ACS k8s, please refer to this link.

3.Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could easily deploy those containers to a Kubernetes cluster with Windows nodes

If you want to use VSTS to deploy your .net core container, I think we should connect to ACS cluster.

If you want to use ACS k8s, we should add kubernetes connection:

enter image description here

4.Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual Studio Team Services without using the Linux based SSH tunnel/ACS

Do you mean you want to use ACS, but don't want to connect Linux based SSH tunnel? If I am right, we can deploy a site-to-site VPN between your on-prem network and Azure Vnet, in this way, we can connect k8s like local.

-- Jason Ye
Source: StackOverflow