Slides from my presentation at Azure Saturday on 26.5.2018 in Munich.
There’s a plethora of Container-related services available in Azure: Azure Container Instance, Azure Container Service, managed Kubernetes and managed container registry to name a few. It can be hard to get your head around all of them, especially if you come from Microsoft background as I did.
I will cover the most useful container and container orchestration related services in this talk, explain their differences and help you figure out which scenarios they fit best.
4. KARL OTS @ KOMPOZURE
• Co-organizer of Finland Azure User Group and IglooConf
• Podcast host at Cloud Gossip
• Working on Azure since 2011
• Patented inventor
• Worked with tens of different customers on full-scale Azure projects,
from startups to Fortune 500 enterprises
Managing Consultant
karl.ots@kompozure.com
+358 50 480 1102
7. HISTORY
• Brendan Burns joined Microsoft in 2016
• Gabe Monroy joined Microsoft in 2017 (Deis acquisition)
• Major focus on supporting open source in the cloud
8. WHAT IS A CONTAINER?
Containers = operating system virtualization
OS
Kernel
Applications
Container Container Container
Hardware
Virtual machines = hardware virtualization
Hardware
OS
Application
VM VM VM
App
OS
App
OS
App
OS
9. WHY CONTAINERS?
• Fast
o VM startup usually takes a few minutes
o Containers start in seconds
• Small
o Union filesystem makes individual container images small
o Small containers mean high hardware utilization
• Immutable and portable
o Dependencies are guaranteed to be present wherever the container runs
o No more “works on my machine” fights between dev and ops
10. CONTAINER ORCHESTRATION
• Creating a single container or even composing an application with 4 or 5
containers is easy
• When you get to production, your container workloads can have 10’s or
hundreds of container images, scaling to thousands of running containers
• Orchestrator takes your containers and deploys them within a cluster of
virtual machines, then monitor their health as they run, load balancing
them as required.
• Historically orchestrators have been a pretty big pain to set up
14. CONTAINERS IN AZURE
• Azure Container Instance
o Create a container from an Azure image without worrying about virtual machines underneath
• Azure Container Registry
o Store your Docker images in a private registry as a service
• Azure Container Service
o Create DC/OS, Swarm or Kubernetes cluster in Azure
20. AZURE KUBERNETES SERVICE
A fully managed Kubernetes cluster
Managed
Azure infrastructure services
Docker
Kubernetes
Managed Kubernetes
control pane
Application
architect
Infrastructure
architect
Applications
Operations
21. AZURE KUBERNETES SERVICE
• Kubernetes control plane as a service
o Master nodes managed by Microsoft
o Automatic upgrades
o Self-healing Masters
o Easy Cluster scaling
o Etcd SSD-backed with HA and backup/restore support
• Standard upstream Kuberenetes
22. AZURE KUBERNETES SERVICE
• $ az aks create -g myResourceGroup -n myCluster --generate-ssh-keys
o -c == count of nodes / agents
▪ Default 3, minimum 1
o -k == kubernets version you want
o -s == node vm size (default standard ds1_v2)
o --ssh-key-value my public key
• $ az aks get-credentials -g myResourceGroup -n myCluster
o Retrieves kubeconfig info from cluster and appends into current local kubeconfig
• $ kubectl get nodes
NAME STATUS AGE VERSION
aks-mycluster-36851231-0 Ready 4m v1.9.6
aks-mycluster-36851231-1 Ready 4m v1.9.6
aks-mycluster-36851231-2 Ready 4m v1.9.6
25. AZURE KUBERNETES SERVICE
• $ az aks upgrade -g myResourceGroup -n myCluster –-kubernetes-version 1.8.1
Running ..
• $ az aks scale -g myResourceGroup -n myCluster --agent-count 10
Running ..
• $ az aks browse -g myResourceGroup -n myCluster
Show Kubernetes cluster dashboard in a web browser.
27. TOOLS
• az cli
• shell.azure.com
• VSCode
• VSCode extensions:
o vs-kubernetes
o vs-helm
• XMING + Bash on Windows Subsystem for Linux
28. TOOLS, CONTINUED
• Draft for containment and service composition
• Helm for application deployment and package management
• Brigade for automating critical developer and operations tasks
• Kashti: Visualization dashboard for Brigade
30. RESOURCES
• Play with Docker
o https://training.play-with-docker.com/
• Azure Container Service documentation
o https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md
• Azure Kubernetes Service Commands
o https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest
• Using ACI with Kubernetes
o https://azure.microsoft.com/en-gb/resources/videos/using-kubernetes-with-azure-
container-instances/
• All things Microsoft and Open Source
o https://open.microsoft.com/
• Podcast: Brendan Burns and Gabe Monroy on Impact and Future of Kubernetes (KubeCon
+ CloudNativeCon 2017)
o https://changelog.com/podcast/282
31. BUILD ANNOUNCEMENTS
• Managed Red Hat OpenShift as a service
• App Service multi-container Deployment
• App Service Windows container support
• ACI GA
• AKS renaming
32. BUILD SESSIONS
• BRK2120 Getting started with containers on Azure
• BRK3809 Iteratively Develop Microservices with Speed on Kubernetes
• BRK2129 PaaS and Container Innovation – What’s new with App Service
• BRK2125 Why Kubernetes on Azure
35. 37 Azure Saturday 2018
Azure Saturday 2018
We appreciate your feedback!
36. DEVOPS WITH CONTAINERS
•Developer
makes changes
to code
•Developer
checks in code to
source control
Code
•Build Dockerfile
•Push to Azure
Container
Registry
Build
Management
•Pull Dockerfile
from Container
Registry
•Update
Kubernetes
deployment
Release
Management