この記事では、Azure Kubernetes Service (AKS) で Valkey クラスターを実行するために必要なインフラストラクチャ リソースを作成します。
前提条件
- まだ持っていない場合は、Azure Kubernetes Service (AKS) に Valkey クラスターをデプロイする方法の概要に関するページを参照してください。
- Azure サブスクリプション。 アカウントがない場合は、 無料アカウントを作成してください。
- Azure CLI バージョン 2.61.0。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。
- Helm バージョン 3 以降。 インストールするには、「Installing Helm」を参照してください。
- 既定で Azure Cloud Shell がインストールされている
kubectl
。 - ローカル コンピューターにインストールされている Docker。 インストールするには、「Docker を取得する」を参照してください。
環境変数を設定する
このガイド全体で使用する、必要な環境変数を設定します。
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)
リソース グループを作成する
az group create
コマンドを使用して、リソース グループを作成します。az group create --name $MY_RESOURCE_GROUP_NAME --location $MY_LOCATION --output table
出力例:
Location Name ---------- ------------------ eastus myResourceGroup-rg
Azure Key Vault インスタンスを作成する
az keyvault create
コマンドを使用して、Azure Key Vault インスタンスを作成します。az keyvault create --name $MY_KEYVAULT_NAME --resource-group $MY_RESOURCE_GROUP_NAME --location $MY_LOCATION --enable-rbac-authorization false --output table
出力例:
Location Name ResourceGroup ---------- -------------- ------------------ eastus vault-bbbhe-kv myResourceGroup-rg
Azure Container Registry を作成する
az acr create
コマンドを使用して、コンテナー イメージを格納し、管理するための Azure Container Registry を作成します。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)
出力例:
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
AKS クラスターを作成する
このステップでは、AKS クラスターを作成します。 Azure KeyVault Secret Provider アドオンを有効にします。これにより、AKS クラスターは Azure Key Vault に格納されているシークレットにアクセスできるようになります。 また、ワークロード ID を有効にします。これにより、AKS クラスターは他の Azure リソースに安全にアクセスできるようになります。
az aks create
コマンドを使用して、AKS クラスターを作成します。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
出力例:
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
az aks show
コマンドを使い、Azure KeyVault Secret Provider アドオンによって作成されたアイデンティティ ID とオブジェクト ID を取得します。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)
az role assignment create
コマンドを使用して、kubelet ID にAcrPull
ロールを割り当てます。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
出力例:
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
Valkey ワークロード用のノード プールを作成する
このセクションでは、Valkey ワークロードを実行するための専用ノード プールを作成します。 このノード プールは、自動スケールが無効になっており、2 つの可用性ゾーンにまたがる 6 つのノードと一緒に作成されます。これは、異なるゾーンのプライマリごとに 1 つのセカンダリを必要とするためです。
az aks nodepool add
コマンドを使用して、新しいノード プールを作成します。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
出力例:
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
AKS クラスターに接続する
az aks get-credentials
コマンドを使用して、AKS クラスターに接続するようにkubectl
を構成します。az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_CLUSTER_NAME --overwrite-existing --output table
Azure Container Registry に Valkey イメージをアップロードする
このセクションでは、Dockerhub から Valkey イメージをダウンロードし、Azure Container Registry にアップロードします。 この手順により、イメージがプライベート レジストリと AKS クラスターで使用できるようになります。 運用環境でパブリック イメージを使わないことをお勧めします。
az acr import
コマンドを使用して、Dockerhub から Valkey イメージをインポートし、Azure Container Registry にアップロードします。az acr import \ --name $MY_ACR_REGISTRY \ --source docker.io/valkey/valkey:latest \ --image valkey:latest \ --output table
次のステップ
共同作成者
Microsoft では、この記事を保持しています。 当初の寄稿者は次のとおりです。
- Nelly Kiboi | サービス エンジニア
- Saverio Proto | プリンシパル カスタマー エクスペリエンス エンジニア
- Don High | プリンシパル カスタマー エンジニア
- LaBrina Loving | プリンシパル サービス エンジニア
- Ken Kilty | プリンシパル TPM
- Russell de Pina | プリンシパル TPM
- Colin Mixon | プロダクト マネージャー
- Ketan Chawda | シニア カスタマー エンジニア
- Naveed Kharadi | カスタマー エクスペリエンス エンジニア
- Erin Schaffer |コンテンツ開発者 2
Azure Kubernetes Service