(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.
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 geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Azure Cloud Shell
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 Cloud Shell-opdrachten 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 Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. | |
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. | |
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. |
Azure Cloud Shell gebruiken:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.
Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.
Selecteer Enter om de code of opdracht 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 brongroep 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.
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.