k8s往secret里导入证书_k8s获取私有仓库之secret从原理到实践

本文介绍了如何在Kubernetes(k8s)中创建Secret来安全存储私有仓库的认证信息,以便在节点上拉取私有Docker镜像。详细步骤包括指定namespace创建Secret,展示Secret内容以及在Deployment中使用Secret作为imagePullSecrets。
摘要由CSDN通过智能技术生成

前面的话

在master上面创建一个secret,写在deploy的yaml里面,部署的时候,先由master权衡在哪个节点去部署,哪个节点就回去pull那个image(假如不存在这个镜像的话),所以每个节点要先去login我们的私库,这个操作可以由ansible去完成。

secret存储的是一些加密过的账号密码,不在yaml里面泄漏代码

在master上创建一个secret

创建一个secret

这里要注意namespace的指定

# kubectl create secret -n namespace docker-registry --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

[root@k8s-master yml]# kubectl create secret docker-registry myregistrykey --docker-server=https://hub.我的仓库地址.cn --docker-username=用户 --docker-password=密码 --docker-email=我的邮箱

secret/myregistrykey created

myregistrykey 是自定义的仓库secret名字,应该取一个有意义的名字,可以按照项目的名字来命名

查看当前有哪些secret

[root@k8s-master yml]# kubectl get secrets

NAME TYPE DATA AGE

default-token-svpvx kubernetes.io/service-account-token 3 23d

myregistrykey kubernetes.io/dockerconfigjson 1 13s

serect存储的是什么?

一步一步来看

[root@k8s-master yml]# kubectl get secret myregistrykey -o yaml

apiVersion: v1

data:

.dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2h1Yi53ZW55aW5odWxpYW4uY24iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiTWVtZWN0ODg4QDEyMyIsImVtYWlsIjoibGlqaW5naHVhQG1lbWVjdC5jbyIsImF1dGgiOiJZV1J0YVc0NlRXVnRaV04wT0RnNFFERXlNdz09In19fQ==

kind: Secret

metadata:

creationTimestamp: "2019-06-06T05:30:01Z"

name: myregistrykey

namespace: default

resourceVersion: "2789857"

selfLink: /api/v1/namespaces/default/secrets/myregistrykey

uid: 2178095c-881c-11e9-8457-000c29dba709

type: kubernetes.io/dockerconfigjson

[root@k8s-master yml]# echo eyJhdXRocyI6eyJodHRwczovL2h1Yi53ZW55aW5odWxpYW4uY24iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiTWVtZWN0ODg4QDEyMyIsImVtYWlsIjoibGlqaW5naHVhQG1lbWVjdC5jbyIsImF1dGgiOiJZV1J0YVc0NlRXVnRaV04wT0RnNFFERXlNdz09In19fQ== |base64 -d ; echo

{"auths":{"https://hub.我的仓库地址.cn":{"username":"admin","password":"我的密码","email":"你的邮箱","auth":"YWRtaW46TWVtZWN0ODg4QDEyMw=="}}}

在dashbord的展示

deploy.yaml

省略部分内容

apiVersion: apps/v1

# 当前配置格式的版本

kind: Deployment

··· 省略 ·····

ports:

- containerPort: 8080

imagePullSecrets:

- name: myregistrykey

本文由 李阿斗创作 旅途愉快~ 我的主页 ( ̄▽ ̄)

最后编辑时间为:

2019/08/02 17:27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值