Hızlı başlangıç: Held ile Azure Kubernetes hizmeti (AKS) üzerinde geliştirme
Helk , Kubernetes uygulamalarının yaşam döngüsünü yüklemenize ve yönetmenize yardımcı olan bir açık kaynaklı paketleme aracıdır. Apt ve yum gibi Linux paket yöneticilerine benzer şekilde, Helm, önceden yapılandırılmış Kubernetes kaynakları paketleri olan Kubernetes grafiklerini yönetir.
Bu hızlı başlangıçta, AKS üzerinde bir uygulamayı paketlemek ve çalıştırmak için Held kullanacaksınız. Held kullanarak var olan bir uygulamayı yükleme hakkında daha fazla bilgi için bkz. AKS nasıl yapılır Kılavuzu 'nda mevcut uygulamaları Held Ile yükleme .
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturabilirsiniz.
- Yüklü Azure CLI.
- Held v3 yüklendi.
Azure Container Registry oluşturma
Bilgisayarınızı AKS kümenizde Helm kullanarak çalıştırmak için kapsayıcı görüntülerinizi bir Azure Container Registry (ACR) olarak depolamanız gerekir. Azure 'da benzersiz bir kayıt defteri adı sağlayın ve 5-50 alfasayısal karakter içerir. 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.
Aşağıdaki örnek, Basic SKU 'Su Ile Myresourcegroup Içinde myhelmacr adlı bir ACR oluşturmak için az ACR Create komutunu kullanır.
az group create --name MyResourceGroup --location eastus
az acr create --resource-group MyResourceGroup --name MyHelmACR --sku Basic
Çıktı aşağıdaki örneğe benzer olacaktır. Daha sonraki bir adımda kullanacağınız için ACR 'niz için Loginserver değerini göz önünde bulabilirsiniz. Aşağıdaki örnekte, Myhelmacr.azurecr.io Myhelmacr için loginserver ' dır.
{
"adminUserEnabled": false,
"creationDate": "2019-06-11T13:35:17.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
Yeni AKS kümenizin, kapsayıcı görüntülerini çekmek ve çalıştırmak için ACR 'nize erişmesi gerekir. Şunları yapmak için aşağıdaki komutu kullanın:
- Myaks adlı bir aks kümesi oluşturun ve Myhelmacr öğesini ekleyin.
- Myaks kümesine myhelmacr ACR 'nize erişim izni verin.
az aks create -g MyResourceGroup -n MyAKS --location eastus --attach-acr MyHelmACR --generate-ssh-keys
aks kümenize Bağlan
Bir Kubernetes kümesini yerel olarak bağlamak için Kubernetes komut satırı istemcisini ( kubectl) kullanın. kubectl Azure Cloud Shell kullanıyorsanız, zaten yüklüdür.
kubectlKomutunu kullanarak yerel olarak yükleraz aks install-cli:az aks install-clikubectlKomutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırınaz aks get-credentials. Aşağıdaki komut örneği, Myresourcegroup Içinde myaks adlı aks kümesi için kimlik bilgilerini alır:az aks get-credentials --resource-group MyResourceGroup --name MyAKS
Örnek uygulamayı indirin:
Bu hızlı başlangıç, Azure oy uygulamasınıkullanır. uygulamayı GitHub kopyalayın ve azure-vote dizine gidin.
git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
cd azure-voting-app-redis/azure-vote/
Örnek uygulamayı derleyin ve ACR 'ye gönderin
Yukarıdaki Dockerfile 'ı kullanarak, kayıt defterine görüntü derlemek ve göndermek için az ACR Build komutunu çalıştırın. .Komutun sonunda, Dockerfile konumunu (Bu durumda, geçerli dizin) ayarlar.
az acr build --image azure-vote-front:v1 \
--registry MyHelmACR \
--file Dockerfile .
Not
ACR 'nize kapsayıcı görüntüleri almanın yanı sıra, Helm grafiklerini de ACR 'nize aktarabilirsiniz. Daha fazla bilgi için bkz. Azure Container Registry 'de Helu grafikleri gönderme ve çekme.
Held grafiğinizi oluşturma
Komutunu kullanarak Held grafiğinizi oluşturun helm create .
helm create azure-vote-front
Grafik deposundan redsıs grafiğinin bir bağımlılığını eklemek ve ' ye güncelleştirmek için Azure-Vote-Front/Chart. YAML 'yi güncelleştirin https://charts.bitnami.com/bitnami appVersion v1 . Örneğin:
apiVersion: v2
name: azure-vote-front
description: A Helm chart for Kubernetes
dependencies:
- name: redis
version: 14.7.1
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
Şu kullanarak helmchart bağımlılıklarını güncelleştirin helm dependency update :
helm dependency update azure-vote-front
Update Azure-Vote-Front/values. YAML:
- Görüntü ayrıntılarını, kapsayıcı bağlantı noktasını ve dağıtım adını ayarlamak için bir redsıs bölümü ekleyin.
- Ön uç bölümünü redsıs dağıtımına bağlamak Için backendname ekleyin.
- Image. Repository öğesini olarak değiştirin
<loginServer>/azure-vote-front. - Image. Tag öğesini olarak değiştirin
v1. - Service. Type öğesini LoadBalancer öğesine değiştirin.
Örneğin:
# Default values for azure-vote-front.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
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
...
env Redsıs dağıtımının adını geçirmek için Azure-Vote-Front/Templates/Deployment. YAML öğesine bir 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 }}
...
Held grafiğinizi çalıştırma
Komutunu kullanarak Held grafiğinizi kullanarak uygulamanızı yüklersiniz helm install .
helm install azure-vote-front azure-vote-front/
Hizmetin genel bir IP adresi döndürmesi birkaç dakika sürer. kubectl get serviceKomutunu bağımsız değişkeniyle kullanarak ilerlemeyi izleyin --watch .
$ kubectl get service azure-vote-front --watch
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 kullanarak bir tarayıcıda uygulamanızın yük dengeleyicisine gidin <EXTERNAL-IP> .
Küme silme
Kaynak grubunu, AKS kümesini, kapsayıcı kayıt defterini, ACR 'de depolanan kapsayıcı görüntülerini ve tüm ilgili kaynakları kaldırmak için az Group Delete komutunu kullanın.
az group delete --name MyResourceGroup --yes --no-wait
Not
Kümeyi sildiğinizde, AKS kümesi tarafından kullanılan Azure Active Directory hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırma adımları için bkz. AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.
Yönetilen bir kimlik kullandıysanız, kimlik platform tarafından yönetilir ve kaldırma gerektirmez.
Sonraki adımlar
Held kullanma hakkında daha fazla bilgi için HELI belgelerine bakın.