简介

secret顾名思义,用于存储一些敏感的需要加密的数据。这些数据可能是要保存在pod的定义文件或者docker的镜像中。把这些数据通过加密的方式存放到secrets对象中,可以降低信息泄露的风险。在secret中存储的数据都需要通过base64进行转换加密后存放。

创建secret

1、加密用户名密码

假设有两个敏感数据,分别是用户名breeze,密码:123456。首先需要使用base64来转换数据:

  1. echo -n "breeze"| base64
  2. YnJlZXpl
  3. echo -n "123456"| base64
  4. MTIzNDU2

然后创建一个secret.yml文件,内容如下:

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: test-secret
  5. data:
  6. username: YnJlZXpl
  7. password: MTIzNDU2

创建secret:

  1. kubectl create -f secret.yml

也可以直接使用命令行生成secret:

  1. kubectl create secret generic test-secret --from-literal=username='breeze',password='123456'

2、加密证书文件

  1. kubectl create secret tls ingress-secret --key server.key --cert ca.crt

使用secret

1、使用volume挂载方式

给出一个pod示例:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: secret-test-pod
  5. spec:
  6. containers:
  7. - name: test-container
  8. image: nginx
  9. volumeMounts:
  10. - name: secret-volume
  11. mountPath: /etc/secret-volume
  12. volumes:
  13. - name: secret-volume
  14. secret:
  15. secretName: test-secret

2、将secret用于env

创建一介secret.yml文件,内容如下:

  1. apiVersion: v1
  2. data:
  3. data-1: c2ltb25zdQ==
  4. data-2: c2ltb25zdS5tYWlsQGdtYWlsLmNvbQ==
  5. kind: Secret
  6. metadata:
  7. name: test-secret
  8. namespace: default
  9. type: Opaque

与configmap的用法一致,下面直接贴上示例文件:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: secret-by-env
  5. spec:
  6. containers:
  7. - name: busydayeasylife
  8. image: gcr.io/google_containers/busybox:1.24
  9. command:
  10. - /bin/sh
  11. - -c
  12. - --
  13. args:
  14. - "while [ true ]; do echo $NAME; echo $EMAIL; sleep 30; done;"
  15. env:
  16. - name: NAME
  17. valueFrom:
  18. secretKeyRef:
  19. name: test-secret
  20. key: data-1
  21. - name: EMAIL
  22. valueFrom:
  23. secretKeyRef:
  24. name: test-secret
  25. key: data-2

K8S之Secret的更多相关文章

  1. k8s中secret解析

    概览 Secret是用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥.这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险. ...

  2. k8s通过secret管理敏感信息

    应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 Secret. Secret 会以密文的方式存储 ...

  3. k8s的secret基本概念及案例

    secret相对于configMap,功能上是相似的但是secret是以其他编码方式去记录配置信息的,但是也可以被解读,只不过有技术门槛,不是那么容易就被解读.使用base64可以解码:echo ** ...

  4. k8s之使用secret获取私有仓库镜像

    一.前言 其实这次实践算不上特别复杂,只是在实践过程中遇到了一些坑,以及填坑的方法是非常值得在以后的学习过程中参考借鉴的 二.知识准备 1.harbor是一个企业级的镜像仓库,它比起docker re ...

  5. ASP.NET Core on K8S深入学习(9)Secret & Configmap

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.Secret 1.1 关于Secret 在应用启动过程中需要一些敏感信息, ...

  6. k8s实战为aspnetcore.webapi微服务注入配置信息 - kubernetes

    1.浅析k8s配置信息 Secret 以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens.私钥.密码.数据库连接.事件总线连接等. ConfigMap 以明文的形式存储数据 ...

  7. K8S从私有仓库拉取镜像

    通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证. 在docker单机环境中,我们可以 ...

  8. Kubernetes实战(二):k8s v1.11.1 prometheus traefik组件安装及集群测试

    1.traefik traefik:HTTP层路由,官网:http://traefik.cn/,文档:https://docs.traefik.io/user-guide/kubernetes/ 功能 ...

  9. kubernets之secret资源

    一  对于一些保密度比较高的文件,k8s又是如何存储的呢? 针对那些保密度比较高的配置文件,例如证书以及一些认证配置不能直接存储在configmap中,而是需要存储在另外一种资源中,需要对存储在里面的 ...

随机推荐

  1. C++ 类 构造函数 constructor

    构造函数 当定义了一个整型变量: int a; 这会申请了一块内存空间来存储a,但是这块内存中原本有数据的,可能是任何值,这不是你所希望的,若你就希望a表示1,所以要把a的值赋值为1. ; 例: #i ...

  2. 每日Scrum(10)

    今天我们小组整合了下我们所编辑的程序,然后在界面上进行了修改和少部分的完善,现在就等着下午的验收了 任务展板 燃尽图如下:

  3. mysql 修改语句及耗时

    1.含有某串字母的字段替换: update imagetable set imageID = replace(imageID, 'ZH0211001', 'ZH4111001') 只要imageID含 ...

  4. Structs2笔记①--structs的背景、structs2框架的意义、第一个helloworld

    Struts2的背景 由出色稳定的框架struts1和webwork框架整合而来的 吸取了两大框架的优点 提高了开发的效率和规范性 更好的实现了MVC架构 解除了与servlet的强耦合性 使用str ...

  5. web窗体之四则运算

    1,计算方法: namespace ASP.NET { public class JiSuan { public int S; public int Result { get { return S; ...

  6. DPDK flow_filtering 源码阅读

    代码部分 main.c /*- * BSD LICENSE * * Copyright 2017 Mellanox. * * Redistribution and use in source and ...

  7. python learning2.py

    L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] # 取前3个元素的笨方法 r = [] n = 3 for i in range(n): r.appe ...

  8. 300道随机四则运算小程序(java编写)

    这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ pu ...

  9. week2:个人博客作业

    1.这周写程序感想: 昨天差不多,也是这个时候看些的程序,写了4个小时程序,感触颇多.昨日,原打算,就完成程序就吧这个随笔写完结果,由于各种原因,没写一直拖到现在.就做昨天写的程序,本身题目很简单,主 ...

  10. jquery on 事件嵌套 事件执行多次

    今天做了个项目,就是想点击添加然后追加一列,点击这一列的修改按钮,在修改, //编辑事件 $('#eventTable').on('click','.edit_n',function(){ var i ...