Kubernetes Secret(机密存储)

官方文档:https://kubernetes.io/docs/concepts/configuration/secret/

  • 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。
  • 应用场景:凭据

通过文本文件创建用户密码

1、创建用户名密码文件

echo -n 'admin' > ./username.txt
echo -n '1f2d1e2e67df' > ./password.txt

2、通过文件创建用户名密码

kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt

3、查看创建用户名密码
kubectl get secret

NAME TYPE DATA AGE
db-user-pass Opaque 2 37s

4、查看详情
kubectl describe secret db-user-pass

Name: db-user-pass
Namespace: default
Labels: <none>
Annotations: <none> Type: Opaque Data
====
password.txt: 12 bytes
username.txt: 5 bytes

通过yaml文件创建用户名密码

1、编码用户名密码

echo -n 'admin' | base64
echo -n '1f2d1e2e67df' | base64

2、创建yaml文件 vim user.yaml

apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm

3、创建用户名密码

kubectl create -f user.yaml

4、查看创建用户
kubectl get secret

NAME TYPE DATA AGE
db-user-pass Opaque 2 5m42s
mysecret Opaque 2 18s

通过环境变量导入到容器中

1、创建yaml文件
vim secret-var.yaml

apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx
env:
# 环境变量名称:用户
- name: SECRET_USERNAME
valueFrom:
# 选择输入secret用户
secretKeyRef:
name: mysecret
key: username
# 环境变量名称:密码
- name: SECRET_PASSWORD
valueFrom:
# 选择输入secret密码
secretKeyRef:
name: mysecret
key: password

2、创建容器

kubectl create -f secret-var.yaml

3、查看创建容器
kubectl get pods

NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 23s

4、进入容器查看变量

kubectl exec -it mypod bash

root@mypod:/# echo $SECRET_USERNAME
admin
root@mypod:/# echo $SECRET_PASSWORD
1f2d1e2e67df

通过volume挂载用户名密码

1、创建yaml文件

vim secret-vol.yaml

apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: foo
mountPath: "/etc/foo"
readOnly: true
volumes:
- name: foo
secret:
# 创建的secret
secretName: mysecret

2、创建容器

kubectl create -f secret-vol.yaml

3、查看容器
kubectl get pod

NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 46s

4、进入容器查看
kubectl exec -it mypod bash

root@mypod:/# ls /etc/foo/
password username
root@mypod:/# cat /etc/foo/password
1f2d1e2e67dfroot@mypod:/# cat /etc/foo/username
adminroot@mypod:/#

Kubernetes Secret(机密存储)的更多相关文章

  1. Kubernetes K8S之存储ConfigMap详解

    K8S之存储ConfigMap概述与说明,并详解常用ConfigMap示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS ...

  2. Kubernetes K8S之存储Volume详解

    K8S之存储Volume概述与说明,并详解常用Volume示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C ...

  3. Kubernetes之持久化存储

    转载自 https://blog.csdn.net/dkfajsldfsdfsd/article/details/81319735 ConfigMap.Secret.emptyDir.hostPath ...

  4. Kubernetes 学习(十)Kubernetes 容器持久化存储

    0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kuberne ...

  5. 【kubernetes secret 和 aws ecr helper】kubernetes从docker拉取image,kubernetes docker私服认证(argo docker私服认证),no basic auth credentials错误解决

    aws ecr helper: https://aws.amazon.com/blogs/compute/authenticating-amazon-ecr-repositories-for-dock ...

  6. 011.Kubernetes使用共享存储持久化数据

    本次实验是以前面的实验为基础,使用的是模拟使用kubernetes集群部署一个企业版的wordpress为实例进行研究学习,主要的过程如下: 1.mysql deployment部署, wordpre ...

  7. Kubernetes K8S之存储Secret详解

    K8S之存储Secret概述与类型说明,并详解常用Secret示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 ...

  8. kubernetes系列(十三) - 存储之Volume

    1. Volume简介 1.1 k8s的volume和docker的volume区别 1.2 kubernetes支持的volume类型 2. 重点的volume类型 2.1 emptyDir 2.1 ...

  9. Kubernetes中的存储(六)

    一.ConfigMap 1,介绍 ConfigMap 功能在 Kuberbetes 1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.ConfigMap API 给我们 ...

随机推荐

  1. windows 安装使用jupyter及 基础配置

    jupyter 是什么Jupyter Notebooks 是一个交互式笔记本,支持运行 40 多种编程语言,它的本质是一个 开源的 Web 应用程序,我们可以将其用于创建和共享代码与文档,他可以支持实 ...

  2. 【语义分割】Stacked Hourglass Networks 以及 PyTorch 实现

    Stacked Hourglass Networks(级联漏斗网络) 姿态估计(Pose Estimation)是 CV 领域一个非常重要的方向,而级联漏斗网络的提出就是为了提升姿态估计的效果,但是其 ...

  3. \" 转义字符, \a系统警报,逐字字符串(verbatim string)

    string str="The key factors are \"focus\" and \"perseverance\""; strin ...

  4. centos 安装gitlab

    1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...

  5. Windows下Django项目搭建流程

    1.创建虚拟环境 virtualenv test 2.进入虚拟环境 source ./项目名/Scripts/activate 3.创建项目 django-admin startproject 项目名 ...

  6. 交互式shell脚本web console

    官网:http://web-console.org/ 这个脚本可以实现web下交互,也就是有了这玩意后可以不用反弹shell了. <?php // Web Console v0.9.7 (201 ...

  7. 推荐一款适合Dynamics 365/Dynamics CRM 2016 使用的弹出窗插件AlertJs

    Github地址: https://github.com/PaulNieuwelaar/alertjs 目前有两个版本,3.0版本(30天免费试用)以及2.1版本(完全免费) ------------ ...

  8. 深入理解JVM虚拟机(二):JDK 内存类的异常分析

    JVM数据存储 堆存储(Heap):对象存储,实际上就是JAVA的数据存储 方法堆栈(Method Stack):存储方法调用的关系. 永久代(Perm):在JDK1.6及之前,常量数据存储于此区域 ...

  9. bayaim_linux_configure_oracle

    ---------------------------bayaim_linux_install_oracle_11g--2.0------------------------------------- ...

  10. Shel脚本-初步入门之《06》

    Shel脚本-初步入门-06 Shell 脚本的建立和执行 6.Shell 脚本的建立和执行 6.1 Shell脚本的建立 在 Linux 系统中,Shell 脚本(bash Shell 程序)通常是 ...