OverView
본문에서는 containerd 가 Registry (컨테이너 이미지 저장소) 로부터 image 를 다운 (pull) 받을 때 pod imageSecret 설정 없이 가능하도록 설정하는 방법을 설명합니다.
CRI 로 containerd, cri-o, docker 등 다양하지만 저는 containerd 를 사용하고 있습니다.
containerd 의 설정 파일은 /etc/ containerd/config.toml 경로에 있습니다. 해당 파일이 없을 경우 아래 커맨드로 기본 설정 파일 생성이 가능합니다.
containerd config default > /etc/containerd/config.toml
Configure Registry Credentials
$ sudo ctr --version
Client:
Version: 1.5.8
Revision: d1159a1076a57c8f216db0b2f4b8e942b6c13fc1
Server:
Version: 1.5.8
Revision: d1159a1076a57c8f216db0b2f4b8e942b6c13fc1
RPC Version: 1.0
containerd 버전에 따라 config 형식이 다르므로 먼저 containerd 의 버전을 확인합니다.
# vi /etc/containerd/config.toml
version = 2
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
# 생략
[plugins."io.containerd.grpc.v1.cri".registry] 하위에 config_path = "/etc/containerd/certs.d" 추가해줍니다.
# /etc/containerd directory 하위에 certs.d/"<registry domain>" directory 생성
mkdir -p /etc/containerd/certs.d/"<registry domain>"
vi /etc/containerd/certs.d/"<registry domain>"/hosts.toml
# vi /etc/containerd/certs.d/<registry-domain>/hosts.toml
server = "https://<registry-domain>"
[host."https://<registry-domain>"]
[host."https://<registry-domain>".header]
authorization = "Basic <base64-encoded-credentials>"
base64-encoded-credentials >> echo -n "admin:password" | base64
- 설정을 변경한 후 containerd를 재시작하여 변경 사항을 적용
- Note: Updates under this directory do not require restarting the containerd daemon.
sudo systemctl restart containerd
설정 적용 확인
ctr images pull --hosts-dir "/etc/containerd/certs.d" harbor.seulseul.com/project/nginx:latest
적용되었는지 확인하기 위해 containerd가 Harbor 레지스트리에서 이미지를 가져올 수 있는지 테스트합니다.
해당 작업은 k8s Node VM 전부 적용해야합니다.
registry host 별로 설정파일을 관리할 수 있으며, 해당 설정파일에서 insecure , mirror registry 설정도 가능합니다.
'Kubernetes' 카테고리의 다른 글
Nginx Ingress Rewirte & AWS Load Balancer Controller (0) | 2023.09.12 |
---|---|
[kubectl] krew - Kubernetes Plugin Manager (0) | 2023.07.10 |
vCluster (Multi-Tenancy in Kubernetes) (0) | 2023.07.10 |
[kubectl] kubectx + kubens 설정 및 자동 완성 (0) | 2023.07.09 |
nginx ingress controller tcp 설정 (0) | 2022.12.26 |