00:00
好,那最后呢,我们再来说K8S里边的另外一种资源secret secret呢是K8S里边用来专门保存敏感信息,比如我们一些密码啦,令牌啦,密钥啦啊,各种不方便铭文存储的,那就使用secret,其实呢,它是区别于con mapmp,它呢基本上跟con map的工作原理是一样的,只不过呢,Con mapmp它呢是用来保存我们配置文件等等这些明文信息。而secret里边呢,我们就来说一个典型的场景,比如我们现在呢有要启动一个pod,这个pod要启动期间是不是肯定要下载一个镜像,但这个镜像我们以前下载都是从doer拉的公有镜像,比如red拉MYS,这些都是人家公有访问的镜像,但是有的时候啊,我们公司会专门创建一个自己的私有的镜像仓库,比如把我们写好的业务的微服务的镜像全部放到。
01:00
这个镜像仓库,所以当你想要部署的时候,你从这个镜像仓库,你要拉取镜像,你是不是需要登录呀,所以呢,你把这个登录账号密码,如果你写在每一个pod的这个配置里边,这有点不安全,也容易泄露,所以呢,我现在可以让K8S直接呢使用secret的方式,先把我docker登录的这些信息保存起来,以后我在下载镜像的时候呢,直接一用,我呢就不用输我们docker仓库的这些账号密码了,那为了这个方便起见,比如我就以我的docker汉堡为例,我现在登录进来了,我就把某一个仓库做成私有的,也就说只有我登录提供账号密码以后才能下载镜像,你确定一下啊,现在呢这个仓库,这个仓库呢,就叫硅谷的NX啊,我就把这个点过来,这个仓库呢,它是默认是一个public的,我在setting里边,我给它变成私有的,好这样一变成私有。
02:00
啊,以后呢,我点一个麦克私有,好麦克完私有以后呢,我来确定一下啊,来到我们的这个仓库里边,我们现在的这个硅硅谷的NS,这个就是私有的,但是如果我现在想要下载这个镜像呢,我们这个镜像有一个V1.0版,所以大家看如果是私有的情况下,我呢现在应该啥都没登录,我保险期间我调一个doer lockout,咱们以前退出登录的信息,我全退出一下,然后呢,我现在如果我想要下载一个我的私用镜像,冒号为1.0回车,然后大家就会发现他说我们要下载的这个东西,他说呢,我们本地啊,没有这个,没有这个,对我们doer push不是push啊,写错命令了,我们应该是doer,好,我们来下载吧,来稍等,那下载我的这个私有镜像呢,我们看一下它会打印一个什么样的问题。
03:00
好,我们看到它给这呢打印的是error response,就说呢put就是呢访问拒绝,也就说如果我以后呢,要用它启动一个镜像,那就完蛋了,比如我举一个例子,我们呢,现在这儿有一个pod,这个pod呢,我就用,我就用我的这个镜像,我把这个pod呢,简单我就把这复制一下,我们先来看默认情况,这个pod会出现啥现象,比如VI my pod吧,点一个压慢,那现在呢又要启动一个pod,这个pod的核心配置呢,我们就留在这,我们去准备一个pod或名字叫私有的NG4,然后呢,我们的镜像用的是它的V1.0,对吧,为什么叫V1.0,因为我的这个仓库这有一个标签叫V1.0,所以呢我加上V1.0,如果我现在要起一个po的,我是这么来起的话,那就完蛋了。比如。
04:00
Controller play-F大家确认一下走他呢说这个创建,那我们就来看一下get a po,然后呢,他开始创建对吧?创建呢,那我们就来监控一下它状态吧,来这个控制台,但这个控制台呢,来复制粘进去。好,这个控制台呢,我们点过来看它的整个状态事件,事件呢,它开始success,相当于呢,把这个东西呢,分配给零二节点,让他下载去了,然后呢,他说下载这个镜像啊,这个零二节点呢,想要下载这个镜像,那么来等一阵看它的效果好,那么现在呢,等了一阵以后,我们看到它的这个效果叫fair to pull image,就是呢,下载我们这个镜像失败,失败的原因说我们不存在可能需要docker login,因为我们这个资源呢是拒绝的,对吧,所以呢,这个镜像一下载失败啊,我们就会看到我们这个po的状态叫image pull bankoff,我们这个镜像下载完蛋,所以我们会看到这个镜像下载完蛋了,所以呢,我就可以把这个我来删除,Delete-f my pod,我把这个删除了以后呢,那我现在还想要把它下载来怎么办?如果我每次下载都要自己手动登录,或者呢,我来提供账号密码,这有点不安全,所以我在整个K8S。
05:19
群里边我可以告诉QYS去我的这个哪个docker仓库下载的时候用什么账号密码,我呢只需要创建上一次,那这个呢,可能是管理员创建的,所以我就把这一块controlr c我复制过来,那这个命令呢,完整叫这样叫cooper controller create secret,我准备呢创建一个相当于密钥信息,专门是为docker仓库创的,所以呢,前面这是固定写法,后边呢你随便写一个叫雷锋阳docker,然后呢指定上几个关键内容,比如docker登录docker的用户名,然后呢,以及登录docker的密码,以及你的这个邮箱,但这个密码呢,老师试验以后就会改掉,所以大家也不要用我的镜像实验,随便呢自己做一个,好,我现在呢先来把这个东西我让它创建一下,这个创建完以后呢,它说secret,我们的这种叫雷锋阳docker的这个密钥已经创建了,所以我们也可以看,比如get secret来看。
06:19
系统里边呢,除了有之前默认的这是些什么玩意儿外,这还有一个叫雷锋阳docker的这个secret,这secret的内容是什么呢?我们也可以看一下get secret,它内容呢就长这样,我们会看到这个内容里边别的不看Meta data这一些原数据信息我们都不看,API version也不用看,主要看data的部分,在以前如果是con菲map data的部分呢,是key冒号VV呢是铭文的,当然我们现在看到这个com map呢,这块V明显是被处理过的,所以呢就比较安全,只有K8S呢,知道我们接下来该怎么用它,那其实这个处理啊,它只是一个BASE64,你想要解码也能解,但是我们这都是后来我们说的事情,一旦有了这个事儿呢,以后我以后再想要下载个镜像就可以这么来做,比如我还是启动这个port,但是呢,我们这个东西是不是一个私有镜像,我呢在下面就说好,Image pro secret就是你下载。
07:19
镜像用的密钥,这个密钥呢,我在前边已经创建好了,是不是已经创建好了,如果这个命令不是你运行的,你说你就以K8S系统,你就算进到K8S系统里边,你拿到这个东西,你能通过这个东西你分析出我的账号密码是多少吗?是不是不容易分析出来,所以呢,我们现在啊就比较安全,然后我只需要呢,在这告诉他下载镜像呢,用我的这个密码,因为这个这个密密钥信息我们是在之前创建好的,所以呢,我把这个重新运行一遍,那就没问题了,比如把这个之前的东西呢,我删掉,然后加一个核心配置叫image secrets,我下载镜像呢,用我自己刚才创好的这个密钥信息,好了,把这个准备好以后呢,再来apply杠,My po,然后我们来观察一下它的整个现象,在pod里边,现在呢,这又准备下载私有NS镜像了,来看它的整个事件啊。
08:19
以前呢是完蛋的,然后呢,现在这是以前完蛋的啊呃,然后呢,现在叫铺image,好,现在下载镜像还是雷锋阳的这个镜像,来等一阵,看他接下来的整个下载会是什么样的效果好了,由于我呢,我们这个下载的比较慢,要去doer have,所以呢我们大概等了五分钟,我们看到successfully put,就是我们这个镜像呢,已经成功下载了,以前还是accessline,对吧,访问拒绝,现在呢就已经成功下载了,所以这是我们secret的一个常见使用场景。
我来说两句