Hızlı Başlangıç: Helm ile Azure Kubernetes Service (AKS) üzerinde geliştirme
Helm , Kubernetes uygulamalarının yaşam döngüsünü yüklemenize ve yönetmenize yardımcı olan bir açık kaynak paketleme aracıdır. Helm, APT ve Yum gibi Linux paket yöneticilerine benzer şekilde, önceden yapılandırılmış Kubernetes kaynaklarının paketleri olan Kubernetes grafiklerini yönetir.
Bu hızlı başlangıçta, AKS'de bir uygulamayı paketlemek ve çalıştırmak için Helm'i kullanacaksınız. Helm kullanarak mevcut bir uygulamayı yükleme hakkında bilgi için bkz . AKS'de Helm ile mevcut uygulamaları yükleme.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturabilirsiniz.
- Azure CLI veya Azure PowerShell yüklü.
- Helm v3 yüklü.
Azure Container Registry oluşturma
Uygulamanızı Helm kullanarak AKS kümenizde çalıştırmak için kapsayıcı görüntülerinizi bir Azure Container Registry'de (ACR) depolamanız gerekir. Kayıt defteri adınızın Azure içinde benzersiz olması ve 5-50 alfasayısal karakter içermesi gerekir. Yalnızca küçük harf karakterlere izin verilir. Temel SKU, geliştirme amaçlı dağıtımlar için uygun maliyetli, depolama ve aktarım hızı açısından dengeli bir giriş noktasıdır.
az group create komutunu kullanarak bir Azure kaynak grubu oluşturun . Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.
az group create --name myResourceGroup --location eastus
az acr create komutunu çağırarak benzersiz bir ada sahip bir Azure Container Registry oluşturun . Aşağıdaki örnek, Temel SKU ile myhelmacr adlı bir ACR oluşturur.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
Çıkışınız aşağıdaki daraltılmış örnek çıkışa benzer olmalıdır. ACR'nizin sonraki bir adımda kullanması için loginServer değerinizi not alın.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
AKS kümesi oluşturma
Kapsayıcı görüntülerini çekmek ve çalıştırmak için yeni AKS kümenizin ACR'nize erişmesi gerekir.
ACR'nize küme erişimi vermek için parametresiyle
--attach-acr
az aks create komutunu kullanarak bir AKS kümesi oluşturun. Aşağıdaki örnek, myAKSCluster adlı bir AKS kümesi oluşturur ve myhelmacr ACR'ye erişim verir. değerini ACR'nizin adıyla değiştirdiğinizdenmyhelmacr
emin olun.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
AKS kümenize bağlanma
Kubernetes kümesini yerel olarak bağlamak için Kubernetes komut satırı istemcisi kubectl'yi kullanırsınız. kubectl
Azure Cloud Shell kullanıyorsanız zaten yüklüdür.
az aks install-cli komutunu kullanarak yerel olarak yükleyin
kubectl
.az aks install-cli
az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırın
kubectl
. Aşağıdaki komut, myResourceGroup'ta myAKSCluster adlı AKS kümesinin kimlik bilgilerini alır.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Örnek uygulamayı indirin:
Bu hızlı başlangıçta Azure Vote uygulaması kullanılır.
komutunu kullanarak
git clone
GitHub'dan uygulamayı kopyalayın.git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
azure-vote
komutunu kullanarak dizinecd
gidin.cd azure-voting-app-redis/azure-vote/
Örnek uygulamayı derleme ve ACR'ye gönderme
az acr build komutunu kullanarak görüntüyü derleyin ve ACR'nize gönderin. Aşağıdaki örnek azure-vote-front:v1 adlı bir görüntü oluşturur ve myhelmacr ACR'ye gönderir. değerini ACR'nizin adıyla değiştirdiğinizden
myhelmacr
emin olun.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Not
Helm grafiklerini ACR'nize de aktarabilirsiniz. Daha fazla bilgi için bkz . Helm grafiklerini Azure kapsayıcı kayıt defterine gönderme ve çekme.
Helm grafiğinizi oluşturma
komutunu kullanarak
helm create
Helm grafiğinizi oluşturun.helm create azure-vote-front
Aşağıdaki örnekte gösterildiği gibi azure-vote-front/Chart.yaml dosyasını güncelleştirerek redis grafiği için grafik deposundan
https://charts.bitnami.com/bitnami
bir bağımlılık ekleyin ve olarak güncelleştirinv1
appVersion
:Not
Bu kılavuzda gösterilen kapsayıcı görüntüsü sürümleri bu örnekle çalışacak şekilde test edilmiştir, ancak kullanılabilir en son sürüm olmayabilir.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1
komutunu kullanarak Helm grafiği bağımlılıklarınızı güncelleştirin
helm dependency update
.helm dependency update azure-vote-front
azure-vote-front/values.yaml dosyasını aşağıdaki değişikliklerle güncelleştirin.
- Görüntü ayrıntılarını, kapsayıcı bağlantı noktasını ve dağıtım adını ayarlamak için bir redis bölümü ekleyin.
- Ön uç bölümünü redis dağıtımına bağlamak için bir arka uçAdı ekleyin.
- image.repository öğesini olarak
<loginServer>/azure-vote-front
değiştirin. - image.tag değerini olarak
v1
değiştirin. - service.type dosyasını LoadBalancer olarak değiştirin.
Örneğin:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...
Redis dağıtımının adını geçirmek için azure-vote-front/templates/deployment.yaml dosyasına bir
env
bölüm ekleyin.... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Helm grafiğinizi çalıştırma
komutunu kullanarak Helm grafiğinizi kullanarak
helm install
uygulamanızı yükleyin.helm install azure-vote-front azure-vote-front/
Hizmetin genel IP adresi döndürmesi birkaç dakika sürer. bağımsız değişkeniyle komutunu
kubectl get service
kullanarak ilerleme durumunu--watch
izleyin.kubectl get service azure-vote-front --watch
Hizmet hazır olduğunda,
EXTERNAL-IP
değer bir<pending>
IP adresine dönüşür. İzleme işlemini durdurmakkubectl
için basınCTRL+C
.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6s
Örnek uygulamayı görmek için uygulamasını kullanarak
<EXTERNAL-IP>
bir tarayıcıda uygulamanızın yük dengeleyicisine gidin.
Küme silme
Kaynak grubunuzu, AKS kümenizi, Azure kapsayıcı kayıt defterinizi, ACR'de depolanan kapsayıcı görüntülerinizi ve az group delete komutunu kullanarak silme işlemini onaylamak için parametresini
--yes
ve--no-wait
işlemin tamamlanmasını beklemeden komut istemine dönmek için parametresini kullanarak tüm ilgili kaynakları kaldırın.az group delete --name myResourceGroup --yes --no-wait
Not
AKS kümenizi sistem tarafından atanan yönetilen kimlikle (bu hızlı başlangıçtaki varsayılan kimlik seçeneği) oluşturduysanız, kimlik platform tarafından yönetilir ve kaldırılması gerekmez.
AKS kümenizi bir hizmet sorumlusuyla oluşturduysanız, kümeyi sildiğinizde hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırmak için bkz . AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.
Sonraki adımlar
Helm kullanma hakkında daha fazla bilgi için Helm belgelerine bakın.
Azure Kubernetes Service