Hop Aboard Windows Containers on GKE

With Google’s new support for Windows containers on Google Kubernetes Engine, you might be eager to start bringing your .NET-compatible Docker workloads to Google Cloud Platform. 

JFrog is ready to help you hop aboard. In fact, Artifactory’s bags are already packed.

The GKE Choice

GKE is a proven K8s engine for orchestrating your container-based apps at scale on Google’s robust cloud services platform. For Linux-based Docker systems, GKE on GCP is already a preferred destination of many organization’s operations teams. Now that GKE supports Windows-based containers as well, your options have grown.

Running your .NET apps as containers in Windows offers the advantages of a lightweight, isolated environment for running microservices. This enables your WIndows-based development to quickly adapt to changing needs and your operations teams to rapidly scale those services.

If you’re only just starting to use containers for your Windows .NET apps, GKE is now an available choice for you to roll out operations in the cloud. For those already running Windows-based containers, GKE can be part of your multicloud strategy.

Artifactory is .NET DevOps Ready

Many organizations have learned how Artifactory can enable DevOps for .NET application development. To start, Artifactory’s extensive variety of native package support includes NuGet, the .NET package manager, along with support for Chocolatey deployments

Teams can easily create private repositories for NuGet packages, restricting them to a project or sharing NuGet repositories across the company. Operations can create remote repositories that cache public NuGet repos, to ensure proximity for speed, and as a safeguard against connectivity outages. Local and remote repositories can be logically combined into a single virtual repository, and all NuGet repos can be accessed from Visual Studio or TFS.

Your GKE Kubernetes Registry

Artifactory fully supports Docker images for Windows, readily integrated with GKE. Artifactory also provides native support for Helm repositories, so you can store your deployment charts alongside your private Docker registries. Along with the build info metadata that’s stored with all your binaries, Artifactory is your comprehensive Kubernetes registry that provides you full traceability of all your orchestrated Windows apps.

All Aboard!

This quick demo shows how easy it can be to manage and deliver all your Windows containers, from both public and private registries, to GKE through Artifactory.

Set Up Artifactory Repositories

  1. To start, we set up our repositories in Artifactory. You can create as many local repositories as you and your development teams need for your private Windows containers. Then you can bind them with public registries into a single virtual registry for a convenient single point of access.
  2. In Artifactory, create a virtual repository that includes the remote repository and any local Windows container image repositories you in Artifactory. 

Deploy Windows Container to GKE

Once the proxy and virtual repositories are established in Artifactory, you have a secured source from which to deploy your Windows containers:

  1. In GKE, create a cluster with windows server nodes.
  2. Create a Kubernetes Secret (for example, regcred) that contains Artifactory credentials for a user that has permissions to your Windows container virtual repository.
    When you confirm creation of your secret, you should see output similar to:

    % kubectl get secrets
    NAME                  TYPE                                  DATA   AGE
    regcred               kubernetes.io/dockerconfigjson        1       3d20h
  3. Perform the procedure to deploy a windows server application.
    The following example deployment file (iis-deploy.yaml) deploys Microsoft’s official IIS image to a single Pod through your Artifactory virtual repository. The secrets ensure secure access to Artifactory:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: iis
      labels:
        app: iis
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: iis
      template:
        metadata:
          labels:
            app: iis
        spec:
          nodeSelector:
            kubernetes.io/os: windows
          containers:
          - name: iis-server
        image:partnership.jfrog.io/artifactory/windows/servercore/iis
            ports:
            - containerPort: 80
          imagePullSecrets:
          - name: regcred
  4. To create the deployment, run:
    % kubectl apply -f iis-deploy.yaml
  5. When you check the status of the pod, you should see that it is running:
    % kubectl get pods
    NAME                   READY     STATUS    RESTARTS   AGE
    iis-dbcbb48cb-xqx17    1/1       Running   0          12s

Packed and Prepared

The GKE train is just now pulling into the .NET station, but Artifactory is already on the platform. These capabilities are already part of Artifactory, just waiting to help you make the most of GKE’s new support for Windows containers. 

You can start a Cloud Pro X subscription through Google Cloud Marketplace right away, with the convenience of SaaS billing through your existing GCP account. 

If you only need private Docker and Helm repositories (no package support), you can get the free-to-use JFrog Container Registry in Google Cloud Marketplace instead.

Either way, JFrog is a great companion on your GKE .NET journey.