一、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

secrets.yml

apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:password: MWYyZDFlMmU2N2Rmusername: YWRtaW4=

Ⅱ、使用方式

1、将 Secret 挂载到 Volume 中

apiVersion: v1
kind: Pod
metadata:labels:name: seret-testname: seret-test
spec:volumes:- name: secretssecret:secretName: mysecretcontainers:- image: hub.atguigu.com/library/myapp:v1name: dbvolumeMounts:- name: secretsmountPath: "readOnly: true

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

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: pod-deployment
spec:replicas: 2template:metadata:labels:app: pod-deploymentspec:containers:- name: pod-1image: hub.atguigu.com/library/myapp:v1ports:- containerPort: 80env:- name: TEST_USERvalueFrom:secretKeyRef:name: mysecretkey: username- name: TEST_PASSWORDvalueFrom:secretKeyRef:name: mysecretkey: password

四、kubernetes.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_EMAIL
secret "myregistrykey" created.

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

apiVersion: v1
kind: Pod
metadata:name: foo
spec:containers:- name: fooimage: roc/awangyang:v1imagePullSecrets:- name: myregistrykey

重启

内容来自https://study.163.com/course/courseMain.htm?courseId=1209568805

kubernetes视频教程笔记 (22)-存储-Secret相关推荐

  1. Kubernetes K8S之存储Secret详解

    Kubernetes K8S之存储Secret详解 Secret概述 Secret类型 Service Account Opaque Secret 创建secret 将Secret挂载到Volume中 ...

  2. 运维实操——kubernetes(九)存储之Secret配置管理Service Account、Opaque、dockerconfigjson

    存储之Secret配置管理Service Account.Opaque.dockerconfigjson 1.什么是Secret? 2.Service Account 3.Opaque (1)从文件中 ...

  3. Kubernetes学习笔记

    Kubernetes学习笔记 1.简介 用于自动部署.扩缩和管理容器化应用程序的开源系统,支持自动化部署.大规模可伸缩. 2.架构 2.1.Control Plane 对集群做出全局决策 Contro ...

  4. Kubernetes共享使用Ceph存储

    目录 简要概述 环境测试 结果验证 简要概述 Kubernetes pod 结合Ceph rbd块设备的使用,让Docker 数据存储在Ceph,重启Docker或k8s RC重新 调 度pod 不会 ...

  5. 最新版Kubernetes(k8s)-v1.22.3版本高可用集群

    目录 一.环境准备 二.安装Docker 三.配置环境变量 四.所有master节点安装keepalived和haproxy服务 五.部署集群 六.部署k8s的dashboard 本文采用的是etcd ...

  6. Kubernetes学习笔记-未整理

    Kubernetes学习笔记 标签:Kubernetes 学习笔记 原文:https://github.com/wtysos11/NoteBook/blob/master/微服务/Kubernetes ...

  7. Kubernetes学习笔记【2年以前的笔记】

    Kubernetes学习笔记 知识储备 熟悉linux基础命令 熟悉docker的基本原理和操作 了解ssl证书工作原理 了解负载均衡工作原理(L4/L7) 了解分布式概念 了解域名解析原理 了解网络 ...

  8. 使用Ceph集群作为Kubernetes的动态分配持久化存储

    2019独角兽企业重金招聘Python工程师标准>>> 使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubern ...

  9. Kubernetes学习笔记(一)

    2019独角兽企业重金招聘Python工程师标准>>> Kubernetes学习笔记(一) 博客分类: Kubernetes 导语 2015年4月,传闻已久的Borg论文伴随Kube ...

  10. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

最新文章

  1. 【周末阅读】10年内,19个关键技术将改变世界
  2. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验1
  3. 开启SAP CDS view DCL前后的读取性能对比
  4. 安装mysql二进制文件_MySQL二进制文件规范安装
  5. 200道物理学难题——038蚱蜢跃树
  6. 记一次ubuntu误操作导致无法用sudo
  7. 将小写金额转换成大写金额[存储过程版]
  8. 【声波传钱】支付宝新功能 “声波支付” 自动售货机已投入试运
  9. SW-1、SW-2 通过 VSF 技术形成一台虚拟的逻辑设备
  10. C#显示和隐藏 Excel 工作表及工作表中的行与列
  11. 8237A DMA控制器简答
  12. 宝塔linux 云锁安装卸载,Centos宝塔安装云锁带自编译好模块Nginx
  13. 高效C++ Effective C++
  14. Gateway网关简介以及使用
  15. html语言剖析十六 调色原理
  16. 数据库字符集utf8和utf8mb4的详细区别
  17. 二分法的复杂度O(log2n)是什么意思
  18. truelicense实现用于JAVA工程license
  19. 安装配置DOSBox
  20. android kingroot一键root工具,一键root大师

热门文章

  1. 检测PYthon标识符合法性脚本
  2. 知识管理在中国的发展趋势
  3. H3C题库HCNE的 最新
  4. Oracle10g安装在RHEL AS 3
  5. RichTextBox 中英文混输时,字体样式不同的解决方式
  6. expected at least 1 bean which qualifies as autowire candidate for this depe (spring无法注入)...
  7. 第二次课动手动脑的问题以及课后实验性的问题
  8. mysql官网下载页面
  9. 提高性能及操作硬件的能力
  10. eclipse中输入@符号自动提示Annotation