Kubectl görevi

Azure Pipelines

Kubectl komutlarını çalıştırarak bir Kubernetes kümesini dağıtmak, yapılandırmak veya güncelleştirmek için bu görevi kullanın.

Hizmet bağlantısı

Görev, aşağıda açıklanan Azure Resource Manager ve Kubernetes hizmet bağlantısı olmak üzere iki hizmet bağlantı türü ile birlikte kullanılabilir.

Azure Resource Manager

ParametrelerDescription
connectionType
Hizmet bağlantı türü
Istenir Diğer tüm kümelerde Azure Kubernetes hizmeti veya Kubernetes hizmet bağlantısı kullanırken Azure Resource Manager .
Varsayılan değer: Azure Resource Manager
azureSubscriptionEndpoint
Azure aboneliği
Istenir Azure hizmet bağlantısının adı.
azureResourceGroup
Kaynak grubu
Istenir Abonelik içindeki kaynak grubunun adı.
kubernetesCluster
Kubernetes kümesi
Istenir AKS kümesinin adı.
useClusterAdmin
Küme Yöneticisi kimlik bilgilerini kullan
Seçim Varsayılan küme kullanıcı kimlik bilgileri yerine Küme Yöneticisi kimlik bilgilerini kullanın. Bu, rol tabanlı erişim denetimini yoksayar.
namespace
Ad Alanı
Seçim Kubectl komutlarının çalıştırılacağı ad alanı. Belirtilmemişse, varsayılan ad alanı kullanılır.

Bu YAML örneği, Kubernetes kümesine başvurmak için Azure Resource Manager nasıl kullanıldığını gösterir. Bu, kubectl komutlarıyla ve komut için gereken uygun değerlerden biri ile birlikte kullanılır.

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso
  useClusterAdmin: false

steps:
- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    useClusterAdmin: $(useClusterAdmin)

Kubernetes hizmet bağlantısı

ParametrelerDescription
kubernetesServiceEndpoint
Kubernetes hizmet bağlantısı
Istenir Bir Kubernetes hizmet bağlantısı seçin.
namespace
Ad Alanı
Seçim Kubectl komutlarının çalıştırılacağı ad alanı. Belirtilmemişse, varsayılan ad alanı kullanılır.

Bu YAML örneği, Kubernetes kümesine başvurmak için bir Kubernetes hizmet bağlantısının nasıl kullanıldığını gösterir. Bu, kubectl komutlarıyla ve komut için gereken uygun değerlerden biri ile birlikte kullanılır.

- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

Komutlar

Komut girişi aşağıdaki kubectl komutlarındanbirini kabul eder:

uygulama, oluşturma, silme, yürütme, kullanıma sunma , al, oturum açma, oturum kapatma, Günlükler, çalıştırma, ayarlama veya üst.

ParametrelerDescription
command
Komut
Istenir Dosya adı veya stdin tarafından bir kaynağa yapılandırma uygular.
Varsayılan değer: Uygula
useConfigurationFile
Yapılandırma dosyalarını kullanma
Seçim Kubernetes yapılandırma dosyalarını kubectl komutuyla birlikte kullanın. Kubernetes yapılandırma dosyalarının dosya adını, dizinini veya URL 'sini girin.
Varsayılan değer: false
arguments
Bağımsız değişkenler
Seçim Belirtilen kubectl komutu için bağımsız değişkenler.

Bu YAML örneği Apply komutunu göstermektedir:

- task: Kubernetes@1
  displayName: kubectl apply using arguments
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    arguments: -f mhc-aks.yaml

Bu YAML örneği, Uygula komutuyla bir yapılandırma dosyasının kullanımını gösterir:

- task: Kubernetes@1
  displayName: kubectl apply using configFile
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    useConfigurationFile: true
    configuration: mhc-aks.yaml

Gizli Diziler

Gizli türdeki Kubernetes nesneleri, parolalar, OAuth belirteçleri ve SSH anahtarları gibi hassas bilgileri tutmak için tasarlanmıştır. Bu bilgilerin bir gizli dizi halinde yerleştirilmesi, bir pod tanımına veya bir Docker görüntüsüne tam olarak koymak yerine daha güvenli ve daha esnektir. Azure Pipelines, ımagepullsecret 'in bir hizmet hesabına eklenmesini veya aşağıda açıklandığı şekilde herhangi bir genel gizli dizi kurulumunu basitleştirir.

Imagepullsecret

ParametrelerDescription
secretType
Gizli dizi türü
Istenir Bir ımagepullsecret veya diğer genel gizli dizi oluşturun veya güncelleştirin. Kabul edilebilir değerler: ımagepullsecret için Dockerregistry veya diğer gizli dizi türleri için genel .
Varsayılan değer: dockerRegistry
containerRegistryType
Kapsayıcı kayıt defteri türü
Istenir Kabul edilebilir değerler: Azure Container Registryveya başka bir kayıt defteri için Container Registry .
Varsayılan değer: Azure Container Registry
azureSubscription
EndpointForSecrets

Azure aboneliği
(SecretType = = dockerRegistry ve containerRegistryType = = Azure Container Registry gerekliyse gereklidir) Imagepullsecret ayarlanacak Azure Container Registry içeren abonelikte Azure Resource Manager hizmet bağlantısı.
azureContainerRegistry
Azure Container kayıt defteri
(SecretType = = dockerRegistry ve containerRegistryType = = Azure Container Registry gerekliyse gereklidir) Imagepullsecret ayarlanacak Azure Container Registry.
secretName
Gizli dizi adı
Seçim Gizli anahtar adı.
forceUpdate
Güncelleştirme gizliliğini zorla
Seçim Varsa, parolayı silin ve güncelleştirilmiş değerlerle yeni bir tane oluşturun.
Varsayılan değer: true

Bu YAML örneği, ımagepullgizlilikleri ayarlamayı gösterir:

    - task: Kubernetes@1
      displayName: kubectl apply for secretType dockerRegistry
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: dockerRegistry
        containerRegistryType: Azure Container Registry
        azureSubscriptionEndpointForSecrets: $(azureSubscriptionEndpoint)
        azureContainerRegistry: $(azureContainerRegistry)
        secretName: mysecretkey2
        forceUpdate: true

Genel gizlilikler

ParametrelerDescription
secretType
Gizli dizi türü
Istenir Bir ımagepullsecret veya diğer genel gizli dizi oluşturun veya güncelleştirin. Kabul edilebilir değerler: ımagepullsecret için Dockerregistry veya diğer gizli dizi türleri için genel .
Varsayılan değer: dockerRegistry
secretArguments
Bağımsız değişkenler
Seçim Gizli dizi eklemek için anahtarlar ve değişmez değerler belirtin. Örneğin, --from-literal=key1=value1 --from-literal=key2="top secret"
secretName
Gizli dizi adı
Seçim Gizli anahtar adı.

Bu YAML örneği, Secretarguments girişi için belirtilen sabit değerlerden genel gizli dizileri oluşturur:

    - task: Kubernetes@1
      displayName: secretType generic with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=5678
        secretName: mysecretkey

Ardışık düzen değişkenleri, burada gösterildiği gibi değişmez değerler belirtmek için bağımsız değişkenleri geçirmek için kullanılabilir:

    - task: Kubernetes@1
      displayName: secretType generic with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey

ConfigMap

ConfigMaps, Kapsayıcılı uygulamalar için taşınabilirlik sağlamak üzere görüntü içeriğinden yapılandırma yapıtlarını ayırarak izin verir.

ParametrelerDescription
configMapName
ConfigMapName
Seçim ConfigMap 'in adı.
forceUpdateConfigMap
Güncelleştirme configmap 'i zorla
Seçim Varsa configmap 'i silin ve güncelleştirilmiş değerlerle yeni bir tane oluşturun.
Varsayılan değer: false
useConfigMapFile
Dosya kullan
Seçim Tek bir dosyadan veya bir dizin belirterek birden çok dosyadan bir ConfigMap oluşturun.
Varsayılan değer: false
configMapFile
ConfigMap dosyası
(UseConfigMapFile = = true ise gereklidir) ConfigMaps içeren bir dosya veya dizin belirtin. Bunun --from-file bağımsız değişkenini kullanacağı unutulmamalıdır.
configMapArguments
Bağımsız değişkenler
Seçim ConfigMap 'e eklemek için anahtarlar ve sabit değerler belirtin. Örneğin, --from-literal=key1=value1 --from-literal=key2="top secret"

Bu YAML örneği bir ConfigMap dosyasına işaret ederek bir ConfigMap oluşturur:

    - task: Kubernetes@1
      displayName: kubectl apply
      inputs:
        configMapName: myconfig
        useConfigMapFile: true
        configMapFile: src/configmap

Bu YAML örneği, sabit değerleri doğrudan Configmaparguments girişi olarak belirterek bir configmap oluşturur ve ForceUpdate 'i true olarak ayarlar:

    - task: Kubernetes@1
      displayName: configMap with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=contoso

Aşağıdaki şekilde, ConfigMap oluştururken değişmez değerleri geçirmek için işlem hattı değişkenlerini kullanabilirsiniz:

    - task: Kubernetes@1
      displayName: configMap with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=$(contosovalue)

Gelişmiş

ParametrelerAçıklama
versionOrLocation
Sürüm
Seçim Kullanılacak bir kubectl sürümünü açıkça seçin ya da kubectl ikilisinin yolunu (konumunu) belirtin.
Varsayılan değer: sürüm
versionSpec
Sürüm belirtimi
(VersionOrLocation = = VERSION gereklidir) Kullanılacak kubectl sürümü. Örnekler: 1.7.0, 1. x. 0, 4. x. 0, 6.10.0, > = 6.10.0
Varsayılan değer: 1.7.0
checkLatest
En son sürümü denetle
Seçim True ise, kubectl 'nin en son sürümüne yönelik bir denetim gerçekleştirilir.
Varsayılan değer: false
specifyLocation
Konum belirt
Istenir kubectl.exe dosyasının tam yolu.
cwd
Çalışma dizini
Seçim Kubectl komutu için çalışma dizini.
Varsayılan değer: $ (System. DefaultWorkingDirectory)
outputFormat
Çıkış biçimi
Seçim Kabul edilebilir değerler: JSON veya YAML.
Varsayılan değer: JSON

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ı

Açık kaynak

Bu görev GitHub 'daaçık kaynaktır. Geribildirim ve katılımlar hoş geldiniz.