敏感信息,直接保存在容器镜像中显然不妥,比如用户名、密码等。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. Android程序员学WEB前端(8)-CSS(3)-盒子内联块级定位浮动-Sublime

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76618473 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 盒子模型: <!D ...

  2. Inception 初探

    1,安装 下载组件 wget clone https:/github.com/mysql-inception/inception.git rz ll unzip inception-master.zi ...

  3. SSH 首次登录太慢问题

    这两天在使用 Docker 做测试,发现新建的容器在首次 ssh 登录的时候经常超时,我们简单将超时时间设置成60秒,但仍然会偶尔超时.所以简单延迟超时时间此路不通. 于是想到是否可以通过修改 ssh ...

  4. [置顶] Isolation Forest算法实现详解

    本文算法完整实现源码已开源至本人的GitHub(如果对你有帮助,请给一个 star ),参看其中的 iforest 包下的 IForest 和 ITree 两个类: https://github.co ...

  5. 高并发异步uwsgi+web.py+gevent

    为什么用web.py? python的web框架有很多,比如webpy.flask.bottle等,但是为什么我们选了webpy呢?想了好久,未果,硬要给解释,我想可能原因有两个:第一个是兄弟项目组用 ...

  6. java之继承

    措辞 类Y是继承类X == 类X是类Y的父类 == Y IS-A X IS-A测试具有传递性,即:若Y IS-A X,且Z IS-A Y,则Z IS-A X IS-A关系是单向的 条件 为了防止继承被 ...

  7. hiho1613 墨水滴

    对不起,太弱了.................想了一下午

  8. UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)

    在 Windows 10.0.16299 中,RevealBrush 被引入,可以实现炫酷的鼠标滑过高亮效果和点击光照.本文将告诉大家如何完整地实现这样的效果. Reveal 的效果(自带) 在微软官 ...

  9. ASP.NET Core 中的Ajax全局Antiforgery Token配置

    前言 本文基于官方文档 <在 ASP.NET Core 防止跨站点请求伪造 (XSRF/CSRF) 攻击>扩展另一种全局配置Antiforgery方法,适用于使用ASP.NET Core ...

  10. 开发中常见的ES6语句

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...