ACR 접속 secret 생성
2024. 3. 5. 21:40ㆍk8s
Secret 없이 Token이 셋팅된 ACR에 접속
Failed to pull image "{ACR 이름}.io/{image 이름}:{image 태그}": Error response from daemon: Head "https://{ACR 이름}.io/v2/{image 이름}/manifests/{image 태그}": unauthorized: authentication required
Secret 생성
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
secret은 사용하려는 resource와 namespace가 일치해야 사용 가능
# secret 생성
kubectl create secret docker-registry {secret 이름} \
--namespace {namespace} \
--docker-server={ACR 이름}.azurecr.io \
--docker-username={Token 이름} \
--docker-password={Token 비밀번호}
# secret 확인
kubectl get secret {secret 이름} -o yaml -n {namespace}
----------------------------
apiVersion: v1
data:
.dockerconfigjson: {data 값}
kind: Secret
metadata:
creationTimestamp: "2024-03-05T11:36:38Z"
name: {secret 이름}
namespace: {namespace}
resourceVersion: "3053659"
uid: {uid 값}
type: kubernetes.io/dockerconfigjson
----------------------------
# data 확인
# ~/.docker/config.json 값과 동일함
echo {data 값} | base64 -d
vi ~/.docker/config.json
-----------------------------
{
"auths": {
"{ACR 이름}.azurecr.io": {
"auth": "{auth 값}"
}
}
}
-----------------------------
# auth 확인
echo {auth 값} | base64 -d
-------------------------------
{token 이름}:{token 비밀번호}
-------------------------------
Deployment에 적용
imagePullSecrets를 통해서 인증
spec:
containers:
- name: {container 이름}
image: {ACR 이름}.azurecr.io/{image 이름}:{image 태그}
ports:
- containerPort: {container port}
imagePullSecrets:
- name: {secret 이름}
'k8s' 카테고리의 다른 글
Minikube docker registry 설치 (0) | 2024.04.16 |
---|---|
Minikube addon registry 설정 (0) | 2024.04.10 |
Dockerizing (0) | 2024.03.02 |
kubectl apply -f yaml 파일 사용법 (0) | 2024.03.02 |
minikube ServiceAccount 생성 (0) | 2024.02.21 |