Azure ortamınızı ayarlama

Tamamlandı

Bu ünitede, sonraki ünitelerde gereken Azure kaynaklarını oluşturmak için Azure CLI'yi kullanacaksınız. Komutları girmeye başlamadan önce Linux'ta Docker Desktop veya Docker Engine'in yüklü ve çalışır durumda olduğundan emin olun.

Bu modüldeki örneklerde Bash söz dizimi kullanılır; buna export ve ters eğik çizgiyle satır devamları dahildir. Alıştırmalar için yerel bash oturumu kullanın. Windows'ta, Docker Desktop tümleştirmesi etkin bir WSL 2 Linux dağıtımı kullanın; bu dağıtımda Linux Azure CLI ve Git'i yükleyin ve kullanın. macOS veya Linux'ta Docker daemon'unuza erişimi olan yerel bir Bash oturumu kullanın.

Azure Cloud Shell Azure yönetim komutlarını çalıştırabilir, ancak Docker daemon çalıştırmaz ve bu modülün yerel görüntü derleme ve kapsayıcı çalıştırma adımlarının yerine geçemez. Yerel PowerShell ve Komut İstemi farklı değişken ve satır devamlılığı söz dizimi gerektirir.

Alıştırmalar için kullanacağınız Bash oturumunda, Azure kaynakları oluşturmadan önce araçlarınızı denetleyin:

git --version
az version
docker version

Üç komutun da başarılı olduğunu ve docker version öğesinin erişilebilir bir Server ile istemciyi gösterdiğini onaylayın. Sunucu kullanılamıyorsa devam etmeden önce Docker Desktop, Docker Engine veya WSL tümleştirmesini düzeltin.

Zaman kazanmak için Azure'a önce kaynakları sağlamasını ve ardından sonraki üniteye geçmesini sağlayabilirsiniz. Azure Kubernetes Service (AKS) kümesi oluşturma işlemi 10 dakika kadar sürebilir. Sonraki ünitelerde devam ederken bu işlem arka planda çalıştırılabilir.

Azure Resource Manager ile kimlik doğrulaması

Oturum açmak için aşağıdaki komutu kullanın:

az login

Azure aboneliği seçme

Azure abonelikleri, Azure'da kaynak sağlamak için kullanılan mantıksal kapsayıcılardır. Azure aboneliklerinizi listelemek için aşağıdaki komutu kullanın, ardından bu modülde kullanmayı planladığınız abonelik kimliğini ( SubscriptionId değer) bulun.

az account list --output table

Bu modülün amaçları doğrultusunda kaynak oluşturmanıza olanak tanıyan bir Azure aboneliği kullandığınızdan emin olmak için aşağıdaki komutu kullanın ve yer tutucu için tercih ettiğiniz SubscriptionId değeri yazın:

az account set --subscription "<your-subscription-ID>"

Yerel değişkenleri tanımlama

Daha sonra kullanacağınız komutları basitleştirmek için aşağıdaki ortam değişkenlerini ayarlayın. Aşağıdaki yer tutucuları kendi değerlerinizle değiştirmeyi unutmayın:

  • <your-Azure-region> ile tercihiniz olan bölgeyi değiştirin - örneğin, eastus.
  • <your-container-registry> değerini benzersiz bir değerle değiştirin. Bu değer, Azure kapsayıcı kayıt defteriniz oluşturulduğunda onun için benzersiz bir tam nitelikli etki alanı adı (FQDN) oluşturmak amacıyla kullanılır.
  • <your-unique-DNS-prefix-to-access-your-AKS-cluster> değerini benzersiz bir değerle değiştirin. Bu değer, oluşturulduğunda AKS kümeniz için benzersiz bir FQDN oluşturmak için kullanılır.

Not

Azure kapsayıcı kayıt deposu adları Azure genelinde benzersiz olmalı ve 5-50 alfasayısal karakter içermelidir (yalnızca harfler ve sayılar). Kısa çizgilere ve alt çizgilere izin verilmez. <your-container-registry> ayarını yapmadan önce AZ_CONTAINER_REGISTRY değerini uyumlu, kullanılabilir bir adla değiştirin. Daha fazla bilgi için bkz. Kapsayıcı kayıt defteri adlandırma gereksinimleri.

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>

Azure kaynak grubu oluşturma

Azure kaynak grupları, Bir Azure çözümü için ilgili kaynakları tutmak için Azure aboneliklerindeki Azure kapsayıcılarıdır. Aşağıdaki komutu kullanarak bir kaynak grubu oluşturun:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION \
| jq

Not

Bu modülde, JSON verilerini görüntülemek ve daha okunabilir hale getirmek için Azure Cloud Shell jq varsayılan olarak yüklenen aracı kullanılır.

jq aracını kullanmak istemiyorsanız, bu modüldeki tüm komutların | jq bölümünü güvenle kaldırabilirsiniz.

Bir Azure kapsayıcı kayıt defteri oluşturun

Azure Container Registry, bu Java uygulaması için bir kapsayıcı görüntüsü de dahil olmak üzere kapsayıcı görüntülerini oluşturmanıza, depolamanıza ve yönetmenize olanak tanır. Aşağıdaki komutu kullanarak bir kapsayıcı kayıt defteri oluşturun:

az acr create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_CONTAINER_REGISTRY \
    --sku Basic \
    --role-assignment-mode rbac \
| jq

--role-assignment-mode rbac seçeneği, yalnızca rol tabanlı erişim denetimi (RBAC) izinlerini açıkça seçer. Bu, bu alıştırmada kullanılan AcrPull ve --attach-acr tümleştirmesini korur.

Öznitelik tabanlı erişim denetimini (ABAC) destekleyen --attach-acr kullanan yeni veya yeniden kullanılan herhangi bir kayıt defteri için desteklenmez. ABAC özellikli tümleştirme iş akışı bunun yerine kubelet kimliği için Container Registry Repository Reader ve yayımlama kimliği için uygun depo izinleri gerektirir. Bu alıştırmanın tümleştirme komutlarını değiştirmeden çalıştırmak yerine bu iş akışını izleyin. Microsoft ABAC etkin modunu önerir; bu alıştırmanın yalnızca RBAC ayarı, mevcut ABAC özellikli kaydı düşürmeye yönelik bir öneri değildir.

Azure CLI'yi bu yeni oluşturulan Azure kapsayıcı kayıt defterini kullanacak şekilde yapılandırmak için aşağıdaki komutu kullanın:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Yeni oluşturulan Azure kapsayıcı kayıt defterinde kimlik doğrulaması yapmak için aşağıdaki komutu kullanın:

Not

az acr login komutunu çalıştırmadan önce, Linux'ta Docker Desktop veya Docker Engine'in çalıştığından ve daemon'una bash oturumunuzdan erişilebildiğinden emin olun. Erişilemiyorsa şuna benzer bir hata iletisi alırsınız: Cannot connect to the Docker daemon at unix:///$HOME_DIR/.docker/run/docker.sock. Is the docker daemon running?

az acr login --name $AZ_CONTAINER_REGISTRY

Azure Kubernetes Service kümesi oluşturma

Java uygulaması kapsayıcı görüntüsünü dağıtmak için bir AKS kümesine ihtiyacınız vardır.

Important

--attach-acr seçeneği AcrPull rolünü AKS kubelet kimliğine atar. Kaynak oluşturma iznine ek olarak, hesabınızın kayıt defteri kapsamında veya bir üst kapsamda Microsoft.Authorization/roleAssignments/write sahip olması gerekir. Katkıda Bulunan tek başına bu izni vermez. Gerekirse, Azure yöneticinizden tümleştirmeyi gerçekleştirmesini veya gerekli kaynak yönetimi izinlerinin yanı sıra Role Based Access Control Administrator gibi uygun kapsamlı rol ataması erişimi vermesini isteyin.

Aşağıdaki komutu kullanarak bir AKS kümesi oluşturun:

az aks create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_KUBERNETES_CLUSTER \
    --attach-acr $AZ_CONTAINER_REGISTRY \
    --dns-name-prefix=$AZ_KUBERNETES_CLUSTER_DNS_PREFIX \
    --generate-ssh-keys \
| jq

Not

AKS kümesi oluşturma 10 dakika kadar sürebilir. Önceki komutu çalıştırdıktan sonra Azure CLI sekmenizde devam etmesine izin verebilir ve sonraki üniteye geçebilirsiniz.