敏感信息,直接保存在容器镜像中显然不妥,比如用户名、密码等。K8s提供的解决方案是Secret。

  Secret会以密文的方式存储数据,避免了在配置文件中保存敏感信息。Secret会以Volume的形式被mount到Pod,容器可通过文件的方式使用Secret中的敏感数据;

此外,容器也可以环境变量的方式使用这些数据。

  Secret可通过命令行或YAML创建。

10.1 创建Secret:

  4种方法创建secret:

   (1)  --from-literal:  --from-literal对应一个条目。

    kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456

(2) --from-file:   每个文件对应一个条目

kubeusr@GalaxyKubernetesMaster:~$ echo -n  >./pas    # 往文件pas中写
kubeusr@GalaxyKubernetesMaster:~$ echo -n admin >./user

kubeusr@GalaxyKubernetesMaster:~$ kubectl create secret generic mysecret2 --from-file=./user --from-file=./pas
secret "mysecret2" created

   (3) 通过--from-env-file:  文件中的Key=value对应一个条目

kubeusr@GalaxyKubernetesMaster:~$ cat << EOF > env.txt      # cat <<EOF  > env.txt 是覆盖模式;  cat <<EOF  >> env.txt是追加模式
> username=admin
> password=
> EOF
kubeusr@GalaxyKubernetesMaster:~$ cat env.txt
username=admin
password=

 kubeusr@GalaxyKubernetesMaster:~$ kubectl create secret generic mysecret3 --from-env-file=env.txt
 secret "mysecret3" created

 (4)通过YAML配置文件:

Secret里面存储的数据必须是通过base64编码后的结果:

pkubeusr@GalaxyKubernetesMaster:~$ echo -n admin | base64
YWRtaW4=
kubeusr@GalaxyKubernetesMaster:~$ echo -n | base64
MTIzNDU2
kubeusr@GalaxyKubernetesMaster:~$
apiVersion: v1
kind: Secret
metadata:
name: mysecret4
data:
username: YWRtaW4=
password: MTIzNDU2
kubeusr@GalaxyKubernetesMaster:~$ kubectl apply -f mysecrete.yml
secret "mysecret4" created

10.2 查看Secret:

kubeusr@GalaxyKubernetesMaster:~$ kubectl get secret
NAME TYPE DATA AGE
default-token-qjj5t kubernetes.io/service-account-token 131d
jenkins-credentials Opaque 85d
mysecret Opaque 42m
mysecret2 Opaque 37m
mysecret3 Opaque 20m
mysecret4 Opaque 9m
kubeusr@GalaxyKubernetesMaster:~$ kubectl describe secret mysecret2
Name: mysecret2
Namespace: default
Labels: <none>
Annotations: <none> Type: Opaque Data
====
pas: bytes
user: bytes
kubeusr@GalaxyKubernetesMaster:~$ kubectl edit secret mysecret4        # 查看具体内容

# 然后用base64解码

  kubeusr@GalaxyKubernetesMaster:~$ echo -n YWRtaW4=| base64 --decode
  admin

第十章 Secret & Configmap (上)的更多相关文章

  1. 第十章 Secret & Configmap(下)

    10.4 ConfigMap Secret可以为Pod提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如一些配置信息,则可以用ConfigMap. configMap的使用方式与Secre ...

  2. 第十章 Secret & Configmap (中)

    10.3 在Pod中使用Secret 10.3.1 Volume方式 apiVersion: v1 kind: Pod metaata: name: mypod spec: containers: - ...

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

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

  4. DirectX12 3D 游戏开发与实战第十章内容(上)

    仅供个人学习使用,请勿转载.谢谢! 10.混合 本章将研究混合技术,混合技术可以让我们将当前需要光栅化的像素(也称为源像素)和之前已经光栅化到后台缓冲区的像素(也称为目标像素)进行融合.因此,该技术可 ...

  5. 3.k8s存储之ConfigMap、Secret

    1.ConfigMap ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.ConfigMap API 给我们提供了向容器 ...

  6. k8s的configMap基本概念及案例

    pod中两种特殊类型的存储卷:secret,configMap  pod.spec.volumes.secret  pod.spec.volumes.configMap多数情况下,这两个存储卷不是给p ...

  7. Secret的三种形式

    Secret ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMa ...

  8. java微信接口之四—上传素材

    一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...

  9. java微信接口之三—上传多媒体文件

    一.微信上传多媒体接口简介 1.请求:该请求是使用post提交from来实现的,我们可以在网页上进行表单提交来实现.地址为: http://file.api.weixin.qq.com/cgi-bin ...

随机推荐

  1. c# 自定义排序类(冒泡、选择、插入、希尔、快速、归并、堆排序等)

    using System; using System.Text; namespace HuaTong.General.Utility { /// <summary> /// 自定义排序类 ...

  2. linux 下 iscsi的简单使用

      一.准备工作 1.1.(服务端和客户端都需要设置) 系统使用的是CentOS6.8 禁用防火墙: 查看状态:# service iptables status 停止:# systemctl sto ...

  3. paddlepaddle初步印象

    从其官网整理了一些资料如下: 1.基本概念 基本使用概念 PaddlePaddle是源于百度的一个深度学习平台.PaddlePaddle为深度学习研究人员提供了丰富的API,可以轻松地完成神经网络配置 ...

  4. SpreadJS 在 Angular2 中支持绑定哪些属性?

    SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎.排序.过滤.输入控件.数据可视化.Excel 导入/导出等功能,适用于 .N ...

  5. 在Fragment中加一个嵌套了ListView的ScrollView(一)

    首先介绍一下这个程序的功能: 1.顶部有两个可以切换Fragment的Button 2.在其中一个Fragment中里有个ScrollView,ScrollView中有ViewFlipper,List ...

  6. ubuntu安装 tensorflow GPU

    安装支持GPU的tensorflow前提是正确安装好了 CUDA 和 cuDNN. CUDA 和 cuDNN的安装见 Nvidia 官网和各种安装教程,应该很容易,重点是要选准了支持自己GPU的 CU ...

  7. ubuntu 终端命令颜色的修改

    http://blog.chinaunix.net/uid-13954789-id-3137184.html http://blog.chinaunix.net/uid-26021340-id-348 ...

  8. BZOJ4987:Tree (树形DP)

    Description 从前有棵树. 找出K个点A1,A2,…,Ak. 使得∑dis(AiAi+1),(1<=i<=K-1)最小. Input 第一行两个正整数n,k,表示数的顶点数和需要 ...

  9. bootstrap+Ajax+SSM(maven搭建)表单增删改查

    前后端分离,前端利用ajax调用后端API接收json数据,进行表单的增删改查 软件架构 IDE:IDEA 数据库:mysql jdk:1.8 tomcat:9 后端:springmvc,mybati ...

  10. BZOJ2049 SDOI2008 Cave 洞穴勘测 【LCT】

    BZOJ2049 SDOI2008 Cave 洞穴勘测 Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分 ...