이미지 가져오기를 위해 Azure Vault에 저장된 acr 비밀을 어떻게 사용합니까?

이미지 가져오기를 위해 Azure Vault에 저장된 acr 비밀을 어떻게 사용합니까?

Azure Vault 및 csi 드라이버를 사용하면 비밀을 생성하고 컨테이너의 단일 파일로 액세스할 수 있습니다.

나는 팔로우했다이것기본 비밀을 생성하는 접근 방식입니다.

컨테이너 내부의 비밀 파일로 컨테이너의 비밀에 액세스할 수 있습니다.

하지만 여기서 비밀을 생성하고 imagePull에 동일한 것을 사용하려고 하면 작동하지 않습니다..

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 

위의 acr-test 비밀은 imagePullSecrets에서 앱 배포에 사용하려고 했지만 이미지 가져오기 관련 문제를 표시하는 이벤트에는 적용되지 않았습니다.

접근 방법이 잘못된 경우 안내해 주세요.

또한 이러한 비밀을 기존 configmap의 일부로 사용하는 방법은 무엇입니까?

답변1

나는 이것이 달성 가능하다고 믿지 않습니다. CSI 드라이버는 컨테이너 내부에 비밀 정보를 볼륨으로 탑재하지만, 컨테이너를 생성하고 볼륨을 탑재하기 전에 이미지 가져오기 비밀 정보가 필요하므로 비밀 정보를 사용할 수 없습니다.

이를 표준 정적 Kubernetes 비밀로 설정해야 합니다.

관련 정보