De infrastructuur maken voor het uitvoeren van een Valkey-cluster in Azure Kubernetes Service (AKS)
In dit artikel maken we de infrastructuurbronnen die nodig zijn om een Valkey-cluster uit te voeren in Azure Kubernetes Service (AKS).
Vereisten
- Als u dat nog niet hebt gedaan, raadpleegt u het overzicht voor het implementeren van een Valkey-cluster in Azure Kubernetes Service (AKS).
- Een Azure-abonnement. Als u nog geen account hebt, kunt u een gratis account maken.
- Azure CLI versie 2.61.0. Zie Azure CLI installeren als u CLI wilt installeren of upgraden.
- Helm versie 3 of hoger. Zie Helm installeren om te installeren.
kubectl
, die azure Cloud Shell standaard heeft geïnstalleerd.- Docker geïnstalleerd op uw lokale computer. Zie Docker downloaden om te installeren.
Omgevingsvariabelen instellen
Stel de vereiste omgevingsvariabelen in voor gebruik in deze handleiding:
random=$(echo $RANDOM | tr '[0-9]' '[a-z]') export MY_RESOURCE_GROUP_NAME=myResourceGroup-rg export MY_LOCATION=eastus export MY_ACR_REGISTRY=mydnsrandomname$(echo $random) export MY_KEYVAULT_NAME=vault-$(echo $random)-kv export MY_CLUSTER_NAME=cluster-aks export SERVICE_ACCOUNT_NAMESPACE=valkey export TENANT_ID=$(az account show --query tenantId --output tsv)
Een brongroep maken
Maak een resourcegroep met behulp van de
az group create
opdracht.az group create --name $MY_RESOURCE_GROUP_NAME --location $MY_LOCATION --output table
Voorbeelduitvoer:
Location Name ---------- ------------------ eastus myResourceGroup-rg
Een Azure Key Vault-exemplaar maken
Maak een Azure Key Vault-exemplaar met behulp van de
az keyvault create
opdracht.az keyvault create --name $MY_KEYVAULT_NAME --resource-group $MY_RESOURCE_GROUP_NAME --location $MY_LOCATION --enable-rbac-authorization false --output table
Voorbeelduitvoer:
Location Name ResourceGroup ---------- -------------- ------------------ eastus vault-bbbhe-kv myResourceGroup-rg
Een Azure Container Registry maken
Maak een Azure Container Registry om uw containerinstallatiekopieën op te slaan en te beheren met behulp van de
az acr create
opdracht.az acr create \ --name ${MY_ACR_REGISTRY} \ --resource-group $MY_RESOURCE_GROUP_NAME \ --sku Premium \ --location $MY_LOCATION \ --admin-enabled true \ --output table export MY_ACR_REGISTRY_ID=$(az acr show --name $MY_ACR_REGISTRY --resource-group $MY_RESOURCE_GROUP_NAME --query id --output tsv)
Voorbeelduitvoer:
NAME RESOURCE GROUP LOCATION SKU LOGIN SERVER CREATION DATE ADMIN ENABLED -------------------- ------------------ ---------- ------- ------------------------------- -------------------- --------------- mydnsrandomnamebbbhe myResourceGroup-rg eastus Premium mydnsrandomnamebbbhe.azurecr.io 2024-06-11T09:36:43Z True
Een AKS-cluster maken
In deze stap maken we een AKS-cluster. We schakelen de Azure KeyVault Secret Provider-invoegtoepassing in, waarmee het AKS-cluster toegang heeft tot geheimen die zijn opgeslagen in Azure Key Vault. We schakelen ook workloadidentiteit in, waardoor het AKS-cluster veilig toegang heeft tot andere Azure-resources.
Maak een AKS-cluster met behulp van de
az aks create
opdracht.az aks create \ --location $MY_LOCATION \ --name $MY_CLUSTER_NAME \ --tier standard \ --resource-group $MY_RESOURCE_GROUP_NAME \ --network-plugin azure \ --node-vm-size Standard_DS4_v2 \ --node-count 3 \ --auto-upgrade-channel stable \ --node-os-upgrade-channel NodeImage \ --attach-acr ${MY_ACR_REGISTRY} \ --enable-oidc-issuer \ --enable-workload-identity \ --enable-addons azure-keyvault-secrets-provider \ --zones 1 2 3 \ --generate-ssh-keys \ --output table
Voorbeelduitvoer:
Kind KubernetesVersion Location MaxAgentPools Name NodeResourceGroup ProvisioningState ResourceGroup ResourceUid SupportPlan ----------------------------------------------------------------------- -------------------------- ---------------------- ---------------------------------- ------------------------------------ ------------------------- ------------ ---------------------------------------------------------------- ------ ------------------- ---------- --------------- ----------- ---------------------------------------- ------------------- ------------------ ------------------------ ------------------ cluster-ak-myresourcegroup--9b70ac-hhrizake.portal.hcp.eastus.azmk8s.io 1.28.9 False cluster-ak-myResourceGroup--9b70ac efecebf9-8894-46b9-9d68-09bfdadc474a False True cluster-ak-myresourcegroup--9b70ac-hhrizake.hcp.eastus.azmk8s.io Base 1.28 eastus 100 cluster-aks MC_myResourceGroup-rg_cluster-aks_eastus Succeeded myResourceGroup-rg 66681ad812cd770001814d32 KubernetesOfficial
Haal de id en de object-id op die zijn gemaakt door de Azure KeyVault Secret Provider Addon met behulp van de
az aks show
opdracht.export userAssignedIdentityID=$(az aks show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId --output tsv) export userAssignedObjectID=$(az aks show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --query addonProfiles.azureKeyvaultSecretsProvider.identity.objectId --output tsv)
Wijs de
AcrPull
rol toe aan de kubelet-identiteit met behulp van deaz role assignment create
opdracht.export KUBELET_IDENTITY=$(az aks show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --output tsv --query identityProfile.kubeletidentity.objectId) az role assignment create \ --assignee ${KUBELET_IDENTITY} \ --role "AcrPull" \ --scope ${MY_ACR_REGISTRY_ID} \ --output table
Voorbeelduitvoer:
CreatedBy CreatedOn Name PrincipalId PrincipalName PrincipalType ResourceGroup RoleDefinitionId RoleDefinitionName Scope UpdatedBy UpdatedOn ------------------------------------ -------------------------------- ------------------------------------ ------------------------------------ ------------------------------------ ---------------- ------------------ ------------------------------------------------------------------------------------------------------------------------------------------ -------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------ -------------------------------- bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f 2024-06-11T09:41:36.631310+00:00 04628c5e-371a-49b8-8462-4ecd7f90a43f 6a9a8328-7257-4db2-8c4f-169687f36556 94fa3265-4ac2-4e19-8516-f3e830642ca8 ServicePrincipal myResourceGroup-rg /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d AcrPull /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup-rg/providers/Microsoft.ContainerRegistry/registries/mydnsrandomnamebbbhe bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f 2024-06-11T09:41:36.631310+00:00
Een knooppuntgroep maken voor de Valkey-workload
In deze sectie maken we een knooppuntgroep die is toegewezen aan het uitvoeren van de Valkey-workload. Deze knooppuntgroep heeft automatisch schalen uitgeschakeld en wordt gemaakt met zes knooppunten in twee beschikbaarheidszones, omdat we één secundaire per primaire zone willen hebben.
Maak een nieuwe knooppuntgroep met behulp van de
az aks nodepool add
opdracht.while [ "$(az aks show --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --output tsv --query provisioningState)" != "Succeeded" ]; do echo "waiting for cluster to be ready"; sleep 10; done az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_CLUSTER_NAME \ --name valkey \ --node-vm-size Standard_D4s_v3 \ --node-count 6 \ --zones 1 2 3 \ --output table
Voorbeelduitvoer:
Count CurrentOrchestratorVersion ETag EnableAutoScaling EnableCustomCaTrust EnableEncryptionAtHost EnableFips EnableNodePublicIp EnableUltraSsd KubeletDiskType MaxPods Mode Name NodeImageVersion OrchestratorVersion OsDiskSizeGb OsDiskType OsSku OsType ProvisioningState ResourceGroup ScaleDownMode TypePropertiesType VmSize WorkloadRuntime ------- ---------------------------- ------------------------------------ ------------------- --------------------- ------------------------ ------------ -------------------- ---------------- ----------------- --------- ------ ------ ---------------------------------------- --------------------- -------------- ------------ ------- -------- ------------------- ------------------ --------------- ----------------------- --------------- ----------------- 6 1.28.9 b7aa8e37-ff39-4ec7-bed0-cb37876416cc False False False False False False OS 30 User valkey AKSUbuntu-2204gen2containerd-202405.27.0 1.28 128 Managed Ubuntu Linux Succeeded myResourceGroup-rg Delete VirtualMachineScaleSets Standard_D4s_v3 OCIContainer
Verbinding maken met het AKS-cluster
Configureer
kubectl
deze om verbinding te maken met uw AKS-cluster met behulp van deaz aks get-credentials
opdracht.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --overwrite-existing --output table
Valkey-installatiekopieën uploaden naar uw Azure Container Registry
In deze sectie downloaden we de Valkey-installatiekopieën van Dockerhub en uploaden we deze naar Azure Container Registry. Deze stap zorgt ervoor dat de installatiekopieën beschikbaar zijn in uw privéregister en kunnen worden gebruikt in uw AKS-cluster. Het wordt afgeraden om de openbare installatiekopieën in een productieomgeving te gebruiken.
Importeer de Valkey-installatiekopieën uit Dockerhub en upload deze met behulp van de
az acr import
opdracht naar uw Azure Container Registry.az acr import \ --name $MY_ACR_REGISTRY \ --source docker.io/valkey/valkey:latest \ --image valkey:latest \ --output table
Volgende stappen
Medewerkers
Microsoft onderhoudt dit artikel. De volgende inzenders hebben het oorspronkelijk geschreven:
- Nelly Kiboi | Service Engineer
- Saverio Proto | Principal Customer Experience Engineer
- Hoog | Principal Customer Engineer
- LaBrina Loving | Principal Service Engineer
- Ken Kilty | Principal TPM
- Russell de Tina | Principal TPM
- Colin Mixon | ProductManager
- Ketan Chawda | Senior klanttechnicus
- Naveed Kharadi | Klantervaringstechnicus
- Erin Schaffer | Inhoudsontwikkelaar 2
Azure Kubernetes Service