#모든 서버에 작성
sudo vi /etc/hosts
172.16.135.70 master
172.16.135.140 node01
172.16.135.141 node02
172.16.135.142 node03
172.16.135.143 node04
#master
sudo apt -y install docker-registry
sudo vi /etc/docker/registry/config.yml
#auth:
# htpasswd:
# realm: basic-realm
# path: /etc/docker/registry
:wq
sudo systemctl restart docker-registry
#모든 서버에서 실행 추가
sudo vi /etc/docker/daemon.json
"insecure-registries":
[
"docker.internal:5000",
"master:5000"
]
:wq
sudo systemctl restart docker
sudo docker pull master:5000/nginx:my-registry
#인증 사용하기
sudo apt -y install apache2-utils
sudo vi /etc/docker/registry/config.yml #주석 해제 후 변경
auth:
htpasswd:
realm: basic-realm
path: /etc/docker/registry/.htpasswd
sudo systemctl restart docker-registry
#유저 추가
sudo htpasswd -Bc /etc/docker/registry/.htpasswd ubuntu
New password:
Re-type new password:
Adding password for user ubuntu
sudo docker login master:50000
#kubernetes secret 추가
ll ~/.docker/config.json
cat ~/.docker/config.json | base64
ewoJImF1dGhzIjogewoJCSJodHRwczovL2luZGV4LmR....
vi regcred.yml
apiVersion: v1
kind: Secret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJodHRwczovL2luZGV4LmR.....
metadata:
name: regcred
type: kubernetes.io/dockerconfigjson
kubectl create -f regcred.yml
kubectl get secrets
sudo docker tag localhost:5000/nginx:my-registry master:5000/nginx:my-registry
sudo docker push master:5000/nginx:my-registry
sudo sudo docker push master:5000/nginx:my-registry
vi private-nginx.yml
apiVersion: v1
kind: Pod
metadata:
name: private-nginx
spec:
containers:
- name: private-nginx
image: master:5000/nginx:my-registry
imagePullSecrets:
- name: regcred
kubectl apply -f private-nginx.yml
kubectl get pods
kubectl describe pods private-nginx