(AFGESCHAFT) Een Kubernetes-cluster voor Linux-containers implementeren

Tip

Zie Quickstart: Een AKS-cluster (Azure Kubernetes Service) implementeren voor de bijgewerkte versie die gebruikmaakt van Azure Kubernetes Service.

Waarschuwing

Azure Container Service (ACS) wordt afgeschaft. Er worden geen nieuwe functies of functionaliteit meer aan ACS toegevoegd. Alles van de API's, portal, CLI-opdrachten en documentatie is gemarkeerd als afgeschaft.

In 2017 hebben we Azure Kubernetes Service (AKS) geïntroduceerd om het beheer en de implementatie van en de werkzaamheden met Kubernetes te vereenvoudigen. Als u de Kubernetes-orchestrator gebruikt, verzoeken we u voor 31 januari 2020 naar AKS te migreren. Raadpleeg migreren naar Azure Kubernetes Service voordat u begint.

Zie voor meer informatie de aankondiging over de afschaffing van Azure Container Service op Azure.com.

In deze quickstart wordt een Kubernetes-cluster geïmplementeerd met behulp van de Azure CLI. Vervolgens wordt er een toepassing met meerdere containers die bestaat uit een web-front-end en een Redis-exemplaar, geïmplementeerd en uitgevoerd op het cluster. Zodra de toepassing is voltooid, is deze toegankelijk via internet.

De voorbeeldtoepassing gebruikt in dit document is geschreven in Python. De concepten en de stappen die hier worden beschreven, kunnen worden gebruikt om een containerinstallatiekopie te implementeren in een Kubernetes-cluster. De code-, Dockerfile- en vooraf gemaakte Kubernetes-manifestbestanden die zijn gerelateerd aan dit project, zijn beschikbaar op GitHub.

Afbeelding van browsen naar Azure Vote

In deze quickstart wordt ervan uitgegaan dat u over basiskennis van Kubernetes-concepten beschikt. Raadpleeg de Kubernetes-documentatie voor gedetailleerde informatie over Kubernetes.

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Azure Cloud Shell gebruiken

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. Voorbeeld van Uitproberen voor Azure Cloud Shell
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Cloud Shell starten in een nieuw venster
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Knop Cloud Shell in de Azure Portal

Om de code in dit artikel in Azure Cloud Shell uit te voeren:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.

  3. Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.

  4. Selecteer Invoeren om de code uit te voeren.

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor deze Quickstart gebruikmaken van Azure CLI versie 2.0.4 of hoger. Voer az --version uit om de versie te bekijken. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.

Een resourcegroep maken

Een resourcegroep maken met de opdracht az group create. Een Azure-resourcegroep is een logische groep waarin Azure-resources worden geïmplementeerd en beheerd.

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie Europa West.

az group create --name myResourceGroup --location westeurope

Uitvoer:

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
  "location": "westeurope",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Een Kubernetes-cluster maken

Maak een Kubernetes-cluster in Azure Container Service met de opdracht az acs create. In het volgende voorbeeld wordt een cluster gemaakt met de naam myK8sCluster met een Linux-hoofdknooppunt en drie knooppunten van de Linux-agent.

az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys

In sommige gevallen, zoals met een beperkte proefversie, heeft een Azure-abonnement beperkte toegang tot Azure-resources. Als de implementatie mislukt vanwege beperkte beschikbare kernen, verminder dan het aantal standaardagenten door --agent-count 1 toe te voegen aan de opdracht az acs create.

Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in json-indeling.

Verbinding maken met het cluster

Als u een Kubernetes-cluster wilt beheren, gebruikt u kubectl, de Kubernetes-opdrachtregelclient.

Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd. Als u lokaal wilt installeren, kunt u de opdracht az acs kubernetes install-cli gebruiken.

Als u kubectl zo wilt configureren dat de client verbinding maakt met uw Kubernetes-cluster, voert u de opdracht az acs kubernetes get-credentials uit. In deze stap worden referenties gedownload en wordt Kubernetes CLI geconfigureerd voor het gebruik van deze referenties.

az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster

Als u de verbinding met uw cluster wilt controleren, gebruikt u de opdracht kubectl get om een lijst met clusterknooppunten te retourneren.

kubectl get nodes

Uitvoer:

NAME                    STATUS                     AGE       VERSION
k8s-agent-14ad53a1-0    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-1    Ready                      10m       v1.6.6
k8s-agent-14ad53a1-2    Ready                      10m       v1.6.6
k8s-master-14ad53a1-0   Ready,SchedulingDisabled   10m       v1.6.6

De toepassing uitvoeren

In een Kubernetes-manifestbestand wordt een gewenste status voor het cluster gedefinieerd, inclusief zaken zoals welke containerinstallatiekopieën moeten worden uitgevoerd. In dit voorbeeld worden met behulp van een manifest alle objecten gemaakt die nodig zijn om de Azure Vote-toepassing uit te voeren.

Maak een bestand met de naam azure-vote.yml en kopieer hierin de volgende YAML. Als u werkt in Azure Cloud Shell, kan dit bestand worden gemaakt met behulp van vi of Nano, zoals bij een virtueel of fysiek systeem.

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:v1
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

Gebruik de opdracht kubectl create om de toepassing uit te voeren.

kubectl create -f azure-vote.yml

Uitvoer:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

De toepassing testen

Terwijl de toepassing wordt uitgevoerd, wordt er een Kubernetes-service gemaakt die de front-end van de toepassing beschikbaar maakt op internet. Dit proces kan enkele minuten duren.

Gebruik de opdracht kubectl get service met het argument --watch om de voortgang te controleren.

kubectl get service azure-vote-front --watch

Eerst wordt het externe IP-adres voor de service azure-vote-front weergegeven als in behandeling. Nadat het externe IP-adres is gewijzigd van in behandeling naar een IP-adres, gebruikt u CTRL-C om het controleproces van kubectl te stoppen.

azure-vote-front   10.0.34.242   <pending>     80:30676/TCP   7s
azure-vote-front   10.0.34.242   52.179.23.131   80:30676/TCP   2m

Nu kunt u naar het externe IP-adres browsen voor een overzicht van de Azure Vote-toepassing.

Afbeelding van browsen naar Azure Vote

Cluster verwijderen

U kunt de opdracht az group delete gebruiken om de resourcegroep, de containerservice en alle gerelateerde resources te verwijderen wanneer u het cluster niet meer nodig hebt.

az group delete --name myResourceGroup --yes --no-wait

Code ophalen

In deze quickstart zijn vooraf gemaakte containerinstallatiekopieën gebruikt om een Kubernetes-implementatie te maken. De gerelateerde toepassingscode, Dockerfile en het Kubernetes-manifestbestand zijn beschikbaar op GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

Volgende stappen

In deze snelstart hebt u een Kubernetes-cluster geïmplementeerd en vervolgens een toepassing met meerdere containers geïmplementeerd.

Voor meer informatie over Azure Container Service en een volledig voorbeeld van code tot implementatie gaat u naar de zelfstudie Kubernetes-cluster.