Wie verwende ich zum Abrufen von Images ein im Azure-Tresor gespeichertes ACR-Geheimnis?

Wie verwende ich zum Abrufen von Images ein im Azure-Tresor gespeichertes ACR-Geheimnis?

Mit Azure Vault und CSI-Treiber können Sie Geheimnisse erstellen und als einzelne Dateien im Container darauf zugreifen.

ich folgteDasAnsatz zum Erstellen grundlegender Geheimnisse.

Die Geheimnisse aus dem Container sind als darin enthaltene geheime Dateien zugänglich.

Aber als ich versuchte, daraus ein Geheimnis zu erstellen und dasselbe für imagePull zu verwenden, funktionierte es nicht.

apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
  name: azure-kvname
  namespace: default
spec:
  provider: azure
  secretObjects:
  - secretName: acr-test
    type: kubernetes.io/dockerconfigjson
    data:
     - objectName: martrepo
       key: .dockerconfigjson
  parameters:
    usePodIdentity: "false"
    useVMManagedIdentity: "false"
    userAssignedIdentityID: ""
    keyvaultName: "secret-store-dummy"
    objects: |
      array:
        - |
          objectName: secret1              
          objectType: secret
          objectVersion: ""
        - |
          objectName: martrepo              
          objectType: secret
          objectVersion: ""    
    tenantId: "f33abe27-86cd-46d6-ae2b-b918362ab160"

---
kind: Pod
apiVersion: v1
metadata:
  name: busybox-secrets-store-inline
spec:
  containers:
  - name: busybox
    image: k8s.gcr.io/e2e-test-images/busybox:1.29
    command:
      - "/bin/sleep"
      - "10000"
    volumeMounts:
    - name: secrets-store-inline
      mountPath: "/mnt/secrets-store"
      readOnly: true
  volumes:
    - name: secrets-store-inline
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: "azure-kvname"
        nodePublishSecretRef:                       # Only required when using service principal mode
          name: secrets-store-creds 

Ich habe versucht, das obige ACR-Testgeheimnis bei der Bereitstellung einer App bei imagePullSecrets zu verwenden, aber es hat nicht funktioniert, da die Ereignisse Probleme beim Abrufen des Images anzeigten.

Bitte helfen Sie mir, wenn der Ansatz falsch ist.

Und wie verwende ich diese Geheimnisse als Teil einer vorhandenen Konfigurationszuordnung?

Antwort1

Ich glaube nicht, dass das machbar ist. Der CSI-Treiber mountet das Geheimnis im Container als Volume, aber das Image-Pull-Geheimnis wird benötigt, bevor der Container erstellt und das Volume gemountet wird, also ist das Geheimnis nicht verfügbar.

Sie müssen dies als standardmäßiges statisches Kubernetes-Geheimnis einrichten.

verwandte Informationen