之前我们学习了ConfigMap的时候,我们说ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,但是如果要是密码之类的文件存放到这里就不合适了,k8s已经为我们准备了另外的一种方式专门保存密码的文件,就是我们今天要介绍的secret。


Secret用来保存敏感信息,例如密码、OAuth 令牌和 ssh key等等,将这些信息放在Secret中比放在Pod的定义中或者docker镜像中来说更加安全和灵活。

接下来我们验证一下,就拿k8s结合harbor仓库进行演示,在演示的时候我们需要先创建一个仓库,就是harbor仓库,可以参考我之前的文档
https://blog.51cto.com/xiaorenwutest/2161180

这里先看一下效果

K8S集群中部署Secret保存密钥(14)_第1张图片

在创建完成harbor之后我们首先需要node节点和harbor进行认证一下

修改两处

K8S集群中部署Secret保存密钥(14)_第2张图片
这里修改docker配置文件,要指定harbor的配置文件

然后重启一下docker服务

K8S集群中部署Secret保存密钥(14)_第3张图片
我这里是应为已经登陆过了,所以就不用登录直接就上来了

K8S集群中部署Secret保存密钥(14)_第4张图片
可以得到,有了上面的就可以了

接下来我们测试一下是否可以

往下拉个镜像

K8S集群中部署Secret保存密钥(14)_第5张图片
成功了

好了接下来我们配置一下k8s当中的secret
创建一个yaml


kubectl create secret docker-registry harborsecret --docker-server=10.20.2.116 --docker-username=tty --docker-password=123.asdPP [email protected] --namespace=default --dry-run -o yaml

K8S集群中部署Secret保存密钥(14)_第6张图片

K8S集群中部署Secret保存密钥(14)_第7张图片

接下来配置pod的yaml

K8S集群中部署Secret保存密钥(14)_第8张图片
我们启动一下
K8S集群中部署Secret保存密钥(14)_第9张图片
K8S集群中部署Secret保存密钥(14)_第10张图片
说明没有登陆

接下来启动一下secret
K8S集群中部署Secret保存密钥(14)_第11张图片
这次是不是就启动了呢

【注意】:私有的项目需要配置这个,如果是公开的有上面的两个就可以了,当然也可以都配置上,
K8S集群中部署Secret保存密钥(14)_第12张图片

另外还有一种方法创建secret

K8S集群中部署Secret保存密钥(14)_第13张图片
K8S集群中部署Secret保存密钥(14)_第14张图片
是不是和上面的一样,然后启动也是可以的,我们测试一下

K8S集群中部署Secret保存密钥(14)_第15张图片
K8S集群中部署Secret保存密钥(14)_第16张图片
K8S集群中部署Secret保存密钥(14)_第17张图片
启动了把,两种方法创建都可以,但是我比较喜欢第一种,可以自己定义yaml文件比较方便

好了今天的演示到这里,欢迎大家私信留言