設置登錄鑒權操作搭建參考:
https://blog.csdn.net/shida_csdn/article/details/78435971
參考指南:https://blog.51cto.com/ganbing/2080140
服務端機器 (主機名為registry):docker私有倉庫服務器,運行registry容器;
節點機器 (主機名為node):普通的docker服務器,在這台服務器上可以上傳和下載鏡像;
1. 服務端下載鏡像registry
docker pull registry
2. 生成登錄的用戶名和密碼
docker run --entrypoint htpasswd docker.io/registry:latest -Bbn hy 000000 >> /data/docker-registry/auth/htpasswd
3. 節設置配置文件,啟用刪除鏡像功能(也可以不啟用,看業務需要,修改 storage - delete - enable 為 false 即可)
# mkdir -p /opt/registry-var/config
# vim /opt/registry-var/config/config.yml
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
4. 啟動registry鏡像服務
docker run -d -p 5000:5000 --restart=always --name=registry\
-v /data/docker-registry/config/:/etc/docker/registry/ \
-v /data/docker-registry/auth/:/auth/ \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /data/docker-registry/:/var/lib/registry/ \
docker.io/registry:latest
5. 開啟節點的http形式訪問私有倉庫
vim /etc/docker/daemon.json
{
"log-driver": "json-file",
"registry-mirrors":["55.18.67.171:5000"],
"insecure-registries":["55.18.67.171:5000"]
}
# systemctl daemon-reload
# systemctl restart docker
6. 上傳和下載鏡像到私有倉庫
docker pull docker.io/hello-world
docker tag docker.io/hello-world:latest 55.18.67.171:5000/hello-word:latest
docker login 55.18.67.171:5000 -u hy -p 000000
docker push 55.18.67.171:5000/hello-word:latest
curl -u hy:000000 http://55.18.67.171:5000/v2/_catalog
7. 創建secret讓pod訪問不需要鑒權登錄
默認default命名空間使用的secret
kubectl create secret docker-registry 10.10.10.149 --docker-server=55.18.67.171:5000 --docker-username=hy --docker-password=000000 --docker-email=niewx@ruyi.ai
hy-uat命名空間使用的secret
kubectl create secret docker-registry 10.10.10.149 --docker-server=55.18.67.171:5000 –namespace=hy-uat --docker-username=hy --docker-password=000000 --docker-email=niewx@ruyi.ai
8. 列出所有鏡像
curl -u hy:000000 http://55.18.67.171:5000/v2/_catalog
9. 列出busybox鏡像有哪些tag
curl -u hy:000000 http://55.18.67.171:5000/v2/company-ner/tags/list
