Azure Kubernetes Service (AKS) yapılandırması ve sorun giderme seçenekleri için Gizli Dizi deposu CSI Sürücüsü için Azure Key Vault sağlayıcısı
AKS kümesinde Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısını kullanma ve AKS'de Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısına erişmek için kimlik sağlama makalesindeki adımları izleyin. Bu adımları tamamladıktan sonra ek yapılandırmalar uygulayabilir veya sorun giderme işlemleri gerçekleştirebilirsiniz.
Yapılandırma seçenekleri
Otomatik döndürmeyi etkinleştirme ve devre dışı bırakma
Not
Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısı etkinleştirildiğinde, alanında tanımlanan pod bağlamasını ve Kubernetes gizli dizisini secretObjects
SecretProviderClass
güncelleştirir. Bunu, tanımladığınız döndürme yoklama aralığına göre değişiklikleri düzenli aralıklarla yoklayarak yapar. Varsayılan döndürme yoklama aralığı iki dakikadır.
Not
İlk pod dağıtımından sonra bir gizli dizi bir dış gizli dizi deposunda güncelleştirildiğinde Kubernetes Gizli Dizisi ve pod bağlaması, uygulamanın gizli dizi verilerini nasıl tükettiğine bağlı olarak düzenli aralıklarla güncelleştirilir.
Kubernetes Gizli Dizisini bir birim olarak bağlayın: Gizli Dizi Deposu CSI Sürücüsünün otomatik döndürme ve eşitleme K8s gizli dizi özelliklerini kullanın. Uygulamanın bağlı Kubernetes Gizli Dizi birimindeki değişiklikleri izlemesi gerekir. CSI Sürücüsü Kubernetes Gizli Dizisini güncelleştirdiğinde, ilgili birim içeriği de otomatik olarak güncelleştirilir.
Uygulama kapsayıcı dosya sisteminden verileri okur: Gizli Dizi Deposu CSI Sürücüsünün döndürme özelliğini kullanın. Uygulamanın CSI sürücüsü tarafından bağlanan birimdeki dosya değişikliğini izlemesi gerekir.
Bir ortam değişkeni için Kubernetes Gizli Dizisini kullanın: Ortam değişkeni olarak en son gizli diziyi almak için podu yeniden başlatın. Eşitlenen Kubernetes Gizli Dizisinde yapılan değişiklikleri izlemek ve podlarda sıralı yükseltmeler gerçekleştirmek için Reloader gibi bir araç kullanın.
Yeni aks kümesinde otomatik döndürmeyi etkinleştirme
komutunu kullanarak yeni bir kümede gizli dizilerin otomatik döndürmesini
az aks create
etkinleştirin ve eklentiyienable-secret-rotation
etkinleştirin.az aks create \ --name myAKSCluster2 \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --enable-secret-rotation \ --generate-ssh-keys
Mevcut AKS kümesinde otomatik döndürmeyi etkinleştirme
komutunu ve parametresini kullanarak
az aks addon update
gizli dizilerin otomatik olarak döndürülebilmesi için mevcut kümeyi güncelleştirinenable-secret-rotation
.az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation
Özel döndürme aralığı belirtme
parametresiyle
rotation-poll-interval
komutunu kullanarakaz aks addon update
özel bir döndürme aralığı belirtin.az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation --rotation-poll-interval 5m
Otomatik döndürmeyi devre dışı bırakma
Otomatik döndürmeyi devre dışı bırakmak için önce eklentiyi devre dışı bırakmanız gerekir. Ardından, parametresi olmadan enable-secret-rotation
eklentiyi yeniden etkinleştirebilirsiniz.
komutunu kullanarak gizli dizi sağlayıcısı eklentisini
az aks addon disable
devre dışı bırakın.az aks addon disable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
komutunu kullanarak parametresi olmadan gizli dizi sağlayıcısı eklentisini
enable-secret-rotation
az aks addon enable
yeniden etkinleştirin.az aks addon enable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
Zaten kullanıyorsanız SecretProviderClass
parametresini belirtmeden enable-secret-rotation
kullanarak az aks addon enable
eklentiyi devre dışı bırakmadan güncelleştirebilirsiniz.
Bağlı içeriği Kubernetes gizli dizisiyle eşitleme
Not
Bu bölümdeki YAML örnekleri eksiktir. Anahtar kasası kimliğinize seçtiğiniz erişim yöntemini desteklemek için bunları değiştirmeniz gerekir. Ayrıntılar için bkz . Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısına erişmek için kimlik sağlama.
Bağlı gizli dizi içeriğinizi yansıtmak için bir Kubernetes gizli dizisi oluşturmak isteyebilirsiniz. Gizli dizileriniz, bunları bağlamak için bir pod başlattıktan sonra eşitlenir. Gizli dizileri kullanan podları sildiğinizde Kubernetes gizli diziniz de silinir.
Aşağıdaki örnek YAML'de gösterildiği gibi Kubernetes gizli dizisinin
secretObjects
istenen durumunu tanımlamak için oluştururkenSecretProviderClass
alanını kullanarak bağlı içeriği Kubernetes gizli dizisiyle eşitleyin.apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: azure-sync spec: provider: azure secretObjects: # [OPTIONAL] SecretObjects defines the desired state of synced Kubernetes secret objects - data: - key: username # data field to populate objectName: foo1 # name of the mounted content to sync; this could be the object name or the object alias secretName: foosecret # name of the Kubernetes secret object type: Opaque # type of Kubernetes secret object (for example, Opaque, kubernetes.io/tls)
Not
alanındaki öğesinin
objectName
secretObjects
bağlı içeriğin dosya adıyla eşleştiğinden emin olun. Bunun yerine kullanırsanızobjectAlias
nesne diğer adıyla eşleşmelidir.
Kubernetes gizli dizilerine başvurmak için bir ortam değişkeni ayarlama
Not
Örnek YAML, env değişkenleri ve volume/volumeMount aracılığıyla gizli diziye erişimi gösterir. Bu, açıklayıcı amaçlar içindir. Tipik bir uygulama bir yöntem veya diğerini kullanır. Bununla birlikte, bir gizli dizinin env değişkenleri aracılığıyla kullanılabilmesi için önce en az bir pod tarafından takılması gerektiğini unutmayın.
Aşağıdaki YAML örneğinde gösterildiği gibi podunuzda bir ortam değişkeni ayarlayarak yeni oluşturduğunuz Kubernetes gizli dizinize başvurun.
kind: Pod apiVersion: v1 metadata: name: busybox-secrets-store-inline spec: containers: - name: busybox image: registry.k8s.io/e2e-test-images/busybox:1.29-1 command: - "/bin/sleep" - "10000" volumeMounts: - name: secrets-store01-inline mountPath: "/mnt/secrets-store" readOnly: true env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: foosecret key: username volumes: - name: secrets-store01-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "azure-sync"
Ölçümlere erişme
Azure Key Vault sağlayıcısı
Ölçümler Prometheus aracılığıyla 8898 numaralı bağlantı noktasından sunulur, ancak bu bağlantı noktası varsayılan olarak pod dışında kullanıma sunulmaz.
kullanarak
kubectl port-forward
localhost üzerinden ölçümlere erişin.kubectl port-forward -n kube-system ds/aks-secrets-store-provider-azure 8898:8898 & curl localhost:8898/metrics
Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısı tarafından sağlanan ölçümler
Metrik Sistem | Açıklama | Etiketler |
---|---|---|
keyvault_request | Anahtar kasasından elde etme işleminin ne kadar sürdüğünün dağılımı. | os_type=<runtime os> , provider=azure , object_name=<keyvault object name> , object_type=<keyvault object type> , , error=<error if failed> |
grpc_request | gRPC isteklerinin ne kadar sürdüğünün dağılımı. | os_type=<runtime os> , provider=azure , grpc_method=<rpc full method> , grpc_code=<grpc status code> , , grpc_message=<grpc status message> |
Gizli Dizi Deposu CSI Sürücüsü
Ölçümler 8095 numaralı bağlantı noktasından sunulur, ancak bu bağlantı noktası varsayılan olarak pod dışında gösterilmez.
kullanarak
kubectl port-forward
localhost üzerinden ölçümlere erişin.kubectl port-forward -n kube-system ds/aks-secrets-store-csi-driver 8095:8095 & curl localhost:8095/metrics
Gizli Dizi Deposu CSI Sürücüsü tarafından sağlanan ölçümler
Metrik Sistem | Açıklama | Etiketler |
---|---|---|
total_node_publish | Başarılı birim bağlama isteklerinin toplam sayısı. | os_type=<runtime os> , provider=<provider name> |
total_node_unpublish | Başarılı birim çıkarma isteklerinin toplam sayısı. | os_type=<runtime os> |
total_node_publish_error | Birim bağlama istekleriyle ilgili toplam hata sayısı. | os_type=<runtime os> , provider=<provider name> , error_type=<error code> |
total_node_unpublish_error | Birim çıkarma istekleriyle ilgili toplam hata sayısı. | os_type=<runtime os> |
total_sync_k8s_secret | Eşitlenen Kubernetes gizli dizilerinin toplam sayısı. | os_type=<runtime os , provider=<provider name> |
sync_k8s_secret_duration_sec | Kubernetes gizli dizisini eşitlemenin ne kadar sürdüğünün dağılımı. | os_type=<runtime os> |
total_rotation_reconcile | Toplam döndürme mutabakat sayısı. | os_type=<runtime os> , rotated=<true or false> |
total_rotation_reconcile_error | Toplam döndürme sayısı hatalarla mutabıktır. | os_type=<runtime os> , rotated=<true or false> , error_type=<error code> |
total_rotation_reconcile_error | Podlar için gizli dizi deposu içeriğini döndürmenin ne kadar sürdüğünün dağılımı. | os_type=<runtime os> |
Açık kaynaktan AKS tarafından yönetilen Gizli Dizi Deposu CSI Sürücüsüne geçiş
Aşağıdaki
helm delete
komutu kullanarak açık kaynak Gizli Dizi Deposu CSI Sürücüsünü kaldırın.helm delete <release name>
Not
Sürücüyü ve sağlayıcıyı dağıtım YAML'lerini kullanarak yüklediyseniz, aşağıdaki
kubectl delete
komutu kullanarak bileşenleri silebilirsiniz.# Delete AKV provider pods from Linux nodes kubectl delete -f https://raw.githubusercontent.com/Azure/secrets-store-csi-driver-provider-azure/master/deployment/provider-azure-installer.yaml # Delete AKV provider pods from Windows nodes kubectl delete -f https://raw.githubusercontent.com/Azure/secrets-store-csi-driver-provider-azure/master/deployment/provider-azure-installer-windows.yaml
komutunu kullanarak mevcut AKS kümenizi özelliğiyle yükseltin
az aks enable-addons
.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Sorun giderme
Sorun giderme adımları için bkz . Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault Sağlayıcısı sorunlarını giderme.
Sonraki adımlar
Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısı hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:
Azure Kubernetes Service