第十二章存储之secret

liuqizhong      2022-02-17     690

关键词:

1Secret 存在意义

Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret 可以以 Volume 或者环境变量的方式使用

2Secret 有三种类型

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

② Opaquebase64编码格式的Secret,用来存储密码、密钥等

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

3Service Account

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

 技术图片

4Opaque Secret

Ⅰ、创建说明

Opaque 类型的数据是一个 map 类型,要求 value base64 编码格式:

$ echo-n"admin" | base64

YWRtaW4=

 

$ echo-n"1f2d1e2e67df" | base64

MWYyZDFlMmU2N2Rm

 

解密

 技术图片

secrets.yml

 

apiVersion: v1

kind: Secret

metadata:

name: mysecret

type: Opaque

data:

 password: MWYyZDFlMmU2N2Rm

 username: YWRtaW4=

 

II、使用方式

1)、将 Secret 挂载到 Volume

apiVersion: v1

kind: Pod

metadata:

 labels:

 name: seret-test

 name: seret-test

spec:

 volumes:

 - name: secrets

 secret:

 secretName: mysecret

containers:

- image: hub.atguigu.com/library/myapp:v1

 name: db

 volumeMounts:

 - name: secrets

 mountPath: "

readOnly: true

 

2)、将 Secret 导出到环境变量中

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

 name: pod-deployment

spec:

 replicas: 2

 template:

 metadata:

 labels:

 app: pod-deployment

spec:

 containers:

 - name: pod-1

image: hub.atguigu.com/library/myapp:v1

ports:

- containerPort: 80

 env:

 - name: TEST_USER

 valueFrom:

 secretKeyRef:

 name: mysecret

 key: username

- name: TEST_PASSWORD

 valueFrom:

 secretKeyRef:

 name: mysecret

key: password 

5kubernetes.io/dockerconfigjson

使用 Kuberctl 创建 docker registry 认证的 secret

$ kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAILsecret "myregistrykey" created.

 

在创建 Pod 的时候,通过imagePullSecrets来引用刚创建的 `myregistrykey

apiVersion: v1

kind: Pod

metadata:

name: foo

spec:

 containers:

 - name: foo

image: roc/awangyang:v1

 imagePullSecrets:

- name: myregistrykey

第十二章-语义分析之语法糖去除

 参考以下博文:(1)Javac语法糖之内部类(2)Javac语法糖之EnumSwitch(3)Javac语法糖之TryCatchFinally (4)Javac语法糖之增强for循环 (5)Javac语法糖之其它 (6)解语法糖之私有构造函数 (7)lower类的accessCode解读... 查看详情

构造之法第十十二章

第十一章软件设计与实现图形建模和分析方法1表达实体和实体之间的关系(思维导图)2实体关系图3UseCaseDiagram表达数据的流动(1)和管理机构相关的数据流(2)和读者相关的数据流 (3)和新书入库相关的数据流(4)和时... 查看详情

构建之法第十十二章

用户体验有几个层次:1最基础的是在交互环节,就是usablity,可用性,或者说易用性,大家说得最多的;要把可用性做好,不是太难,业界有成熟的方法,不需要太多天赋,两个字:“用心”即可。2更高层次的乃情感,即诺曼... 查看详情

第十二章三剑客之老三——grep

一、Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,... 查看详情

cprimerplus读书笔记第十二章

C的强大功能之一在于它允许我们控制程序的细节。C的内存管理系统正是这种控制能力的例子。它通过让我们决定哪些函数知道哪些变量以及一个变量在程序中存在多长时间来实现这些控制。 1.存储类及其说明符  主要的... 查看详情

第十二章课下测试补交博客

第十二章课下测试补交博客 查看详情

高数(a)下第十二章

 12.112.2 12.3  查看详情

《精通c#》第十二章linq

Linq是在.Net3.5之后首次引入的,这种查询语言简单易学,可用范围非常广泛在学着之前,一直用在数据库操作之上,但是在学习这节课之后才发现,凡是实现泛型的接口类型都可以使用linq,简单来说就是实现IEnumerable<T>接口... 查看详情

第十二章----数组

importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){//数组的定义//int[]a=newint[5];//inta1[]=newint[3];//int[]a2={2,4,6};int[]a=newint[4];boolean[]b=newboolean[4];char[]c=newchar[4];S 查看详情

第十二章软件包管理

第十二章、软件包管理本章内容?软件运行环境?软件包基础?rpm包管理?yum管理?定制yum仓库?编译安装软件运行和编译ABI:ApplicationBinaryInterfaceWindows与Linux不兼容ELF(ExecutableandLinkableFormat)PE(PortableExecutable)库级别的虚拟化:Linux:WINEWi... 查看详情

第十二章

一、变量的作用域(有效的使用范围)1、变量有2种             1.1成员变量(属性)声明在类的里面,方法的外面            &n 查看详情

“全栈2019”java第十二章:变量

...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第十二章:变量下一章“全栈2019”Java第十三章:基本数据类型学习小组加入同步学习小组,共同交流与进步。方式一:关注头条号Gorhaf,私信“Java学习小组”。方式二:... 查看详情

第十二章:类的无参方法

第十二章:类的无参方法类定义类的方法类的方法必须包括:1.方法名称                             查看详情

第十二章网络管理

一、ip地址管理hostnamectlset-hostnames1.test.comnmcligeneralhostnames1.test.comnmclidevicestatusnmclideviceshowens32nmtuinmclihelpUsage:nmcli[OPTIONS]OBJECTCOMMAND|helpOPTIONS-t[erse]terseoutput-p[retty]p 查看详情

第十二章随笔

  第十二章,Android下综合项目介绍之一随着社会电子信息化的不断发展,人们在居家中实验的电器越来越多,由此带来的安全隐患也越来越多,为了减少电器的不合理使用带来的异常情况,由此带来的安全隐患也有了明... 查看详情

java第十二章继承笔记

Java第十二章 继承笔记一、使用继承:   1)方便修改代码   2)减少代码量二、super继承object类:super访问父类的无参构造;super指的是object的无参构造。   例:子类调用父类:super.属性/super.... 查看详情

javascriptdom编程艺术-学习笔记(第十二章)

第十二章1.本章是综合前面章节的所有东西的,一个综合实例2.流程:①项目简介:a.获取原始资料(包括文本、图片、音视频等)                    b.站点... 查看详情

第十二章springboot+mongodb(复杂查询)

简单查询:使用自定义的XxxRepository接口即可。(见 第十一章springboot+mongodb(简单查询))复杂查询:使用MongoTemplate以及一些查询条件构建类(BasicDBList、BasicDBObject、Criteria等)1、application.properties1#mongodbnote:mongo3.xwillnotusehost... 查看详情