Quelle: Autor
Infrastruktur in Azure bereitstellen 15.11.2021, 00:00 Uhr

Pflege mit Struktur

Auch in der Cloud muss Infrastruktur gepflegt werden – bequem mit Terraform.
Die September-Ausgabe der dotnetpro hat darüber berichtet, wie man eine Webapplikation mit Azure Kubernetes Service einrichten kann [1]. Dabei wurde für das Erstellen der Infrastruktur in Azure ein Azure-CLI-Skript verwendet (siehe Listing 1). Bevor allerdings das erste Kubernetes-Manifest eingerichtet werden kann, sind fünf Dinge zu erledigen:
Listing 1: Azure -Skript zum Anlegen einer Infrastruktur
# Define some variables

$SUBSCRIPTION_NAME = "Visual Studio Enterprise"

    # Change the name of the subscription according to

    # your needs

$LOCATION = "westeurope"

$RESSOURCE_GROUP = "Lab_RateMyBeer"

$CONTAINERREGISTRY_NAME = "LabRateMyBeerContainers"

$CLUSTER_NAME="LabRateMyBeerCluster"

$DNS_LABEL = "ratemybeer"



# Login to the appropriate Azure Subscription

az login

az account set --subscription $SUBSCRIPTION_NAME



# 1. Create resource group for all ressources to make #    deleting everything easier

az group create `

    --name $RESSOURCE_GROUP `

    --location $LOCATION



# 2. Create Azure Container Registry

az acr create `

    --name $CONTAINERREGISTRY_NAME `

    --resource-group $RESSOURCE_GROUP `

    --location $LOCATION `

    --sku Basic



# 3. Create the Kubernetes Cluster

az aks create `

    --resource-group $RESSOURCE_GROUP `

    --name $CLUSTER_NAME `

    --node-count 3 `

    --node-vm-size Standard_B2s `

    --enable-managed-identity `

    --network-plugin kubenet `

    --attach-acr $CONTAINERREGISTRY_NAME



# 4. Kubernetes Ingress controller

kubectl create namespace ingress-nginx

helm repo add ingress-nginx

    https://kubernetes.github.io/ingress-nginx

helm repo update

helm install nginx-ingress ingress-nginx/ingress-nginx `

    --namespace ingress-nginx `

    --set controller.replicaCount=3 `

    --set controller.nodeSelector.

        "kubernetes\.io/os"=linux `

    --set controller.service.annotations.

        "service\.beta\.kubernetes\.io/azure-dns-

        label-name"=$DNS_LABEL `

    --set defaultBackend.nodeSelector.

        "kubernetes\.io/os"=linux `

    --set controller.admissionWebhooks.patch.

        nodeSelector."kubernetes\.io/os"=linux



# 5. Cert-Manager

kubectl create namespace cert-manager

helm repo add cert-manager https://charts.jetstack.io

helm repo update

helm show chart cert-manager/cert-manager

helm install cert-manager cert-manager/cert-manager --version 1.4.0 `

    --namespace cert-manager `

    --set installCRDs=true

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar