K8S——存储-Secret
Secret 存在意义
Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec
中。Secret 可以以 Volume 或者环境变量的方式使用
Secret 有三种类型:
- Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的
/run/secrets/kubernetes.io/serviceaccount
目录中 - Opaque :base64编码格式的Secret,用来存储密码、密钥等
- kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证信息
Service Account
Service Account 用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod的
/run/secrets/kubernetes.io/serviceaccount
目录中
$ kubectl run nginx --image nginx
deployment "nginx" created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-3137573019-md1u2 1/1 Running 0 13s
$ kubectl exec nginx-3137573019-md1u2 ls /run/secrets/kubernetes.io/serviceaccount
ca.crt
namespace
token
Opaque Secret(最常用)
创建说明
Opaque 类型的数据是一个 map 类型,要求 value 是 base64 编码格式:
$ echo -n "admin" | base64
YWRtaW4=
$ echo -n "1f2d1e2e67df" | base64
MWYyZDFlMmU2N2Rm
vim secrets.yamlapiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:password: MWYyZDFlMmU2N2Rmusername: YWRtaW4=
使用方式
① 将secret挂载到Volume中
apiVersion: v1
kind: Pod
metadata:name: secret-testlabels:name: secret-test
spec:containers:- name: secretsdbimage: nginxvolumeMounts:- name: secret-volumesmountPath: /etc/secretsreadOnly: truevolumes:- name: secret-volumessecret:secretName: mysecret
#查看
[root@master ~]# ^C
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
secret-test 1/1 Running 1 13h[root@master ~]# kubectl exec secret-test -it bash
root@secret-test:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint.d etc lib media opt root sbin sys usr
root@secret-test:/# cd /run/secrets/kubernetes.io/serviceaccount
root@secret-test:/run/secrets/kubernetes.io/serviceaccount# ls
ca.crt namespace token[root@apiserver secret]# kubectl exec -it secret-test bash
root@secret-test:/# cd /etc/secrets/
root@secret-test:/etc/secrets# ls
name password
root@secret-test:/etc/secrets# cat name
admin
② 将Secret导出到环境变量中
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: secret-deployment1
spec:replicas: 3template:metadata:labels:app: secret-envspec:containers:- name: secret-envimage: nginxports:- containerPort: 80env:- name: TEST_USER#环境变量键valueFrom:secretKeyRef:name: mysecretkey: name- name: TEST_PASSWORD#值valueFrom:secretKeyRef:name: mysecretkey: password
#查看
[root@apiserver secret]# kubectl exec -it secret-deployment1-6796f74774-dqmgf bash
root@secret-deployment1-6796f74774-dqmgf:/# echo $TEST_USER
admin
kubernetes.io/dockerconfigjson
使用Kubectl创建docker registry认证的secrt:
用法:拉取自己的Harbor仓库镜像,需要登录
[root@apiserver secret]# kubectl create secret docker-registry myregistrykey(Secret名称) --docker-server=服务器 --docker-username=tb1993723_2013 --docker-password=密码 --docker-email=邮箱
secret/myregistrykey created
[root@apiserver secret]# cat secret-docker.yaml
apiVersion: v1
kind: Pod
metadata:name: secret-doclabels:name: secret-doc
spec:containers:- name: secretsdocimage: registry.cn-hangzhou.aliyuncs.com/命名空间/镜像:版本号imagePullSecrets:- name: myregistrykey
#查看
[root@apiserver secret]# kubectl get pod
NAME READY STATUS RESTARTS AGE
secret-doc 1/1 Running 0 10s
K8S——存储-Secret相关推荐
- Kubernetes K8S之存储Secret详解
Kubernetes K8S之存储Secret详解 Secret概述 Secret类型 Service Account Opaque Secret 创建secret 将Secret挂载到Volume中 ...
- 云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...
作者 | 阚俊宝 阿里巴巴技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新 ...
- 云原生存储详解:容器存储与K8s存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- k8s 配置 Secret 集成Harbor
本篇主要 记录一下 在 k8s 中如果想要 从 harbor拉取镜像 该怎么操作,以及介绍了一下 k8s 中 Secret 是什么 1.Secret 是什么 1.1 Secret 概述 Secret ...
- k8s存储:卷、持久卷、存储类
k8s存储:卷.持久卷.存储类 emptyDir:临时数据卷 hostPath:节点数据卷 nfs:网络数据卷 PV:持久卷 持久卷的类型 volumeMode:卷模式 accessModes:访问模 ...
- k8s --使用secret
为什么要使用secret 官网说明 以前一些数据库密码可能会写在配置文件中springboot工程中一般是application.yaml.有的会直接写明文,有的加密之后把密文写在配置文件中. k8s ...
- k8s存储+storageclass自动创建pv+StatefulSet自动创建pvc
k8s存储 k8s存储 storageclass自动创建pv StatefulSet k8s存储 docker存储----k8s存储 docker的容器层可以提供存储:存储在可写层(CopyOnWri ...
最新文章
- 智源重大研究方向“智能信息检索与挖掘”发布会(活动报名)
- PHP CURL 中文说明
- iphone日历显示周视图_用敬业签记录放假安排 2021年放假安排日历
- 使用libjpeg库在LCD上显示图片
- keep怎么生成运动轨迹_【念叨叨】keep手环拔草记
- java8 多行字符串_JDK8字符串拼接的正确姿势
- 虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统
- 《算法竞赛入门经典》习题及反思 -2
- Oracle10g BIGFILE表空间带来的好处
- Android布局小案例——安卓版计算器
- 复旦大学电子信息专业考研上岸经验分享
- 如何用c语言程序预测身高,测身高的C语言程序.doc
- 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
- 密码学基础知识(一)
- geany配置python_在python虚拟环境中使用geany
- 【华人学者风采】James T. Kwok(郭天佑) 香港科技大学
- Androidstudio之TextView点击变色
- 【Java UI】HarmonyOs如何集成Hawk
- 朗润国际期货:元旦各地金融市场休市情况
- Android Studio 3.0后,找不到Launch Standalone SDK Manager
热门文章
- forEach、for…in、 for…of 的区别
- java根据word模板导出_java如何根据word模板生成word文档
- Typora使用技巧 | 各种跳转 【必备】
- python语言程序设计——蒙特·卡罗方法求圆周率
- 网贷害人,迷途知返后,天真的以为外包只要会增删改查就够了???
- 玫瑰线 matlab,如何用MATLAB画玫瑰线
- Android无法连接设备调试
- macOS配置MAVEN环境变量执行source .bash_profile报错.bash_profile: not valid in this context: /xxx/xxx
- 在Ubuntu中使用Tomcat的小tips_codestorm_新浪博客
- p95、p99、p999 什么意思