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相关推荐

  1. Kubernetes K8S之存储Secret详解

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

  2. 云原生存储详解:容器存储与 K8s 存储卷

    作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...

  3. k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷

    作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...

  4. docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...

    作者 | 阚俊宝  阿里巴巴技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新 ...

  5. 云原生存储详解:容器存储与K8s存储卷

    作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...

  6. k8s 配置 Secret 集成Harbor

    本篇主要 记录一下 在 k8s 中如果想要 从 harbor拉取镜像 该怎么操作,以及介绍了一下 k8s 中 Secret 是什么 1.Secret 是什么 1.1 Secret 概述 Secret ...

  7. k8s存储:卷、持久卷、存储类

    k8s存储:卷.持久卷.存储类 emptyDir:临时数据卷 hostPath:节点数据卷 nfs:网络数据卷 PV:持久卷 持久卷的类型 volumeMode:卷模式 accessModes:访问模 ...

  8. k8s --使用secret

    为什么要使用secret 官网说明 以前一些数据库密码可能会写在配置文件中springboot工程中一般是application.yaml.有的会直接写明文,有的加密之后把密文写在配置文件中. k8s ...

  9. k8s存储+storageclass自动创建pv+StatefulSet自动创建pvc

    k8s存储 k8s存储 storageclass自动创建pv StatefulSet k8s存储 docker存储----k8s存储 docker的容器层可以提供存储:存储在可写层(CopyOnWri ...

最新文章

  1. 智源重大研究方向“智能信息检索与挖掘”发布会(活动报名)
  2. PHP CURL 中文说明
  3. iphone日历显示周视图_用敬业签记录放假安排 2021年放假安排日历
  4. 使用libjpeg库在LCD上显示图片
  5. keep怎么生成运动轨迹_【念叨叨】keep手环拔草记
  6. java8 多行字符串_JDK8字符串拼接的正确姿势
  7. 虚拟机中qemu模拟开发板启动过程,使用nfs挂载根文件系统
  8. 《算法竞赛入门经典》习题及反思 -2
  9. Oracle10g BIGFILE表空间带来的好处
  10. Android布局小案例——安卓版计算器
  11. 复旦大学电子信息专业考研上岸经验分享
  12. 如何用c语言程序预测身高,测身高的C语言程序.doc
  13. 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
  14. 密码学基础知识(一)
  15. geany配置python_在python虚拟环境中使用geany
  16. 【华人学者风采】James T. Kwok(郭天佑) 香港科技大学
  17. Androidstudio之TextView点击变色
  18. 【Java UI】HarmonyOs如何集成Hawk
  19. 朗润国际期货:元旦各地金融市场休市情况
  20. Android Studio 3.0后,找不到Launch Standalone SDK Manager

热门文章

  1. forEach、for…in、 for…of 的区别
  2. java根据word模板导出_java如何根据word模板生成word文档
  3. Typora使用技巧 | 各种跳转 【必备】
  4. python语言程序设计——蒙特·卡罗方法求圆周率
  5. 网贷害人,迷途知返后,天真的以为外包只要会增删改查就够了???
  6. 玫瑰线 matlab,如何用MATLAB画玫瑰线
  7. Android无法连接设备调试
  8. macOS配置MAVEN环境变量执行source .bash_profile报错.bash_profile: not valid in this context: /xxx/xxx
  9. 在Ubuntu中使用Tomcat的小tips_codestorm_新浪博客
  10. p95、p99、p999 什么意思