在K8s中有Secret和configMap这两种资源对象,这也是实现数据持久化的一种方式,与之前写过的PV或挂载目录等这些数据持久化的方式有些许不一样。Secret资源对象:可以保存轻量的敏感信息,比如数据库的用户名和密码或者认证秘钥等。它保存的数据是以秘文的方式存放的configMap资源对象:和Secret一样,拥有大多数共同的特性,但是区别是,configMap保存的是一些不太重要的信息,它保存的数据是以明文的方式存放的。当我们创建上述两种资源对象时,其实就是将这两种资源对象存储的信息写入了k8s群集中的etcd数据中心。都是用来保存轻量级信息的,可以供其他资源对象(Deployment、RC、RS和POd)进行挂载使用。这两种资源对象的创建方法(4种)及引用方法(2种)都是一样的,都是以键值对的方式进行存储的。Secret是用来保存敏感信息的,而configMap是用来保存一些不太重要的数据的,具体表现在当我们执行“kubectl describe ….”命令时,Secret这种类型的资源对象时查看不到其具体的信息的,而configMap是可以查看到其保存的具体内容的。假设要存储的数据是:
name:开发云主机域名zhangsan
tel:15888888888这种方式比方法1还要麻烦一些,不建议使用。这种方式可以在同一个文件中写入多个键值对,推荐使用。既然secret的这种存储方式是无法通过命令行查看的,再一个就是,这种存储方式的意义是什么?通过下面的使用方式,应该就可以明白其使用场景了。现在,我们可以验证一下,如果此时更改secret4的内容,那么容器内对应的挂载目录下的内容是否更改?至此,以变量的形式引用secert存储的键值对就调用完成了,同样也可以去测试修改secert存储的值,看看pod容器中的变量是否会随之改变,答案是否定的,如果采用变量的方式调用secert存储的值,容器内的变量值并不会随着secert存储的值发生改变,除非重新生成pod。其实configMap和secert资源对象的创建方式完全一样,这里就写下“–from-literal”、“–from-env-file”和“yaml文件”这三种创建方式,至于“–from-file”的创建方式,参考secert的创建方式即可。应用方式和secert资源对象的方式类似,都是volume挂载或者以变量的方式引用,只是一些yaml文件中的一些关键字不一样。同样,这种volume挂载的方式,pod容器内的数据会随着configmap3的数据改变而改变,它们共享的是同一个文件。这里测试一下,如果修改configmap2的键值对,容器内的环境变量是否会发生改变?那么,现在重新生成下pod,查看其环境变量是否会改变(肯定会改变的)?至此,验证完成。———————— 本文至此结束,感谢阅读 ————————
如果希望将 Service 暴露在一个外部IP地址上。 Kubernetes 支持4种实现方式,详细如下:Clusterip是集群内部的私有ip,在集群内部访问服务非常方便,也是kuberentes集群默认的方式,直接通过service的Clusterip访问…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。