Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie host u een inventaristoepassing in Azure Kubernetes Service (AKS) en leert u hoe u actieve geo-replicatie kunt gebruiken om gegevens te repliceren in uw Azure Cache voor Redis Enterprise- of Azure Managed Redis-exemplaren in Azure-regio's.
Vereiste voorwaarden
- Een Azure-abonnement. Als u nog geen Azure-abonnement hebt, maakt u een gratis account.
- Een Azure Kubernetes Service-cluster: zie quickstart: Een AKS-cluster (Azure Kubernetes Service) implementeren met behulp van Azure Portal voor meer informatie over het maken van een cluster. U kunt ook twee exemplaren van de demotoepassing hosten op de twee verschillende AKS-clusters. In een productieomgeving gebruikt u twee verschillende clusters in dezelfde regio's als uw clusters om twee versies van de toepassing te implementeren. Voor deze zelfstudie implementeert u beide exemplaren van de toepassing op hetzelfde AKS-cluster.
Belangrijk
In deze zelfstudie wordt ervan uitgegaan dat u bekend bent met basisconcepten van Kubernetes, zoals containers, pods en service.
Overzicht
In deze zelfstudie wordt een voorbeeld van een inventarispagina gebruikt met drie verschillende T-shirtopties. De gebruiker kan elke T-shirt 'kopen' en de voorraaduitval zien vallen. Het unieke van deze demo is dat we de inventaris-app in twee verschillende regio's uitvoeren. Normaal gesproken moet u de database uitvoeren waarin inventarisgegevens in één regio worden opgeslagen, zodat er geen consistentieproblemen zijn. Met andere back-ends en synchronisatie van databases kunnen klanten een onaangename ervaring hebben vanwege een hogere latentie voor aanroepen in verschillende Azure-regio's. Wanneer u Azure Cache voor Redis Enterprise als back-end gebruikt, kunt u twee caches koppelen aan actieve geo-replicatie, zodat de inventaris consistent blijft in beide regio's terwijl u profiteert van lage latentieprestaties van Redis Enterprise in dezelfde regio.
Twee exemplaren van Azure Redis instellen
Maak een nieuw Azure Cache voor Redis Enterprise- of Azure Managed Redis-exemplaar in de regio VS - west 2 met behulp van Azure Portal of het CLI-hulpprogramma van uw voorkeur. U kunt ook elke gewenste regio gebruiken. Gebruik de snelstartgids om aan de slag te gaan.
Op het tabblad Geavanceerd :
- Schakel alleen niet-TLS-toegang in.
- Clusteringbeleid instellen op Onderneming
- Configureer een nieuwe actieve geo-replicatiegroep met behulp van deze handleiding. Uiteindelijk voegt u beide caches toe aan dezelfde replicatiegroep. Maak de groepsnaam met de eerste cache en voeg de tweede cache toe aan dezelfde groep.
Belangrijk
In deze zelfstudie wordt een niet-TLS-poort gebruikt voor demonstratie, maar we raden u ten zeerste aan een TLS-poort te gebruiken voor alles in productie.
Stel een andere Azure Cache voor Redis Enterprise in de regio VS - oost in met dezelfde configuratie als de eerste cache. U kunt ook elke gewenste regio gebruiken. Zorg ervoor dat u dezelfde replicatiegroep kiest als de eerste cache.
Kubernetes-implementatiebestanden voorbereiden
Maak twee .yml bestanden met behulp van de volgende procedure. Eén bestand voor elke cache die u in de twee regio's hebt gemaakt.
Om gegevensreplicatie tussen regio's te demonstreren, voeren we twee exemplaren van dezelfde toepassing in verschillende regio's uit. Laten we één exemplaar uitvoeren in Seattle, west-naamruimte, terwijl de tweede wordt uitgevoerd in New York, east namespace.
Naamruimte West
Werk de volgende velden in het volgende YAML-bestand bij en sla het op als app_west.yaml.
- Werk de variabele
REDIS_HOSTbij met de URL van de eindpuntwaarde nadat u het poortachtervoegsel hebt verwijderd: 10000 - Werk
REDIS_PASSWORDbij met de Access key van je West US 2 cache. - Werk
APP_LOCATIONbij om de regio weer te geven waarin dit toepassingsexemplaren worden uitgevoerd. Voor deze cache configureert u deAPP_LOCATIONnaarSeattleom aan te duiden dat dit toepassingsexemplaar in Seattle wordt uitgevoerd. - Controleer of de waarde van de variabele
namespacezich op beide plaatsen in het bestand bevindtwest.
Deze moet eruitzien als de volgende code:
apiVersion: apps/v1
kind: Deployment
metadata:
name: shoppingcart-app
namespace: west
spec:
replicas: 1
selector:
matchLabels:
app: shoppingcart
template:
metadata:
labels:
app: shoppingcart
spec:
containers:
- name: demoapp
image: mcr.microsoft.com/azure-redis-cache/redisactivereplicationdemo:latest
resources:
limits:
cpu: "0.5"
memory: "250Mi"
requests:
cpu: "0.5"
memory: "128Mi"
env:
- name: REDIS_HOST
value: "DemoWest.westus2.redisenterprise.cache.azure.net"
- name: REDIS_PASSWORD
value: "myaccesskey"
- name: REDIS_PORT
value: "10000" # redis enterprise port
- name: HTTP_PORT
value: "8080"
- name: APP_LOCATION
value: "Seattle, WA"
---
apiVersion: v1
kind: Service
metadata:
name: shoppingcart-svc
namespace: west
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 8080
selector:
app: shoppingcart
East-naamruimte
Sla nog een kopie van hetzelfde YAML-bestand op als app_east.yaml. Gebruik deze keer de waarden die overeenkomen met uw tweede cache.
- Werk de variabele
REDIS_HOSTbij met de eindpuntwaarde na het verwijderen van het poortachtervoegsel: 10000 - Werk
REDIS_PASSWORDbij met de toegangssleutel van uw East US-cache. - Werk
APP_LOCATIONbij om de regio weer te geven waarin dit toepassingsexemplaren worden uitgevoerd. Voor deze cache configureert u deAPP_LOCATIONop New York om aan te geven dat dit toepassingsexemplaar wordt uitgevoerd in New York. - Controleer of de waarde van de variabele
namespacezich op beide plaatsen in het bestand bevindteast.
Deze moet eruitzien als de volgende code:
apiVersion: apps/v1
kind: Deployment
metadata:
name: shoppingcart-app
namespace: east
spec:
replicas: 1
selector:
matchLabels:
app: shoppingcart
template:
metadata:
labels:
app: shoppingcart
spec:
containers:
- name: demoapp
image: mcr.microsoft.com/azure-redis-cache/redisactivereplicationdemo:latest
resources:
limits:
cpu: "0.5"
memory: "250Mi"
requests:
cpu: "0.5"
memory: "128Mi"
env:
- name: REDIS_HOST
value: "DemoEast.eastus.redisenterprise.cache.azure.net"
- name: REDIS_PASSWORD
value: "myaccesskey"
- name: REDIS_PORT
value: "10000" # redis enterprise port
- name: HTTP_PORT
value: "8080"
- name: APP_LOCATION
value: "New York, NY"
---
apiVersion: v1
kind: Service
metadata:
name: shoppingcart-svc
namespace: east
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 8080
selector:
app: shoppingcart
Kubernetes CLI installeren en verbinding maken met uw AKS-cluster
In deze sectie installeert u eerst de Kubernetes CLI en maakt u vervolgens verbinding met een AKS-cluster.
Opmerking
Voor deze zelfstudie is een Azure Kubernetes Service-cluster vereist. U implementeert beide exemplaren van de toepassing in hetzelfde AKS-cluster.
De Kubernetes-CLI installeren
Gebruik de Kubernetes CLI, _kubectl, om vanaf uw lokale computer verbinding te maken met het Kubernetes-cluster. Als u lokaal werkt, kunt u de volgende opdracht gebruiken om kubectl te installeren.
az aks install-cli
Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd en kunt u deze stap overslaan.
Verbinding maken met uw AKS-clusters in twee regio's
Gebruik de portal om de resourcegroep en clusternaam voor uw AKS-cluster in de regio VS - west 2 te kopiëren. Als u kubectl wilt configureren om verbinding te maken met uw AKS-cluster, gebruikt u de volgende opdracht met uw resourcegroep en clusternaam:
az aks get-credentials --resource-group myResourceGroup --name myClusterName
Controleer of u verbinding kunt maken met uw cluster door de volgende opdracht uit te voeren:
kubectl get nodes
U zou vergelijkbare uitvoer moeten zien met de lijst van uw clusterknooppunten.
NAME STATUS ROLES AGE VERSION
aks-agentpool-21274953-vmss000001 Ready agent 1d v1.24.15
aks-agentpool-21274953-vmss000003 Ready agent 1d v1.24.15
aks-agentpool-21274953-vmss000006 Ready agent 1d v1.24.15
Uw toepassing implementeren en testen
U hebt twee naamruimten nodig om uw toepassingen uit te voeren op uw AKS-cluster. Maak een webservice en implementeer vervolgens de applicatie.
Voer de volgende opdracht uit om de toepassingsexemplaren uit te rollen in uw AKS-cluster in de naamruimte west :
kubectl create namespace west
kubectl apply -f app_west.yaml
U krijgt een antwoord dat aangeeft dat uw implementatie en service is gemaakt:
deployment.apps/shoppingcart-app created
service/shoppingcart-svc created
Om de toepassing te testen, voert u de volgende opdracht uit om te controleren of de pod actief is.
kubectl get pods -n west
U ziet dat uw pod succesvol wordt uitgevoerd als:
NAME READY STATUS RESTARTS AGE
shoppingcart-app-5fffdcb5cd-48bl5 1/1 Running 0 68s
Voer de volgende opdracht uit om het eindpunt voor uw toepassing op te halen:
kubectl get service -n west
Mogelijk ziet u dat de EXTERNAL-IP een paar minuten status <pending> heeft. Probeer het opnieuw totdat de status wordt vervangen door een IP-adres.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
shoppingcart-svc LoadBalancer 10.0.166.147 20.69.136.105 80:30390/TCP 90s
Zodra de External-IP beschikbaar is, opent u een webbrowser naar het External-IP adres van uw service en ziet u de toepassing.
Voer dezelfde implementatiestappen uit en implementeer een exemplaar van de demotoepassing die moet worden uitgevoerd in de regio VS - oost.
kubectl create namespace east
kubectl apply -f app_east.yml
kubectl get pods -n east
kubectl get service -n east
Wanneer elk van de twee services in een browser wordt geopend, ziet u dat het wijzigen van de inventaris in één regio vrijwel onmiddellijk wordt weerspiegeld in de andere regio. De inventarisgegevens worden opgeslagen in de Redis Enterprise-exemplaren die gegevens repliceren tussen regio's.
Het is u gelukt. Klik op de knoppen en verken de demo.
Als u het aantal opnieuw wilt instellen, voegt u het volgende toe /reset na de URL:
<IP address>/reset
Maak uw implementatie schoon
Voer de volgende opdrachten uit om uw cluster op te schonen:
kubectl delete deployment shoppingcart-app -n west
kubectl delete service shoppingcart-svc -n west
kubectl delete deployment shoppingcart-app -n east
kubectl delete service shoppingcart-svc -n east
De hulpbronnen opschonen
Als u de resources wilt blijven gebruiken die u in dit artikel hebt gemaakt, moet u de resourcegroep behouden.
Als u klaar bent met de resources, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de groep definitief verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde bron of bronngroep verwijdert. Als u de resources in een bestaande resourcegroep hebt gemaakt die resources bevat die u wilt behouden, kunt u elke resource afzonderlijk verwijderen in plaats van de resourcegroep te verwijderen.
Een resourcegroep verwijderen
Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.
Selecteer de resourcegroep die u wilt verwijderen.
Als er veel resourcegroepen zijn, gebruikt u het vak Filter voor een veld... en typt u de naam van de resourcegroep die u voor dit artikel hebt gemaakt. Selecteer de bronnen groep in de lijst met resultaten.
Selecteer Resourcegroep verwijderen.
U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Typ ter bevestiging de naam van de resourcegroep. Selecteer vervolgens Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.