§ Fully managed Azure Service § Seamless integration with Docker CLI § Available in three SKUs (Basic, Standard Premium) § Provides webhooks for further automation like Continuous Deployment (CD) Azure Container Registry
login mechanism for regular usage § Tokens requested by Azure CLI will be used to authenticate with ACR § Headless Authentication using Azure AD Service Principals § Used by Orchestrators or other Services § Admin Account § Designed for Single User scenarios § Should be disabled on all (pre)-production ACRs Authentication
be applied to § Azure AD users § Service Principals § Available roles § Reader (pull images) § Contributor (pull and push images) § Owner (pull and push images / assign roles to other users) Authorization
create --name tt-demo --location westeurope # Create a new ACR inside of the tt-demo Resource Group az acr create --resource-group tt-demo --name ttdemo --sku Standard Create a new Azure Container Registry
docker pull nginx:alpine # re-tag the image to have prefix matching our ACR instance docker tag nginx:alpine ttdemo.azurecr.io/demo/nginx:alpine # push the image docker push ttdemo.azurecr.io/demo/nginx:alpine Pushing an image to ACR
§ Prices are shown for Azure region West Europe § Bandwidth § Regular Azure Bandwidth costs has to be added on top § https://thns.io/2FQkVDs Basic Standard Premium Price per Day 0,141 € 0,562 € 1,406 € Price per extra GB Storage and Day 0,003 € 0,003 € 0,003 €
maintained by CNCF (Cloud Native Computing Foundation) § Successor of Google’s Borg § Original Codename Seven (https://en.wikipedia.org/wiki/Seven_of_Nine) § Greek for pilot or helmsman of a ship § Written in go Kubernetes
§ Takes care about Networking / Isolation of applications § Abstracting hardware from the developer § Cloud-Agnostic § Container Lifecycle Management § Deployment, Rolling Upgrades, Scaling, Load-Balancing Kubernetes
deployment by using code. You define a desired state like “I want 5 instances of this Docker image”. Kubernetes ensures that actual state is always matching your desired state. So there will always be 5 instances of the requested Docker image. If the cluster is facing hardware issues, k8s spins up new instances of the Docker image on a different node till the actual state is again matching the desired state. Kubernetes
using code § YAML or JSON can be used § YAML is almost industry standard for Kubernetes § Deployment Code goes to Source Control § Continuous Deployment triggered by Source Control hooks § git push webhook Kubernetes
containerized apps § Easy to scale-out, upgrade, replicate § Seamless integration with other Azure resources § Self healing for k8s Masters § Cost efficient – you pay for your Nodes Azure Container Services
is only available in the following Regions § East US, West Europe, Central US, Canada Central, Canada East § Service quotas and limits* § Max 100 nodes per cluster § Max 110 pods per node § Max 20 clusters per subscription * Due to preview, can be increased by creating an Azure Service Request Azure Container Services
Azure Load Balancer § Easily mount Azure Files Shares and Disks as Volumes § Consume Docker Images from Azure Container Registry § Communicate with other Azure Resources like Redis, SQL Azure § Traffic inside the same region is always free AKS Azure Integration
create --name thh-demo --location westeurope --tags @{resp="THH"} # Create a Service Principal az ad sp create-for-rbac --name thh-demo-aks-sp --skip-assignment # Will print something like { "appId": "7248f250-0000-0000-0000-dbdeb8400d85", # --> identifier ($SP-ID) "displayName": "thh-demo-aks-sp", "name": "http://thh-demo-aks-sp", "password": "77851d2c-0000-0000-0000-cb3ebc97975a", # --> client secret ($SP_PWD) "tenant": "72f988bf-0000-0000-0000-2d7cd011db47“ } Prepare a new AKS Cluster