背景:我们都知道yaml文件中可以定义启动容器时使用的镜像所在地址,这里分为两种情况,即公有镜像和私有仓库镜像。
公有镜像,我们可以直接在yaml文件中配置images参数即可,制作容器时会自动去对应的位置拉取镜像,例如:
containers:
- name: nginx
image: nginx:latest
这里的镜像就是默认的去docker 镜像仓库拉取,具体拉取哪个仓库取决于你的docker 镜像仓库的配置。
自己搭建的私有镜像,或者是github tencenthub 之类的仓库,私有镜像,需要进行认证的,就不能只是配置镜像地址了,还需要结合Secret 来进行搭配使用。
如:镜像仓库地址:abc.lengxiaofeng.cn (自建harbor仓库)
镜像:abc.lengxiaofeng.cn/cyk/nginx:1.9.0
用户名:admin 密码:*********
kubectl -n default create secret docker-registry registry-key \
--docker-server=abc.lengxiaofeng.cn \
--docker-username=admin \
--docker-password=********* \
--docker-email=17600****57@163.
注意:-n 参数不填写,默认也是default 这个命名空间内,docker-registry 参数后面接secret 名字。
完毕可以使用get 命令进行查看。
[root@CentOS ~]# kubectl get secret
NAME TYPE DATA AGE
registry-key kubernetes.io/dockerconfigjson 1 2h
[root@CentOS ~]# echo -n "admin"| base64
YWRtaW4=
[root@CentOS ~]# echo -n "1f2d1e2e67df"| base64
MWYyZDFlMmU2N2Rm
先将个人仓库的用户名和密码转码并保存
现在可以像这样写一个 secret 对象:
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中,可通过命令kubectl api-versions 查看
kind: ReplicationController #指定创建资源的角色/类型
metadata: #资源的元数据/属性
name: nginx-test #资源的名字,在同一个namespace中必须唯一
spec:
replicas: 3 #副本数量3
template: #这里Pod的定义
metadata:
labels: #Pod的label,可以看到这个label与spec.selector相同
app: nginx-test
spec: #specification of the resource content 指定该资源的内容
restartPolicy: Always #表明该容器一直运行,默认k8s策略,在此容器退出后,会立即创建一个相同的容器
containers:
- name: nginx-test #容器的名字
image: abc.lengxiaofeng.cn/cyk/nginx:1.9.0 #容器使用的镜像地址
ports:
- containerPort: 80 #容器开发对外的端口
imagePullSecrets:
- name: registry-key #指定使用的secret
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有