标签:实现 不能 stat mes 阿里云 gtd yaml nta 账户
与CI/CD联动
私有库属于公司/组织最重要的线上财产必须得到保护
先提出问题,为什么需要Secret?
密码、令牌不能被随意公布。存到集群里,让需要的Pod或者其它资源(rc,pod等)可以拿到必须的令牌内容等等。甚至MySQL之类的密码都可以存储到Secret中。这里不做更多的讨论。仅限于用在私有仓库中这种情景。
比如使用阿里云私有仓库(啰嗦一句,自己搭建的一样,阿里的现成可用),虽然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": {
"auth": "NzU0NDg5NTUxQHFxLmNvbTptb3dwaWgtd2lwbnlqLWt1bWtVNg=="
}
}
}
$docker pull registry.cn-beijing.aliyuncs.com/smokelee/redis # 私有库
假设现在已经有“私有仓库”比如:阿里云
命令行创建
$kubectl create secret docker-registry registry-secret-aliyun --docker-server=registry.cn-beijing.aliyuncs.com --docker-username=xxxxxxx@qq.com --docker-password=xxxxxxx
参数说明:以下参数都可以通过执行下述命令得到说明
$kubectl create secret docker-registry
验证
$kubectl describe secret registry-secret-aliyun
Name: registry-secret-aliyun
Namespace: default
Labels: <none>
Annotations: <none>
Type: kubernetes.io/dockerconfigjson
Data
====
.dockerconfigjson: 113 bytes
yaml文件创建
事实上,docker-registry类型的不能通过这种方式创建,这个yaml是用命令反向推出来的。就是演示。
$kubectl get secret registry-secret-aliyun -o yaml
apiVersion: v1
type: kubernetes.io/dockerconfigjson
kind: Secret
metadata:
name: registry-secret-aliyun
namespace: default
data:
.dockerconfigjson: eyJhxxxxxx.......x19
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-ali
spec:
replicas: 1
selector:
app: redis-pod-ali
template:
metadata:
labels:
app: redis-pod-ali
spec:
containers:
- name: redis-ali
image: registry.cn-beijing.aliyuncs.com/smokelee/redis # 私有镜像
ports:
- containerPort: 6379
imagePullSecrets:
- name: registry-secret-aliyun # 名字要与创建命令参数保持一致
查看是否已经被其它节点部署,注意node2是节点,此前并未下载过"registry.cn-beijing.aliyuncs.com/smokelee/redis" 这个私有镜像
$kubecel get pod redis-ali -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-rc-q5pps 1/1 Running 2 2d 10.244.1.7 node1.smokelee.com <none> <none>
redis-ali-6s52k 1/1 Running 0 3s 10.244.2.11 node2.smokelee.com <none> <none>
标签:实现 不能 stat mes 阿里云 gtd yaml nta 账户
原文地址:https://www.cnblogs.com/smokelee/p/12445045.html