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
| Parametreler | Description |
|---|---|
connectionTypeHizmet 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 |
azureSubscriptionEndpointAzure aboneliği | Istenir Azure hizmet bağlantısının adı. |
azureResourceGroupKaynak grubu | Istenir Abonelik içindeki kaynak grubunun adı. |
kubernetesClusterKubernetes kümesi | Istenir AKS kümesinin adı. |
useClusterAdminKü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. |
namespaceAd 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ı
| Parametreler | Description |
|---|---|
kubernetesServiceEndpointKubernetes hizmet bağlantısı | Istenir Bir Kubernetes hizmet bağlantısı seçin. |
namespaceAd 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ımasunma , al, oturum açma, oturum kapatma, Günlükler, çalıştırma, ayarlamaveya üst.
| Parametreler | Description |
|---|---|
commandKomut | Istenir Dosya adı veya stdin tarafından bir kaynağa yapılandırma uygular. Varsayılan değer: Uygula |
useConfigurationFileYapı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 |
argumentsBağı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
| Parametreler | Description |
|---|---|
secretTypeGizli 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 |
containerRegistryTypeKapsayı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 |
azureSubscriptionAzure 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ı. |
azureContainerRegistryAzure Container kayıt defteri | (SecretType = = dockerRegistry ve containerRegistryType = = Azure Container Registry gerekliyse gereklidir) Imagepullsecret ayarlanacak Azure Container Registry. |
secretNameGizli dizi adı | Seçim Gizli anahtar adı. |
forceUpdateGü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
| Parametreler | Description |
|---|---|
secretTypeGizli 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 |
secretArgumentsBağı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" |
secretNameGizli 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.
| Parametreler | Description |
|---|---|
configMapNameConfigMapName | Seçim ConfigMap 'in adı. |
forceUpdateConfigMapGüncelleştirme configmap 'i zorla | (İsteğe bağlı) Varsa configmap'i silin ve güncelleştirilmiş değerlerle yeni bir tane oluşturun. Varsayılan değer: false |
useConfigMapFileDosya kullan | (İsteğe bağlı) Tek bir dosyadan veya bir dizin belirterek birden çok dosyadan ConfigMap oluşturun. Varsayılan değer: false |
configMapFileConfigMap Dosyası | (useConfigMapFile == true ise gereklidir) configMap'leri içeren bir dosya veya dizin belirtin. Bunun bağımsız değişkenlerini kullanabileceğini --from-file unutmayın. |
configMapArgumentsBağımsız değişkenler | (İsteğe bağlı) configMap'e eklemek için anahtarları ve değişmez değerleri belirtin.
Örneğin, --from-literal=key1=value1 --from-literal=key2="top secret" |
Bu YAML örneği, bir ConfigMap dosyasını işaret etmek için bir ConfigMap oluşturur:
- task: Kubernetes@1
displayName: kubectl apply
inputs:
configMapName: myconfig
useConfigMapFile: true
configMapFile: src/configmap
Bu YAML örneği, değişmez değerleri doğrudan configMapArguments girişi olarak belirterek ve forceUpdate'i true olarak ayarerek bir ConfigMap oluşturur:
- 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
ConfigMap oluştururken burada gösterildiği gibi 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ş
| Parametreler | Açıklama |
|---|---|
versionOrLocationSürüm | (İsteğe bağlı) Kullanılacak kubectl sürümünü açıkça seçin veya kubectl ikili dosyanın yolunu (konumu) belirtin. Varsayılan değer: sürüm |
versionSpecSürüm özellikleri | (versionOrLocation == sürümü ise 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 |
checkLatestEn son sürümü denetleme | (İsteğe bağlı) True ise kubectl'in en son sürümü için bir denetim gerçekleştirilir. Varsayılan değer: false |
specifyLocationKonum belirtme | (Gerekli) Dosyanın tam kubectl.exe. |
cwdÇalışma dizini | (İsteğe bağlı) Kubectl komutu için çalışma dizini. Varsayılan değer: $(System.DefaultWorkingDirectory) |
outputFormatÇıkış biçimi | (İsteğe bağlı) Kabul edilebilir değerler: json veya YAML. Varsayılan değer: json. outputFormat: ''Kubectl'in outputFormat'ını varsayılan olarak olduğu gibi açıkça boş bırakabilirsiniz |
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, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.