Aracılığıyla paylaş


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 SecretProviderClassgü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 eklentiyi enable-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ştirin enable-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 kullanarak az 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.

  1. 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
    
  2. 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 SecretProviderClassparametresini 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ştururken SecretProviderClass 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ız objectAlias 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-forwardlocalhost ü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-forwardlocalhost ü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ş

  1. 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
    
  2. 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: