1、概述html
關於kubernetes使用私有docker image registry的一些說明:node
一、對於本身構建的項目鏡像或一些不想暴露到外網的image須要使用自建的私有倉庫,通常有兩種選擇:docker registry v二、harborgit
二、鏡像倉都是作安全認證的,kubernetes在使用的時候也須要把認證加上去,採用建立secret的方式使用github
三、關於鏡像倉的選擇:docker registry v2是官方的,部署簡單,不提供原生刪除image的功能;harbor功能比較全面,而且自帶ui方便使用管理。單純從使用來看通常docker registry v2徹底知足需求,關於鏡像的清理參考:docker
https://gist.github.com/cuishuaigit/34439b8946821c7898d1faefbf5bdbb1json
http://www.javashuo.com/article/p-ydfkysxb-cn.htmlapi
2、使用安全
在k8s集羣的任意一個node節點上登錄registry,例如registry的地址是https://my-registry.image.com,user=registry,password=admin123ui
一、登錄spa
docker login https://my-registry.image.com -u registry -p
而後輸入密碼(爲了安全不要在後面直接寫密碼,選擇交互式輸入),此時會在當前登錄的用戶目錄下面有個.docker/config.json文件,這裏面記錄了認證信息。
二、建立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