第十章 Secret & Configmap (上)
敏感信息,直接保存在容器镜像中显然不妥,比如用户名、密码等。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 (上)的更多相关文章
- 第十章 Secret & Configmap(下)
10.4 ConfigMap Secret可以为Pod提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如一些配置信息,则可以用ConfigMap. configMap的使用方式与Secre ...
- 第十章 Secret & Configmap (中)
10.3 在Pod中使用Secret 10.3.1 Volume方式 apiVersion: v1 kind: Pod metaata: name: mypod spec: containers: - ...
- ASP.NET Core on K8S深入学习(9)Secret & Configmap
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.Secret 1.1 关于Secret 在应用启动过程中需要一些敏感信息, ...
- DirectX12 3D 游戏开发与实战第十章内容(上)
仅供个人学习使用,请勿转载.谢谢! 10.混合 本章将研究混合技术,混合技术可以让我们将当前需要光栅化的像素(也称为源像素)和之前已经光栅化到后台缓冲区的像素(也称为目标像素)进行融合.因此,该技术可 ...
- 3.k8s存储之ConfigMap、Secret
1.ConfigMap ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.ConfigMap API 给我们提供了向容器 ...
- k8s的configMap基本概念及案例
pod中两种特殊类型的存储卷:secret,configMap pod.spec.volumes.secret pod.spec.volumes.configMap多数情况下,这两个存储卷不是给p ...
- Secret的三种形式
Secret ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMa ...
- java微信接口之四—上传素材
一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...
- java微信接口之三—上传多媒体文件
一.微信上传多媒体接口简介 1.请求:该请求是使用post提交from来实现的,我们可以在网页上进行表单提交来实现.地址为: http://file.api.weixin.qq.com/cgi-bin ...
随机推荐
- Buildroot构建指南--Overview
使用Buildroot,让嵌入式Linux系统构建更加便捷.本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整. Buildroot是什 ...
- Miscosoft Visual Studio项目guid取值
There isn't an easy way to change the type of a project in Visual Studio project once it is created; ...
- 老男孩Linux运维期中架构
- sift特征简述
参考文献:http://blog.csdn.net/abcjennifer/article/details/7639681 分为几个步骤: 1. 构建尺度空间 2. LoG近似DoG找到关键点< ...
- go语言】Goroutines 并发模式
并发模式 让我们先来回顾一下boring函数的例子. func boring(msg string, c chan string) { for i := 0; ; i++ { c ...
- 自己整合的SSM框架 maven坐标大全
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- nginx在使用proxy_pass的情况下开启error_page
error_page用于指定特定错误发生时要显示的url,但是如果请求经proxy_pass处理后,如何使error_page对upstream产生的错误进行处理呢? 方法很简单. 保持之前的erro ...
- 奇异值分解(SVD)详解
在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系.前段时间看了国外的一篇文章,叫A Singularly Valuable Decompos ...
- Java多线程小例子(三个窗口卖火车票)
class Ticket implements Runnable{ private int TicketNum = 100; //100张火车票 private boolean flag = true ...
- 每天一个linux命令:【转载】ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...