博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes里的secret最基本的用法
阅读量:6693 次
发布时间:2019-06-25

本文共 1190 字,大约阅读时间需要 3 分钟。

hot3.png

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。

Secret可以以Volume或者环境变量的方式使用。

使用如下命令行创建一个secret:

kubectl create secret generic admin-access --from-file=./username.txt --from-file=./password.txt

输入文件username.txt和password.txt需要手动创建,里面分别维护用于测试的用户名和密码。

创建成功后,发现secret的类型为Opaque:

实际上,Kubernetes的secret有三种类型:

1. Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount 目录中;

2. Opaque:base64编码格式的Secret,用来存储密码、密钥等;

3. kubernetes.io/dockerconfigjson :用来存储私有docker registry的认证信息。

而我们刚刚创建的secret的类型为Opaque,因此在kubectl get secrets的返回结果里,能看到password和username的值均为base64编码:

要在pod里消费这个secret也很容易,看一个例子:

apiVersion: v1kind: Podmetadata:name: secret-podspec:restartPolicy: Nevervolumes:- name: credentialssecret:secretName: admin-accessdefaultMode: 0440containers:- name: secret-containerimage: alpine:3.8command: [ "/bin/sh", "-c", "cat /etc/foo/username.txt /etc/foo/password.txt" ]volumeMounts:- name: credentialsmountPath: "/etc/foo"readOnly: true

创建pod,自动执行,通过log命令查看pod的日志:

发现/bin/sh命令被执行了,pod mount的目录/etc/foo下的username.txt和password.txt通过cat命令显示了输出:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

转载于:https://my.oschina.net/u/3771578/blog/2880586

你可能感兴趣的文章
【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件
查看>>
java8学习:Optional的简单使用
查看>>
Docker实战(三)之访问Docker仓库
查看>>
Spring Boot中使用Swagger2
查看>>
每天五分钟linux(11)-nl
查看>>
2018 Python 开发者调查报告发布,数据出乎你意料吗?
查看>>
JVM的内存分配和回收策略
查看>>
strncat
查看>>
Prometheus 监控整合 Nginx Metrics
查看>>
Android内存优化7 内存检测工具1 Memory Monitor检测内存泄露
查看>>
poj 2492A Bug's Life(并查集)
查看>>
nginx配置反向代理或跳转出现400问题处理记录
查看>>
Linux 之 hugepage 大页内存理论
查看>>
第e物流董事总裁蔡远游:大数据应用、风控与行业信用建设
查看>>
Cisco交换机基础命令 + Win Server08 R2 多网卡配置链路聚合
查看>>
C#.net技术内幕03---字符串
查看>>
我的第一个python web开发框架(10)——工具函数包说明(一)
查看>>
出版行业可以利用AR增强现实技术大作文章
查看>>
学习笔记 254: 预备知识总结
查看>>
javascript之事件监听
查看>>