Azure Kubernetes hizmetine derleyin ve dağıtın

Azure Pipelines

Azure Kubernetes hizmeti, barındırılan Kubernetes ortamınızı yöneterek Kapsayıcılı uygulamaları dağıtmanızı ve yönetmenizi daha hızlı ve kolay hale getirir. Bu hizmet Ayrıca, uygulamalarınızı çevrimdışı duruma getirmeden, kaynak sağlarken ve ölçeklenirken devam eden işlemlerin ve bakımın yükünü ortadan kaldırır.

Bu adım adım kılavuzda, uygulamanızı sürekli olarak oluşturup dağıtan bir işlem hattı oluşturmayı öğreneceksiniz. Bir Dockerfile içeren bir depoda kodunuzu her değiştirdiğinizde, görüntüler Azure Container Registry gönderilir ve bildirimler daha sonra Azure Kubernetes hizmet kümenize dağıtılır.

Önkoşullar

Azure DevOps projenizin Azure aboneliğinize erişmek için gerekli yetkilere sahip olduğundan emin olmak için bir Azure Resource Manager hizmet bağlantısı oluşturun. Azure Kubernetes hizmetine dağıtmak üzere projede bir işlem hattı oluşturduğunuzda hizmet bağlantısı gerekir. Aksi takdirde, küme ve Container Registry için aşağı açılan listeler boştur.

  • Depo oluşturabilirsiniz bir GitHub hesabı. Microsoft hesabınız yoksa ücretsiz olarak oluşturabilirsiniz.

  • Bir Azure DevOps kuruluş. Microsoft hesabınız yoksa ücretsiz olarak oluşturabilirsiniz. (Azure DevOps kuruluş, GitHub kuruluşundan farklıdır. Aralarında hizalama yapmak için aynı adı girin.)

    Takımınız zaten varsa, kullanmak istediğiniz Azure DevOps projenin yöneticisi olduğundan emin olun.

  • Microsoft tarafından barındırılan aracılarda işlem hatlarını çalıştırma özelliği. Paralel iş satın almak veya ücretsiz katman isteği almak için kullanabilirsiniz. Ücretsiz katman isteğinde olmak için bu makaledeki yönergeleri izleyin. Ücretsiz katmanın verilmesinin 2-3 iş günü kadar zaman almızıly olduğunu lütfen unutmayın.

  • Azure hesabı. Microsoft hesabınız yoksa ücretsiz olarak oluşturabilirsiniz.

    İpucu

    Bu noktada yeni başladıysanız, başlamak için en kolay yol Azure Pipelines kuruluşun ve Azure aboneliğinin sahibiyle aynı e-posta adresini kullanmaktır.

Kodu alma

Örnek bir uygulama ve bir Dockerfile içeren aşağıdaki depoyu çatal:

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Azure kaynaklarını oluşturma

Azure portalındaoturum açın ve sağ üst köşedeki Cloud Shell düğmesini seçin.

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 \
    --kubernetes-version 1.16.10

Azure Pipelines oturum açın

Azure Pipelinesoturum açın. Oturum açtıktan sonra, tarayıcınız ' a gider https://dev.azure.com/my-organization-name ve Azure DevOps panonuzu görüntüler.

Seçtiğiniz kuruluş içinde bir Proje oluşturun. Kuruluşunuzda bir projeniz yoksa, başlamak için bir proje oluşturun ekranına bakabilirsiniz. Aksi takdirde, panonun sağ üst köşesindeki proje oluştur düğmesini seçin.

İşlem hattını oluşturma

Bağlan ve depoyu Seç

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. İşlem hatları' na gidin ve ardından Yeni işlem hattı' nı seçin.

  3. İlk olarak kaynak kodunuzun konumu olarak GitHub ' i seçerek sihirbazın adımlarını gözden geçir.

  4. Oturum açmak için GitHub 'a yönlendirilirsiniz. Bu durumda, GitHub kimlik bilgilerinizi girin.

  5. Depo listesi göründüğünde, deponuzu seçin.

  6. Azure Pipelines uygulamasını yüklemek için GitHub 'a yönlendirilirsiniz. Varsa, & yüklemeyi Onayla' yı seçin.

Yapılandır sekmesi göründüğünde Azure Kubernetes hizmetine dağıt' ı seçin.

  1. İstenirse, kayıt defterinizi ve kümenizi oluşturduğunuz aboneliği seçin.

  2. Kümeyi seçin myapp .

  3. Ad alanı için mevcut' ı seçin ve ardından varsayılan öğesini seçin.

  4. Kapsayıcı kayıt defterinizin adını seçin.

  5. Görüntü adını ve hizmet bağlantı noktasını varsayılan değerlere bırakabilirsiniz.

  6. Sonraki adımlarda YAML otomatik olarak oluşturulan işlem hattına dahil edilecek şekilde uygulamayla ilgili yapılandırmayı gözden geçirmek Için çekme Istekleri Için gözden geçirme uygulamasını etkinleştir onay kutusunu işaretleyin.

  7. Doğrula ve Yapılandır ' ı seçin.

    Azure Pipelines işlem hattınızı oluştururken:

    • İşlem hattınızı kapsayıcı Kayıt defterinize görüntü göndermeye olanak tanımak için bir Docker kayıt defteri hizmet bağlantısı oluşturur.

    • Ortam içinde bir ortam ve Kubernetes kaynağı oluşturur. RBAC özellikli bir küme için oluşturulan Kubernetes kaynağı örtük olarak kümede 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. yıml dosyası üretir.

    • Kubernetes bildirim dosyalarını oluşturur. Bu dosyalar, yukarıda yaptığınız seçimlere bağlı olarak Deployment. yıml ve Service. yıml şablonlarını doldurma yoluyla oluşturulur.

  8. Yeni ardışık düzen belirdiğinde, ne yaptığını görmek için YAML 'yi gözden geçirin. Daha fazla bilgi için bkz. işlem hattınızı aşağıda oluşturma . Hazırsanız Kaydet ve Çalıştır' ı seçin.

  9. Yeni işlem hattınızı oluşturacak işleme görüntülenir. Yukarıda bahsedilen oluşturulan dosyaları görebilirsiniz. Kaydet ve çalıştır’ı seçin.

  10. İsterseniz, işleme iletisini depomuza işlem hattı ekleme gibi bir şekilde değiştirin. Hazırsanız yeni işlem hattını depoya kaydetmek Için Kaydet ve Çalıştır ' ı seçin ve ardından yeni işlem hattınızı ilk kez çalıştırmaya başlayın!

İşlem hattının çalıştırılmasına ve uygulamanızın dağıtılıp dağıtıldığına bakın

İşlem hatlarınız çalışırken, derleme aşamalarınız olarak izleyin ve ardından dağıtım aşamalarınız mavi (çalışıyor) ' dan yeşil (tamamlandı) seçeneğine gidin. İşlem hattınızı eylemde izlemek için aşamaları ve işleri seçebilirsiniz.

Not

Microsoft tarafından barındırılan bir aracı kullanıyorsanız, güvenlik duvarınızdan Microsoft tarafından barındırılan aracının IP aralığını eklemeniz gerekir. Her Çarşamba yayımlanacak haftalık JSON DOSYASıNDAKIIP aralıklarının haftalık listesini alın. Yeni IP aralıkları aşağıdaki Pazartesi 'yi etkili hale gelir. 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ı nasıl tanımlayacağınızıöğrenin.

İşlem hattı çalıştırması tamamlandıktan sonra, ne olduğunu inceleyin ve ardından uygulamanızın dağıtıldığını görün. Ardışık düzen özetinden:

  1. Ortamlar sekmesini seçin.

  2. Ortamı görüntüle ' yi seçin.

  3. Dağıttığınız ad alanı için uygulamanız olan örneği seçin. Yukarıda belirtilen varsayılanlara çıkdıysanız, varsayılan ad alanında MyApp uygulaması olur.

  4. Hizmetler sekmesini seçin.

  5. Dış IP adresini seçin ve panonuza kopyalayın.

  6. Yeni bir tarayıcı sekmesi veya pencere açın ve < IP adresini girin > : 8080.

Örnek uygulamamızı oluşturuyorsanız, tarayıcınızda Merhaba Dünya görüntülenir.

İşlem hattınızı oluşturma

Seçenekleri belirleyip işlemi tamamladıktan sonra işlem hattını doğrulama ve yapılandırma (yukarıya bakın) Azure Pipelines, Azure Kubernetes hizmet şablonuna dağıtma kullanılarak sizin için bir işlem hattı oluşturdunuz.

Derleme aşaması, görüntüyü derlemek ve Azure Container Registry 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, Azure Container Registry kaynağından imagePullSecret çekmek üzere Kubernetes küme düğümlerini için gereken Kubernetes bildirim görevini kullanır. Daha sonra, Kubernetes bildirim görevi tarafından Kubernetes kümesine dağıtmak için bildirim dosyaları kullanılır.

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  jobs:
  - deployment: Deploy
    displayName: Deploy job
    pool:
      vmImage: $(vmImageName)
    environment: 'azooinmyluggagepipelinesjavascriptdocker.aksnamespace'
    strategy:
      runOnce:
        deploy:
          steps:
          - task: DownloadPipelineArtifact@2
            inputs:
              artifactName: 'manifests'
              downloadPath: '$(System.ArtifactsDirectory)/manifests'

          - task: KubernetesManifest@0
            displayName: Create imagePullSecret
            inputs:
              action: createSecret
              secretName: $(imagePullSecret)
              namespace: $(k8sNamespace)
              dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
              
          - task: KubernetesManifest@0
            displayName: Deploy to Kubernetes cluster
            inputs:
              action: deploy
              namespace: $(k8sNamespace)
              manifests: |
                $(System.ArtifactsDirectory)/manifests/deployment.yml
                $(System.ArtifactsDirectory)/manifests/service.yml
              imagePullSecrets: |
                $(imagePullSecret)
              containers: |
                $(containerRegistry)/$(imageRepository):$(tag)

Kaynakları temizleme

Yukarıda oluşturduğunuz kaynaklarla işiniz bittiğinde, bunları silmek için aşağıdaki komutu kullanabilirsiniz:

az group delete --name myapp-rg

İstendiğinde y yazın.

az group delete --name MC_myapp-rg_myapp_eastus

İstendiğinde y yazın.

Daha fazla bilgi edinin

Hakkında daha fazla bilgi edinmek için davet ediyoruz: