Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services
Azure Kubernetes Service'e (AKS) otomatik olarak dağıtmak için Azure Pipelines'ı kullanın. Azure Pipelines, Azure DevOps kullanarak sürekli tümleştirme (CI) ve sürekli teslim (CD) ile derlemenizi, test etmenizi ve dağıtmanızı sağlar.
Bu makalede, uygulamanızı sürekli olarak derleyen ve dağıtan bir işlem hattı oluşturmayı öğreneceksiniz. Dockerfile içeren bir depoda kodunuzu her değiştirdiğinizde, görüntüler Azure Container Registry'nize gönderilir ve bildirimler AKS kümenize dağıtılır.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure Resource Manager hizmet bağlantısı. Azure Resource Manager hizmet bağlantısı oluşturun.
- Bir GitHub hesabı. Henüz yoksa ücretsiz bir GitHub hesabı oluşturun.
Kodu al
Örnek uygulama ve bir Dockerfile içeren aşağıdaki depoyu forklayın:
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Azure kaynaklarını oluşturma
Azure portalında oturum açın ve sağ üst köşedeki Cloud Shell düğmesini seçin. AKS kümesi oluşturmak için Azure CLI veya PowerShell kullanın.
Kapsayıcı kayıt defteri oluşturma
# Create a resource group
az group create --name myapp-rg --location eastus
# Create a container registry
az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
# Create a Kubernetes cluster
az aks create \
--resource-group myapp-rg \
--name myapp \
--node-count 1 \
--enable-addons monitoring \
--generate-ssh-keys
Azure Pipelines'da oturum açma
Azure Pipelines'da oturum açın. Tarayıcınız, oturum açtıktan sonra https://dev.azure.com/my-organization-name
adresine gider ve Azure DevOps panonuzu görüntüler.
Seçtiğiniz kuruluş içinde bir proje oluşturun. Kuruluşunuzda hiç proje yoksa Başlamak için bir proje oluşturun ekranını görürsünüz. Aksi takdirde, panonun sağ üst köşesindeki Proje Oluştur düğmesini seçin.
İşlem hattını oluştur
Bağlanın ve deponuzu seçin
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'na gidin ve Yeni işlem hattı'na tıklayın.
İlk olarak kaynak kodunuzun konumu olarak GitHub'ı seçerek sihirbazın adımlarını uygulayın.
Oturum açmak için GitHub'a yönlendirilebilirsiniz. Öyleyse GitHub kimlik bilgilerinizi girin.
Depo listesini gördüğünüzde deponuzu seçin.
Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilebilirsiniz. Öyleyse Onayla ve yükle'yi seçin.
Azure Kubernetes Service'e Dağıt'ı seçin.
İstendiğinde, kayıt defterinizi ve kümenizi oluşturduğunuz aboneliği seçin.
Kümeyi
myapp
seçin.Ad Alanı için Mevcut seçeneğini ve ardından Varsayılan seçeneğini seçin.
Kapsayıcı kayıt defterinizin adını seçin.
Görüntü adını varsayılan olarak ayarlayabilirsiniz.
Hizmet bağlantı noktasını 8080 olarak ayarlayın.
Çekme istekleri için Gözden Geçirme Uygulamasını Etkinleştir onay kutusunu ayarlayın, böylece gözden geçirme uygulamasına ilişkin yapılandırma, sonraki adımlarda otomatik olarak oluşturulan YAML işlem hattına dahil edilir.
Doğrula ve yapılandır'ı seçin.
Azure Pipelines işlem hattınızı oluştururken işlem şunları yapacaktır:
İşlem hattınızın kapsayıcı kayıt defterinize görüntü göndermesini sağlamak için bir Docker kayıt defteri hizmeti bağlantısı oluşturun.
Bir ortam ve bu ortam içinde bir Kubernetes kaynağı oluşturun. RBAC özellikli bir kümede, oluşturulan Kubernetes kaynağı kümede örtük olarak ServiceAccount ve RoleBinding nesneleri oluşturur, böylece oluşturulan ServiceAccount seçilen ad alanı dışında işlem gerçekleştiremez.
İşlem hattınızı tanımlayan bir azure-pipelines.yml dosyası oluşturun.
Kubernetes bildirim dosyaları oluşturun. Bu dosyalar, yaptığınız seçimlere göre deployment.yml ve service.yml şablonlarının nemlendirilmesiyle oluşturulur. Hazır olduğunuzda Kaydet ve çalıştır'ı seçin.
Kaydet ve çalıştır'ı seçin.
Commit iletisini şu şekilde değiştirebilirsiniz: Depomuza işlem hattı ekle. Hazır olduğunuzda Kaydet ve çalıştır'ı seçerek yeni işlem hattını deponuza işleyin ve ardından yeni işlem hattınızın ilk çalıştırmasına başlayın!
Uygulama dağıtımını görün
İşlem hattınız çalışırken, önce derleme aşamanızın, sonra dağıtım aşamanızın maviden (çalışıyor) yeşile (tamamlandı) geçişini izleyin. İşlem hattınızın çalışmasını izlemek için aşamaları ve görevleri seçebilirsiniz.
Not
Microsoft tarafından barındırılan bir aracı kullanıyorsanız, Güvenlik duvarınıza Microsoft tarafından barındırılan aracının IP aralığını eklemeniz gerekir. Her Çarşamba yayımlanan haftalık JSON dosyasından haftalık IP aralıkları listesini alın. Yeni IP aralıkları, bir sonraki Pazartesi günü geçerli olur. Daha fazla bilgi için, bkz. Microsoft tarafından barındırılan aracılar. Azure DevOps kuruluşunuz için gereken IP aralıklarını bulmak için, Microsoft tarafından barındırılan aracılar için olası IP aralıklarını tanımlamayı öğrenin.
İşlem hattı çalıştırması tamamlandıktan sonra neler olduğunu inceleyin ve ardından uygulamanızın dağıtıldığını görün. İşlem hattı özetinden:
Ortamlar sekmesini seçin.
Çevreyi görüntüle'yi seçin.
Dağıtılan ad alanı için uygulamanızın örneğini seçin. Varsayılanları kullandıysanız, bu, varsayılan ad alanındaki myapp uygulamasıdır.
Hizmetler sekmesini seçin.
Dış IP adresini seçin ve panonuza kopyalayın.
Yeni bir tarayıcı sekmesi veya penceresi açın ve IP adresi<:8080 girin>.
Örnek uygulamamızı oluşturuyorsanız, tarayıcınızda Merhaba dünya görünür.
İşlem hattının oluşturulma şekli
Seçenekleri belirlemeyi tamamladıktan sonra işlem hattını doğrulayıp yapılandırmaya geçtiğinizde, Azure Pipelines sizin için Azure Kubernetes Service'e Dağıtma şablonunu kullanarak bir işlem hattı oluşturdu.
Derleme aşaması, görüntüyü derlemek ve Azure Container Registry'ye göndermek için Docker görevini kullanır.
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
- task: PublishPipelineArtifact@1
inputs:
artifactName: 'manifests'
path: 'manifests'
Dağıtım işi, Kubernetes küme düğümlerinin Azure Container Registry kaynağından çekmesi gereken imagePullSecret
oluşturmak için Kubernetes bildirim görevini kullanır. Bildirim dosyaları daha sonra Kubernetes bildirim görevi tarafından Kubernetes kümesine dağıtmak için kullanılır. Bildirim dosyaları service.yml
ve deployment.yml
, Azure Kubernetes Service'e Dağıt şablonunu kullandığınızda oluşturulmuştur.
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy job
pool:
vmImage: $(vmImageName)
environment: 'myenv.aksnamespace' #customize with your environment
strategy:
runOnce:
deploy:
steps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: 'manifests'
downloadPath: '$(System.ArtifactsDirectory)/manifests'
- task: KubernetesManifest@1
displayName: Create imagePullSecret
inputs:
action: 'createSecret'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
secretType: 'dockerRegistry'
secretName: '$(imagePullSecret)'
dockerRegistryEndpoint: '$(dockerRegistryServiceConnection)'
- task: KubernetesManifest@1
displayName: Deploy to Kubernetes cluster
inputs:
action: 'deploy'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
manifests: |
$(Pipeline.Workspace)/manifests/deployment.yml
$(Pipeline.Workspace)/manifests/service.yml
containers: '$(containerRegistry)/$(imageRepository):$(tag)'
imagePullSecrets: '$(imagePullSecret)'
Kaynakları temizleme
Oluşturduğunuz kaynakları her bitirdiğinizde, bunları silmek için aşağıdaki komutu kullanabilirsiniz:
az group delete --name myapp-rg
İstendiğinde y
öğesini girin.
Azure Kubernetes Service