k8s无脑系列-创建私有仓库(一)
1. 意义
-
与CI/CD联动
-
私有库属于公司/组织最重要的线上财产必须得到保护
2. 需要解决的问题
先提出问题,为什么需要Secret?
密码、令牌不能被随意公布。存到集群里,让需要的Pod或者其它资源(rc,pod等)可以拿到必须的令牌内容等等。甚至MySQL之类的密码都可以存储到Secret中。这里不做更多的讨论。仅限于用在私有仓库中这种情景。
2.1 k8s的Pod使用私有仓库时需要认证过程
比如使用阿里云私有仓库(啰嗦一句,自己搭建的一样,阿里的现成可用),虽然Docker可以通过设置/etc/daemon.json实现Pull的过程,但k8s在不通的Node去创建Pod就不行了。Emm,其实也不是不行,总不能给所有Node同步$HOME/.docker/config.json吧。另外不同的namespace为了安全不能用一个账户来操作私有仓库,所以分namespace的认证过程是必须的。
我们先用阿里云这个现成的私有仓库举例子,来观察整个过程。
使用私有仓库镜像时必须先登录
$docker login --username=xxxx@aliyun.com registry.cn-hangzhou.aliyuncs.com
在$HOME/.docker/config.json可以看到
{
"auths": {
"registry.cn-beijing.aliyuncs.com": {