10.3 在Pod中使用Secret

  10.3.1 Volume方式  

apiVersion: v1
kind: Pod
metaata:
name: mypod
spec:
containers:
- name: mypod
image: busybox
args:
- /bin/sh
- -c
- sleep ; touch /tmp/healthy; sleep
volumeMounts:
- name: foo
mountPath: "/etc/foo" # 在容器内部的该路径下
readOnly: true
volumes:
- name: foo
secret:
secretName: mysecret # 指定有前面创建的mysecret
 kubectl apply -f mypod.yml
pod "mypod" created
kubeusr@GalaxyKubernetesMaster:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mypod / ContainerCreating 7s
producer-consumer / Running 18h
kubeusr@GalaxyKubernetesMaster:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mypod / Running 14s
producer-consumer / Running 18h
kubeusr@GalaxyKubernetesMaster:~$ kubectl exec -it mypod sh # 进入容器
/ # cd /etc/foo # 进入
/etc/foo # ls
password username
/etc/foo # cat /etc/foo/password # 可以直接查看内容,是名文。

K8s会在指定的路径下为每条敏感数据创建一个文件,文件名是数据条目的Key, /etc/foo/username和 etc/foo/password, value是以明文的形式存放在文件中。

我们也可以自定义存放数据的文件名,配置文件如下改动:这时,数据将存放在/etc/foo/my-group/myt-username中。

apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mypod
image: busybox
args:
- /bin/sh
- -c
- sleep ; touch /tmp/healthy; sleep
volumeMounts:
- name: foo
mountPath: "/etc/foo"
readOnly: true
volumes:
- name: foo
secret:
secretName: mysecret
items:
- key: username
path: my-group/my-username
- key: password
path: my-group/my-password

以Voluime方式使用secret支持动态更新:Secret更新后,容器中的数据也会更新。

 10.3.2 环境变量方式

   通过volume方式使用secret,容器必须从文件读取数据,稍显麻烦。

   K8s支持通过环境变量使用secret。

  

apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mypod
image: busybox
args:
- /bin/sh
- -c
- sleep ; touch /tmp/healthy; sleep
env:
- name: SECRET_USERNAME # 环境变量名字
valueFrom:
secretKeyRef:
name: mysecret # 从哪个secret来
key: username # key
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password

通过环境变量SECRET_USERNAME 和 SECRET_PASSWORD就可以读取到secret的数据,但是注意: 环境变量的方式不支持Secret动态更新。

-su: kubeusr@GalaxyKubernetesMaster:~$: command not found
kubeusr@GalaxyKubernetesMaster:~$ pod "mypod" created

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

  1. 第十章 Secret & Configmap(下)

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

  2. 第十章 Secret & Configmap (上)

    敏感信息,直接保存在容器镜像中显然不妥,比如用户名.密码等.K8s提供的解决方案是Secret. Secret会以密文的方式存储数据,避免了在配置文件中保存敏感信息.Secret会以Volume的形式 ...

  3. CentOS7安装CDH 第十章:CDH中安装Spark2

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

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

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

  5. 2078 Problem H Secret Message 中石油-未提交-->已提交

    题目描述 Jack and Jill developed a special encryption method, so they can enjoy conversations without wo ...

  6. Kubernetes中的Configmap和Secret

    本文的试验环境为CentOS 7.3,Kubernetes集群为1.11.2,安装步骤参见kubeadm安装kubernetes V1.11.1 集群 应用场景:镜像往往是一个应用的基础,还有很多需要 ...

  7. kubernetes系列12—二个特色的存储卷configmap和secret

    本文收录在容器技术学习系列文章总目录 1.configmap 1.1 认识configmap ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件.ConfigMa ...

  8. kubernetes ConfigMap和Secret:配置应用程序

    7.1.配置容器化应用程序 7.2.向容器传递命令行参数 7.2.1.待Docker中定义命令与参数 1.了解ENTRYPOINT与CMD ENTRYPOINT定义容器启动时被调用的可以执行程序 CM ...

  9. 09-kubernetes configMap secret

    目录 配置容器化应用配置的方式 命令创建和测试configMap 创建一个Pod 挂在测试 命令行文件类创建方式 创建Pod测试 创建后测试 贴近实际进行测试 创建后测试 secret 举例测试 ge ...

随机推荐

  1. 转一个有意思的利用存储过程备份恢复PostgreSQL

    [转自 housonglin1213 的博客]http://blog.csdn.net/housonglin1213/article/details/51005540 1.自定义函数脚本备份 CREA ...

  2. c# DataTable行转列

    /// <summary> /// datatable行转列 /// </summary> /// <param name="dtSrc">来源 ...

  3. 日尼玛(。・∀・)ノ゙嗨 关于使用netstat时:::*

    关于使用netstat时 # netstat -tlnp | grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1444/sshd tcp6 0 0 :::22 ...

  4. node中的一些诡异bug

    这种bug一般是监听的端口号被占用了导致的,换个端口号!!!!

  5. live555 中的socket的任务调度分析

    1.添加一个socket任务 envir().taskScheduler().setBackgroundHandling(socketNum, SOCKET_WRITABLE|SOCKET_EXCEP ...

  6. 使用Sinopia搭建私有npm仓库

    使用Sinopia搭建私有npm仓库 在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像.大概看了几个,觉得Sinopia最简单也好用,所以就使 ...

  7. [置顶] Deep Learning 学习笔记

    一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不 ...

  8. python应用中的小知识点

    1.with有什么作用 with的作用是自动管理上下文打开关闭文件的时候,可以用with,文件对象不再使用的时候,会自动给我们关闭,不需手动关闭了数据库连接的时候, 2.没有import的模块怎么快速 ...

  9. Sqlalchemy 设置表编码及引擎

    1. 设置引擎编码方式为utf8. engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/sqldb01?ch ...

  10. crm--01

    需求: 将课程名称与班级综合起来 class ClassListConfig(ModelSatrk): # 自定义显示方式 def display_class(self,obj=None,is_hea ...