一、概述
關於kubernetes使用私有docker image registry的一些說明:
1、對於自己構建的項目鏡像或一些不想暴露到外網的image需要使用自建的私有倉庫,一般有兩種選擇:docker registry v2、harbor
2、鏡像倉都是做安全認證的,kubernetes在使用的時候也需要把認證加上去,采用創建secret的方式使用
3、關於鏡像倉的選擇:docker registry v2是官方的,部署簡單,不提供原生刪除image的功能;harbor功能比較全面,並且自帶ui方便使用管理。單純從使用來看一般docker registry v2完全滿足需求,關於鏡像的清理參考:
https://gist.github.com/cuishuaigit/34439b8946821c7898d1faefbf5bdbb1
https://www.cnblogs.com/cuishuai/p/9107069.html
二、使用
在k8s集群的任意一個node節點上登陸registry,例如registry的地址是https://my-registry.image.com,user=registry,password=admin123
1、登陸
docker login https://my-registry.image.com -u registry -p
然后輸入密碼(為了安全不要在后面直接寫密碼,選擇交互式輸入),此時會在當前登陸的用戶目錄下面有個.docker/config.json文件,這里面記錄了認證信息。
2、創建secrete
根據上面生成的config.json創建secrete:
cat config.json |base64 -w 0
然后將生成的字串復制到secrete的創建yaml文件里面(確保沒有多余的東西被復制):
cat image-secrete.yaml
apiVersion: v1 kind: Secret metadata: name: registry-secrete namespace: default data: .dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg== type: kubernetes.io/dockerconfigjson
.dockerconfigjson后面的內容就是上面生成的字串
創建secrete
kubectl create -f image-secrete.yaml