KubernetesManifest@0 - Kubernetes v0 görevine dağıtma

Helm grafiklerini kullanarak bildirimleri pişirmek ve Kubernetes kümelerine dağıtmak için bir derleme veya yayın işlem hattında Kubernetes bildirim görevi kullanın.

Syntax

# Deploy to Kubernetes v0
# Use Kubernetes manifest files to deploy to clusters or even bake the manifest files to be used for deployments using Helm charts.
- task: KubernetesManifest@0
  inputs:
    #action: 'deploy' # 'bake' | 'createSecret' | 'delete' | 'deploy' | 'patch' | 'promote' | 'scale' | 'reject'. Action. Default: deploy.
    #kubernetesServiceConnection: # string. Required when action != bake. Kubernetes service connection. 
    #namespace: # string. Namespace. 
    #strategy: 'none' # 'canary' | 'none'. Optional. Use when action = deploy || action = promote || action = reject. Strategy. Default: none.
    #trafficSplitMethod: 'pod' # 'pod' | 'smi'. Optional. Use when strategy = canary. Traffic split method. Default: pod.
    #percentage: '0' # string. Required when strategy = Canary && action = deploy. Percentage. Default: 0.
    #baselineAndCanaryReplicas: '1' # string. Required when strategy = Canary && action = deploy && trafficSplitMethod = SMI. Baseline and canary replicas. Default: 1.
    #manifests: # string. Required when action = deploy || action = promote || action = reject. Manifests. 
    #containers: # string. Optional. Use when action = deploy || action = promote || action = bake. Containers. 
    #imagePullSecrets: # string. Optional. Use when action = deploy || action = promote. ImagePullSecrets. 
    #renderType: 'helm' # 'helm' | 'kompose' | 'kustomize'. Optional. Use when action = bake. Render Engine. Default: helm.
    #dockerComposeFile: # string. Required when action = bake && renderType = kompose. Path to docker compose file. 
    #helmChart: # string. Required when action = bake && renderType = helm. Helm Chart. 
    #releaseName: # string. Optional. Use when action = bake && renderType = helm. Helm Release Name. 
    #overrideFiles: # string. Optional. Use when action = bake && renderType = helm. Override Files. 
    #overrides: # string. Optional. Use when action = bake && renderType = helm. Overrides. 
    #kustomizationPath: # string. Optional. Use when action = bake && renderType = kustomize. Kustomization Path. 
    #resourceToPatch: 'file' # 'file' | 'name'. Required when action = patch. Resource to patch. Default: file.
    #resourceFileToPatch: # string. Required when action = patch && resourceToPatch = file. File path. 
    #kind: # 'deployment' | 'replicaset' | 'statefulset'. Required when action = scale || resourceToPatch = name. Kind. 
    #name: # string. Required when action = scale || resourceToPatch = name. Name. 
    #replicas: # string. Required when action = scale. Replica count. 
    #mergeStrategy: 'strategic' # 'json' | 'merge' | 'strategic'. Required when action = patch. Merge Strategy. Default: strategic.
    #arguments: # string. Optional. Use when action = delete. Arguments. 
    #patch: # string. Required when action = patch. Patch. 
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when action = createSecret. Type of secret. Default: dockerRegistry.
    #secretName: # string. Optional. Use when action = createSecret. Secret name. 
    #secretArguments: # string. Optional. Use when action = createSecret && secretType = generic. Arguments. 
    #dockerRegistryEndpoint: # string. Optional. Use when action = createSecret && secretType = dockerRegistry. Docker registry service connection. 
    #rolloutStatusTimeout: '0' # string. Optional. Use when action = deploy || action = patch || action = scale || action = promote. Timeout for rollout status. Default: 0.
# Deploy Kubernetes manifests v0
# Use Kubernetes manifest files to deploy to clusters or even bake the manifest files to be used for deployments using Helm charts.
- task: KubernetesManifest@0
  inputs:
    #action: 'deploy' # 'bake' | 'createSecret' | 'delete' | 'deploy' | 'patch' | 'promote' | 'scale' | 'reject'. Action. Default: deploy.
    #kubernetesServiceConnection: # string. Required when action != bake. Kubernetes service connection. 
    #namespace: 'default' # string. Required when action != bake. Namespace. Default: default.
    #strategy: 'none' # 'canary' | 'none'. Optional. Use when action = deploy || action = promote || action = reject. Strategy. Default: none.
    #percentage: '0' # string. Required when strategy = Canary && action = deploy. Percentage. Default: 0.
    #manifests: # string. Required when action = deploy || action = promote || action = reject. Manifests. 
    #containers: # string. Optional. Use when action = deploy || action = promote. Containers. 
    #imagePullSecrets: # string. Optional. Use when action = deploy || action = promote. ImagePullSecrets. 
    #renderType: 'helm2' # 'helm2'. Optional. Use when action = bake. Render Engine. Default: helm2.
    #helmChart: # string. Required when action = bake && renderType = helm2. Helm Chart. 
    #releaseName: # string. Optional. Use when action = bake && renderType = helm2. Helm Release Name. 
    #overrideFiles: # string. Optional. Use when action = bake && renderType = helm2. Override Files. 
    #overrides: # string. Optional. Use when action = bake && renderType = helm2. Overrides. 
    #resourceToPatch: 'file' # 'file' | 'name'. Required when action = patch. Resource to patch. Default: file.
    #resourceFileToPatch: # string. Required when action = patch && resourceToPatch = file. File path. 
    #kind: # 'deployment' | 'replicaset' | 'statefulset'. Required when action = scale || resourceToPatch = name. Kind. 
    #name: # string. Required when action = scale || resourceToPatch = name. Name. 
    #replicas: # string. Required when action = scale. Replica count. 
    #mergeStrategy: 'strategic' # 'json' | 'merge' | 'strategic'. Required when action = patch. Merge Strategy. Default: strategic.
    #arguments: # string. Optional. Use when action = delete. Arguments. 
    #patch: # string. Required when action = patch. Patch. 
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when action = createSecret. Type of secret. Default: dockerRegistry.
    #secretName: # string. Optional. Use when action = createSecret. Secret name. 
    #secretArguments: # string. Optional. Use when action = createSecret && secretType = generic. Arguments. 
    #dockerRegistryEndpoint: # string. Optional. Use when action = createSecret && secretType = dockerRegistry. Docker registry service connection.

Girişler

action - Eylem
string. İzin verilen değerler: bake, createSecret (gizli dizi oluşturma), delete, deploy, patch, promote, scale, reject. Varsayılan değer: deploy.

Gerçekleştirilecek eylemi belirtir.


kubernetesServiceConnection - Kubernetes hizmet bağlantısı
string. olduğunda action != bakegereklidir.

Kubernetes hizmet bağlantısını belirtir.


namespace - Ad alanı
string.

bayrağını kullanarak komutların ad alanını –namespace belirtir. Ad alanı sağlanmazsa komutlar varsayılan ad alanında çalışır.


namespace - Ad alanı
string. olduğunda action != bakegereklidir. Varsayılan değer: default.

bayrağını kullanarak komutların ad alanını –namespace belirtir. Ad alanı sağlanmazsa komutlar varsayılan ad alanında çalışır.


strategy - Strateji
string. İsteğe bağlı. when action = deploy || action = promote || action = rejectkullanın. İzin verilen değerler: canary, none. Varsayılan değer: none.

Eylem veya reject eylemden önce promote eylemde deploy kullanılan dağıtım stratejisini belirtir. canary Şu anda kabul edilebilir tek dağıtım stratejisidir.


trafficSplitMethod - Trafik bölme yöntemi
string. İsteğe bağlı. when strategy = canarykullanın. İzin verilen değerler: pod, smi. Varsayılan değer: pod.

değeri smiiçin trafik bölme yüzdesi bir hizmet ağı kullanılarak istek düzeyinde gerçekleştirilir. Hizmet ağı bir küme yöneticisi tarafından ayarlanmalıdır. Bu görev, SMI TrafficSplit nesnelerinin düzenlemesini işler.

değeri podiçin, bir hizmet ağı olmadığında istek düzeyinde bölme yüzdesi mümkün değildir. Bunun yerine, taban çizgisi ve kanarya için çoğaltmaları hesaplamak için yüzde girişi kullanılır. Hesaplama, kararlı değişken için giriş bildirimlerinde belirtilen çoğaltmaların yüzdesidir.


percentage - Yüzde
string. olduğunda strategy = Canary && action = deploygereklidir. Varsayılan değer: 0.

Bildirim dosyalarında yer alan iş yüklerinin temel-değişken ve kanarya-değişken çoğaltmalarının sayısını hesaplamak için kullanılan yüzde.

Belirtilen yüzde girişi için şunu hesaplayın:

(çoğaltma sayısı × yüzdesi) / 100

Sonuç bir tamsayı değilse, temel ve kanarya çeşitleri oluşturulduğunda sonucun matematiksel katı kullanılır.

Örneğin, dağıtımın hello-world giriş bildirimi dosyasında olduğunu ve görev girişinde aşağıdaki satırların bulunduğunu varsayalım:

replicas: 4
strategy: canary
percentage: 25

Bu durumda dağıtımlar hello-world-baseline ve hello-world-canary her biri bir çoğaltma ile oluşturulur. Temel değişken, dağıtımdan önceki dört çoğaltmalı değişken olan kararlı sürümle aynı görüntü ve etiketle oluşturulur. Kanarya çeşidi, yeni dağıtılan değişikliklere karşılık gelen görüntü ve etiketle oluşturulur.


baselineAndCanaryReplicas - Temel ve kanarya çoğaltmaları
string. olduğunda strategy = Canary && action = deploy && trafficSplitMethod = SMIgereklidir. Varsayılan değer: 1.

olarak smiayarladığınızda trafficSplitMethod trafik bölme yüzdesi hizmet ağı düzleminde denetlenir. Kanarya ve temel varyantlar için gerçek çoğaltma sayısını trafik bölmeden bağımsız olarak denetleyebilirsiniz.

Örneğin, giriş dağıtım bildiriminin kararlı değişken için 30 çoğaltma belirttiğini varsayalım. Ayrıca görev için aşağıdaki girişi belirttiğinizi varsayalım:

strategy: canary
trafficSplitMethod: smi
percentage: 20
baselineAndCanaryReplicas: 1

Bu durumda kararlı değişken trafiğin %80'ini alırken temel ve kanarya varyantlarının her biri belirtilen %20'nin yarısını alır. Temel ve kanarya varyantları her birinde üç çoğaltma almaz. Bunun yerine belirtilen sayıda çoğaltma alır, yani her biri bir çoğaltma alır.


manifests - Bildirim
string. olduğunda action = deploy || action = promote || action = rejectgereklidir.

Dağıtım için kullanılacak bildirim dosyalarının yolunu belirtir. Her satır tek bir yolu temsil eder. Dosya eşleştirme deseni her satır için kabul edilebilir bir değerdir.


containers - Konteyner
string. İsteğe bağlı. when action = deploy || action = promote || action = bakekullanın.

Bildirim dosyalarındaki değiştirmeler için kullanılacak görüntünün tam kaynak URL'sini belirtir. URL contosodemo.azurecr.io/helloworld:test bir örnektir.


containers - Konteyner
string. İsteğe bağlı. when action = deploy || action = promotekullanın.

Bildirim dosyalarındaki değiştirmeler için kullanılacak görüntünün tam URL'sini belirtir. Bu giriş, yeni satırla ayrılmış bir formda birden çok yapı değişikliğinin belirtimini kabul eder. Aşağıda bir örnek verilmiştir:

containers: |
  contosodemo.azurecr.io/foo:test1
  contosodemo.azurecr.io/bar:test2

Bu örnekte, giriş bildirim dosyalarının görüntü alanında ve contosodemo.azurecr.io/bar için tüm başvurular contosodemo.azurecr.io/foo aranır. Bulunan her eşleşme için etiket test1 veya test2 eşleşen başvurunun yerini alır.


imagePullSecrets - ImagePullSecrets
string. İsteğe bağlı. when action = deploy || action = promotekullanın.

Her satırın küme içinde önceden ayarlanmış bir Docker kayıt defteri gizli dizisinin adını içerdiği çok satırlı bir girişi belirtir. Giriş bildirim dosyalarında bulunan iş yükleri için her gizli dizi adı altına imagePullSecrets eklenir.


renderType - İşleme Altyapısı
string. İsteğe bağlı. when action = bakekullanın. İzin verilen değerler: helm, kompose, kustomize. Varsayılan değer: helm.

Bildirim dosyalarını üretmek için kullanılan işleme türünü belirtir.


renderType - İşleme Altyapısı
string. İsteğe bağlı. when action = bakekullanın. İzin verilen değerler: helm2 (Helm 2). Varsayılan değer: helm2.

Bildirim dosyalarını üretmek için kullanılan işleme türünü belirtir.


dockerComposeFile - Docker compose dosyasının yolu
string. olduğunda action = bake && renderType = komposegereklidir.

Docker-compose dosya yolunu belirtir.


helmChart - Helm Grafiği
string. olduğunda action = bake && renderType = helmgereklidir.

Pişirmek için Helm grafik yolunu belirtir.


helmChart - Helm Grafiği
string. olduğunda action = bake && renderType = helm2gereklidir.

Pişirmek için Helm grafik yolunu belirtir.


releaseName - Helm Sürüm Adı
string. İsteğe bağlı. when action = bake && renderType = helmkullanın.

Kullanılacak Helm yayın adını belirtir.


releaseName - Helm Sürüm Adı
string. İsteğe bağlı. when action = bake && renderType = helm2kullanın.

Kullanılacak Helm yayın adını belirtir.


overrideFiles - Dosyaları Geçersiz Kıl
string. İsteğe bağlı. when action = bake && renderType = helmkullanın.

Geçersiz kılma dosyalarının yolunu kabul eden çok satırlı bir giriş belirtir. Helm grafiklerindeki bildirim dosyaları pişirildiğinde dosyalar kullanılır.


overrideFiles - Dosyaları Geçersiz Kıl
string. İsteğe bağlı. when action = bake && renderType = helm2kullanın.

Geçersiz kılma dosyalarının yolunu kabul eden çok satırlı bir giriş belirtir. Helm grafiklerindeki bildirim dosyaları pişirildiğinde dosyalar kullanılır.


overrides - Geçersiz kılınır
string. İsteğe bağlı. when action = bake && renderType = helmkullanın.

Ayarlanacağı geçersiz kılma değerlerini belirtir.


overrides - Geçersiz kılınır
string. İsteğe bağlı. when action = bake && renderType = helm2kullanın.

Helm kullanan bildirim dosyaları işlendiğinde komut satırı anahtarı --set aracılığıyla kullanılan ek geçersiz kılma değerlerini belirtir.

geçersiz kılma değerlerini biçiminde key:valueçiftler olarak key-value belirtin. Birden çok geçersiz kılma çifti key-value kullanıyorsanız, her key-value çifti ayrı bir satırda belirtin. Farklı key-value çiftler arasındaki sınırlayıcı olarak yeni satır karakteri kullanın.


kustomizationPath - Kustomization Yolu
string. İsteğe bağlı. when action = bake && renderType = kustomizekullanın.

Dosyayı içeren dizinin yolu olması gereken bağımsız değişkeni veya depo köküne göre bir yol soneki same ile git deposu URL'si belirtir.


resourceToPatch - Düzeltme eki uygulama kaynağı
string. olduğunda action = patchgereklidir. İzin verilen değerler: file, name. Varsayılan değer: file.

Aşağıdaki düzeltme eki yöntemlerinden birini gösterir:

  • Bildirim dosyası, düzeltme eki uygulanacak nesneleri tanımlar.
  • Tek bir nesne türe ve ada göre düzeltme eki hedefi olarak tanımlanır.

Kabul edilebilir değerler dosya ve addır.


resourceFileToPatch - Dosya yolu
string. olduğunda action = patch && resourceToPatch = filegereklidir.

Düzeltme eki için kullanılan dosyanın yolunu belirtir.


kind - Tür
string. olduğunda action = scale || resourceToPatch = namegereklidir. İzin verilen değerler: deployment, replicaset, statefulset.

gibi K8s nesnesinin deploymentreplicaSet türünü ve daha fazlasını belirtir.


name - Adı
string. olduğunda action = scale || resourceToPatch = namegereklidir.

K8s nesnesinin adını belirtir.


replicas - Çoğaltma sayısı
string. olduğunda action = scalegereklidir.

Ölçeklendirilecek çoğaltma sayısını belirtir.


mergeStrategy - Birleştirme Stratejisi
string. olduğunda action = patchgereklidir. İzin verilen değerler: json, merge, strategic. Varsayılan değer: strategic.

Sağlanan düzeltme ekinin türünü belirtir.


arguments - Bağımsız değişken
string. İsteğe bağlı. when action = deletekullanın.

Komutun bağımsız değişkenlerini kubectl delete belirtir. Örnek olarak: arguments: deployment hello-world foo-bar


patch - Yama
string. olduğunda action = patchgereklidir.

Düzeltme ekinin içeriğini belirtir.


secretType - Gizli dizi türü
string. olduğunda action = createSecretgereklidir. İzin verilen değerler: dockerRegistry, generic. Varsayılan değer: dockerRegistry.

Genel veya docker imagepullsecretoluşturur veya güncelleştirir. Seçili kayıt defterinin oluşturulmasını veya güncelleştirileceğini imagepullsecret belirtindockerRegistry. , imagePullSecret Kubelet'e kapsayıcı kayıt defteri parolası içeren bir gizli dizi geçirmenin bir yoludur, böylece podunuz adına özel bir görüntü çekebilir.


secretName - Gizli dizi adı
string. İsteğe bağlı. when action = createSecretkullanın.

Gizli dizinin adını belirtir. Bu gizli dizi adını Kubernetes YAML yapılandırma dosyasında kullanabilirsiniz.


secretArguments - Bağımsız değişken
string. İsteğe bağlı. when action = createSecret && secretType = generickullanın.

Gizli diziye eklenecek anahtarları ve değişmez değerleri belirtir. Örneğin, --from-literal=key1=value1--from-literal=key2="top secret".


dockerRegistryEndpoint - Docker kayıt defteri hizmeti bağlantısı
string. İsteğe bağlı. when action = createSecret && secretType = dockerRegistrykullanın.

Küme içinde docker kayıt defteri gizli dizisi oluşturmak için kullanılan belirtilen hizmet bağlantısının kimlik bilgilerini belirtir. Alanın altındaki imagePullSecrets bildirim dosyaları daha sonra bu gizli dizinin adına başvurabilir.


rolloutStatusTimeout - Dağıtım durumu için zaman aşımı
string. İsteğe bağlı. when action = deploy || action = patch || action = scale || action = promotekullanın. Varsayılan değer: 0.

Bitiş durumundan önce watch on rollout bek eklenecek süreyi (saniye cinsinden) belirtir.


Görev denetimi seçenekleri

Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Bu görev aşağı akış adımlarında, işlerde ve aşamalarda kullanabileceğiniz aşağıdaki çıkış değişkenlerini tanımlar.

manifestsBundle
Pişirme eylemi tarafından oluşturulan bildirim paketlerinin konumunu belirtir.

Açıklamalar

Not

Bu görevin, özelliğini kullanarak connectionType kubernetes kümesini farklı şekillerde hedeflemek için ek destek sağlayan daha yeni bir sürümü vardır. Daha fazla bilgi için bkz . KubernetesManifest@1 ve KubernetesManifest@1 hizmet bağlantısı açıklamaları

Bildirimleri pişirmek ve Kubernetes kümelerine dağıtmak için derleme veya yayın işlem hattında Kubernetes bildirim görevi kullanın.

Bu görev aşağıdakileri destekler:

  • Yapıt değiştirme: Dağıtım eylemi, etiketleri ve özetleriyle birlikte belirtebileceğiniz kapsayıcı görüntülerinin bir listesini girdi olarak alır. Aynı giriş, kümeye uygulamadan önce platformlanmamış bildirim dosyalarıyla değiştirilir. Bu değiştirme, küme düğümlerinin görüntünün doğru sürümünü çekmesini sağlar.

  • Bildirim kararlılığı: Dağıtılan Kubernetes nesnelerinin dağıtım durumu denetlenir. Kararlılık denetimleri, görev durumunun başarılı mı yoksa başarısız mı olduğunu belirlemek için birleştirilir.

  • İzlenebilirlik ek açıklamaları: İzlenebilirlik bilgilerinin yerini almak için dağıtılan Kubernetes nesnelerine ek açıklamalar eklenir. Aşağıdaki ek açıklamalar desteklenir:

    • azure-pipelines/org
    • azure-pipelines/project
    • azure-pipelines/pipeline
    • azure-pipelines/pipelineId
    • azure-pipelines/execution
    • azure-pipelines/executionuri
    • azure-pipelines/jobName
  • Gizli dizi işleme: Bu eylem Docker createSecret kayıt defteri gizli dizilerinin Docker kayıt defteri hizmeti bağlantıları kullanılarak oluşturulmasını sağlar. Ayrıca, düz metin değişkenleri veya gizli dizi değişkenleri kullanılarak genel gizli dizilerin oluşturulmasını sağlar. Kümeye dağıtımdan önce giriş bildirimi dosyalarını uygun imagePullSecrets değerle deploy artırmak için eylemiyle birlikte girişi kullanabilirsinizsecrets.

  • Bake bildirimi: bake Görevin eylemi, şablonların Kubernetes bildirim dosyalarında pişirilmesine olanak tanır. Eylem Helm, Compose ve Kustomize gibi araçları kullanır. Bu Kubernetes bildirim dosyaları, pişirme ile kümeye yapılan dağıtımlar için kullanılabilir.

  • Dağıtım stratejisi: Eylemle stratejinin canarydeploy seçilmesi, ve -canaryile -baseline ekli iş yükü adlarının oluşturulmasına yol açar. Görev iki trafik bölme yöntemini destekler:

    • Service Mesh Arabirimi: Service Mesh Arabirimi (SMI) soyutlama, ve Istiogibi Linkerd hizmet ağı sağlayıcılarıyla yapılandırmaya olanak tanır. Kubernetes Bildirimi görevi, dağıtım stratejisinin yaşam döngüsü boyunca SMI TrafficSplit nesnelerini kararlı, temel ve kanarya hizmetlerine eşler.

      Bir hizmet ağında temel alan ve bu görevi kullanan kanarya dağıtımları daha doğru olur. Bu doğruluk, hizmet ağı sağlayıcılarının trafiğin ayrıntılı yüzde tabanlı bölünmesini nasıl etkinleştirdiğidir. Hizmet ağı, podlara eklenen hizmet kayıt defteri ve sepet kapsayıcılarını kullanır. Bu ekleme, ayrıntılı trafik bölme işlemine ulaşmak için uygulama kapsayıcılarıyla birlikte gerçekleşir.

    • Hizmet ağı olmayan Kubernetes: Hizmet ağı olmadığında, istek düzeyinde istediğiniz tam yüzde bölmesini alamayabilirsiniz. Ancak, kararlı değişkenin yanındaki temel ve kanarya çeşitlemlerini kullanarak kanarya dağıtımları yapabilirsiniz.

      Seçici-etiket kısıtlamaları karşılandığında hizmet, istekleri üç iş yükü değişkeninin podlarına gönderir. Kubernetes Bildirimi, temel ve kanarya varyantları oluştururken bu istekleri kabul eder. Bu yönlendirme davranışı, toplam isteklerin yalnızca bir kısmını kanaryaya yönlendirmenin hedeflenen etkisini elde eder.

    Yayın işlem hatlarında El ile Müdahale görevi veya YAML işlem hatlarında Gecikme görevi kullanarak temel ve kanarya iş yüklerini karşılaştırın. Görevin yükseltme veya reddetme eylemini kullanmadan önce karşılaştırmayı yapın.

Dağıtma eylemi

Aşağıdaki YAML kodu, bildirim dosyalarını kullanarak Kubernetes ad alanına dağıtma örneğidir:

steps:
- task: KubernetesManifest@0
  displayName: Deploy
  inputs:
    kubernetesServiceConnection: someK8sSC1
    namespace: default
    manifests: |
      manifests/deployment.yml
      manifests/service.yml
    containers: |
      foo/demo:$(tagVariable1)
      bar/demo:$(tagVariable2)
    imagePullSecrets: |
      some-secret
      some-other-secret

Yukarıdaki örnekte görev, görüntüler foo/demo ve bar/demo bildirim dosyalarının görüntü alanlarında eşleşmeleri bulmaya çalışır. Bulunan her eşleşme için, veya tagVariable2 değeri tagVariable1 resim adına etiket olarak eklenir. Yapıt değişimi için kapsayıcı girişinde özetleri de belirtebilirsiniz.

Not

Dağıtım stratejisiyle ilgili YAML girişiyle , promoteve reject eylemleri yazabilirsiniz deployancak derleme işlem hatları için El ile Müdahale görevi desteği şu anda kullanılamıyor.

Yayın işlem hatları için dağıtım stratejisiyle ilgili eylemleri ve girişleri aşağıdaki sırayla kullanmanızı öneririz:

  1. ve percentage: $(someValue)ile strategy: canary belirtilen bir dağıtım eylemi.
  2. İşlem hattını duraklatabilmeniz ve temel değişkenini kanarya çeşidiyle karşılaştırabilmeniz için El ile Müdahale görevi.
  3. El ile Müdahale görevi sürdürülürse çalıştırılan bir yükseltme eylemi ve El ile Müdahale görevi reddedilirse çalıştırılan bir reddetme eylemi.

Gizli dizi eylemi oluşturma

Aşağıdaki YAML kodu, Docker Kayıt Defteri hizmet bağlantısı kullanılarak Docker kayıt defteri gizli dizilerinin örnek bir oluşturulmasını gösterir:

steps:
- task: KubernetesManifest@0
  displayName: Create secret
  inputs: 
    action: createSecret
    secretType: dockerRegistry
    secretName: foobar
    dockerRegistryEndpoint: demoACR
    kubernetesServiceConnection: someK8sSC
    namespace: default

Bu YAML kodu, genel gizli dizilerin örnek bir oluşturulmasını gösterir:

steps:
- task: KubernetesManifest@0
  displayName: Create secret
  inputs: 
    action: createSecret
    secretType: generic
    secretName: some-secret
    secretArguments: --from-literal=key1=value1
    kubernetesServiceConnection: someK8sSC
    namespace: default

Bake eylemi

Aşağıdaki YAML kodu, Helm grafiklerinden bildirim dosyalarının pişirilmesine bir örnektir. İlk görevde ad girişinin kullanımına dikkat edin. Bu ada daha sonra, bake adımı tarafından oluşturulan bildirimlerin yolunu belirtmek için dağıtım adımından başvurulur.

steps:
- task: KubernetesManifest@0
  name: bake
  displayName: Bake K8s manifests from Helm chart
  inputs:
    action: bake
    helmChart: charts/sample
    overrides: 'image.repository:nginx'

- task: KubernetesManifest@0
  displayName: Deploy K8s manifests
  inputs:
    kubernetesServiceConnection: someK8sSC
    namespace: default
    manifests: $(bake.manifestsBundle)
    containers: |
      nginx: 1.7.9

Not

Helm'i doğrudan yayınları ve geri almaları yönetmek üzere kullanmak için Bkz. Helm grafiklerini paketleme ve dağıtma görevi.

Kustomize örneği

Aşağıdaki YAML kodu, Kustomize ile oluşturulan ve dosya içeren bildirim dosyalarının pişirilmesine bir kustomization.yaml örnektir.

steps:
- task: KubernetesManifest@0
  name: bake
  displayName: Bake K8s manifests from kustomization path
  inputs:
    action: bake
    renderType: kustomize
    kustomizationPath: folderContainingKustomizationFile

- task: KubernetesManifest@0
  displayName: Deploy K8s manifests
  inputs:
    kubernetesServiceConnection: k8sSC1
    manifests: $(bake.manifestsBundle)

Kompose örneği

Aşağıdaki YAML kodu, Docker Compose için bir dönüştürme aracı olan Kompose ile oluşturulan bildirim dosyalarını pişirme örneğidir.

steps:
- task: KubernetesManifest@0
  name: bake
  displayName: Bake K8s manifests from Docker Compose
  inputs:
    action: bake
    renderType: kompose
    dockerComposeFile: docker-compose.yaml

- task: KubernetesManifest@0
  displayName: Deploy K8s manifests
  inputs:
    kubernetesServiceConnection: k8sSC1
    manifests: $(bake.manifestsBundle)

Ölçeklendirme eylemi

Aşağıdaki YAML kodu, nesneleri ölçeklendirme örneğini gösterir:

steps:
- task: KubernetesManifest@0
  displayName: Scale
  inputs: 
    action: scale
    kind: deployment
    name: bootcamp-demo
    replicas: 5
    kubernetesServiceConnection: someK8sSC
    namespace: default

Düzeltme eki uygulama eylemi

Aşağıdaki YAML kodu, nesne düzeltme eki uygulama örneğini gösterir:

steps:
- task: KubernetesManifest@0
  displayName: Patch
  inputs: 
    action: patch
    kind: pod
    name: demo-5fbc4d6cd9-pgxn4
    mergeStrategy: strategic
    patch: '{"spec":{"containers":[{"name":"demo","image":"foobar/demo:2239"}]}}'
    kubernetesServiceConnection: someK8sSC
    namespace: default

Silme eylemi

Bu YAML kodu örnek nesne silme işlemini gösterir:

steps:
- task: KubernetesManifest@0
  displayName: Delete
  inputs:
    action: delete
    arguments: deployment expressapp
    kubernetesServiceConnection: someK8sSC
    namespace: default

Sorun giderme

Kubernetes kümem güvenlik duvarının arkasında ve barındırılan aracılar kullanıyorum. Bu kümeye nasıl dağıtırım?

Barındırılan aracılar için IP adreslerine izin vererek bu barındırılan aracılara güvenlik duvarınız üzerinden erişim verebilirsiniz. Diğer ayrıntılar için bkz. Aracı IP aralıkları.

Kanarya dağıtımlarıyla istekler hizmet yollarını kararlı hale getirmek ve çeşitlendirmek için nasıl çalışır?

Kubernetes'de podlarla hizmetler arasındaki etiket seçici ilişkisi, tek bir hizmetin istekleri hem kararlı hem de kanarya çeşitlemelerine yönlendirmesini sağlayacak şekilde dağıtımların ayarlanmasına olanak tanır. Kubernetes bildirim görevi bunu kanarya dağıtımları için kullanır.

Görev giriş bildirimi dosyalarında tanımlanan her iş yükü (Deployment, ReplicaSet, Pod, ...) için ve girişlerini action: deploy içeriyorsa dağıtımın bir -baseline ve -canary değişkeni strategy: canaryoluşturulur. Bu örnekte, giriş bildirimi dosyasında bir dağıtım sampleapp vardır ve işlem hattının 22 numaralı çalıştırması tamamlandıktan sonra, bu dağıtımın adlı sampleapp kararlı değişkeni kümede dağıtılır. Sonraki çalıştırmada (bu durumda 23 numaralı çalıştırmada), Ve ile action: deploystrategy: canary Kubernetes bildirim görevi, örnek uygulama-taban çizgisi ve örnek uygulama-kanarya dağıtımlarının oluşturulmasına neden olur. Bu dağıtımların sayısı, giriş bildirim dosyalarına göre son kararlı değişken için istenen çoğaltma sayısının değeriyle görev girişinin çarpımıyla percentagesampleapp belirlenir.

Çoğaltma sayısı hariç, temel sürüm kararlı değişkenle aynı yapılandırmaya sahipken, kanarya sürümü geçerli çalıştırma tarafından sunulan yeni değişikliklere sahiptir (bu durumda, 23 numaralı çalıştır). Yukarıda belirtilen adımdan sonra işlem hattında el ile müdahale ayarlanırsa, işlem hattı yöneticisinin temel ve kanarya sürümleri için temel ölçümleri değerlendirebilmesi ve kanarya değişikliklerinin eksiksiz bir dağıtım için güvenli ve yeterli olup olmadığına karar verebilmesi için işlem hattını duraklatma fırsatı sağlar.

action: promote Kubernetes bildirim görevlerinin ve strategy: canary veya action: reject ve strategy: canary girişleri, kanarya değişikliklerini sırasıyla yükseltmek veya reddetmek için kullanılabilir. Her iki durumda da, bu adımın sonunda, kümede kısa ömürlü temel ve kanarya sürümleri temizlenirken, yalnızca giriş bildirim dosyalarında bildirilen iş yüklerinin kararlı değişkeninin dağıtılmada kalacağını unutmayın.

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalıştırılır Agent, DeploymentGroup
Talep Hiçbiri
Özellikler Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü Desteklenen tüm aracı sürümleri.
Görev kategorisi Dağıtma