Kubernetes Secrets 详解

Secrets配置原理

Kubernetes Secrets用于支持敏感数据配置,可以将敏感信息注入到Pod中的容器。Secrets是一种特殊的配置,可以提供较安全的存储和访问配置的机制,降低敏感数据直接暴露给未授权用户的风险。同样支持两种常见方式和POD进行绑定:

  • 环境变量 - 跟ConfigMap一样,如果以环境变量的方式跟POD绑定,配置更新的时候,需要重启POD来使用最新的secret。
  • 存储卷挂载到POD - Secrets可以做到热加载,不必要重启POD。

Secret 基本操作

  1. 通过kubectl create secret
    kubectl create secret generic my-first-secret --from-literal=password=123456
[root@k8s-master ~]# kubectl create secret generic my-first-secret --from-literal=password=123456
secret/my-first-secret created
[root@k8s-master ~]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-zrgct   kubernetes.io/service-account-token   3      36h
my-first-secret       Opaque                                1      21s
[root@k8s-master ~]#
  1. 通过yaml资源配置清单

    [root@k8s-master data]# echo -n "123456" |base64
    MTIzNDU2
    [root@k8s-master data]# cat my-second-secret.yaml
    apiVersion: v1
    kind: Secret
    metadata:name: my-second-secret
    type: Opaque
    data:password: MTIzNDU2
    [root@k8s-master data]# kubectl describe secret my-second-secret
    Name:         my-second-secret
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>Type:  OpaqueData
    ====
    password:  6 bytes
    [root@k8s-master data]#

    但用上面的创建方式并不是安全的,比如可以通过kubectl get获取密钥

    [root@k8s-master data]# kubectl get secret my-second-secret -o yaml
    apiVersion: v1
    data:password: MTIzNDU2
    kind: Secret
    metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"v1","data":{"password":"MTIzNDU2"},"kind":"Secret","metadata":{"annotations":{},"name":"my-second-secret","namespace":"default"},"type":"Opaque"}creationTimestamp: "2022-09-07T16:10:28Z"name: my-second-secretnamespace: defaultresourceVersion: "74477"uid: 23950487-bd13-498e-bbfb-d23d3c7560d8
    type: Opaque[root@k8s-master data]# echo 'MTIzNDU2' | base64 -d
    123456
    [root@k8s-master data]#
    1. 其他方式创建密钥
    [root@k8s-master data]# echo 'pplsunny' | base64 > username.txt
    [root@k8s-master data]# echo '1qazxsw2' | base64 > password.txt
    [root@k8s-master data]# cat username.txt
    cHBsc3VubnkK
    [root@k8s-master data]# cat password.txt
    MXFhenhzdzIK
    [root@k8s-master data]# kubectl create secret generic my-third-secret --from-file=./username.txt --from-file=./password.txt
    secret/my-third-secret created
    [root@k8s-master data]# echo 'MXFhenhzdzIK' | base64 -d[root@k8s-master data]# kubectl create secret generic my-forth-secret --from-literal=username=ppl --from-literal=password=1qazxsw2
    

在pod中使用密钥

pets-secret.yaml文件如下:

apiVersion: v1
kind: Secret
metadata:name: pets-secret
type: Opaque
data:username: am9obi5kb2UKpassword: c0VjcmV0LXBhc1N3MHJECg==

(1)创建密钥

​ $ kubectl create -f pets-secret.yaml

(2)对要部署的应用进行定义

(3)查看密钥文件是否挂载到容器中

密钥值在环境变量中

进入到容器,查看映射内容如下:

Kubernetes Secrets 详解相关推荐

  1. Kubernetes RBAC 详解

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 RBAC使用rbac.authorization.k8s.io API Group 来实现授权决策,允许管理员通过 Kubernetes API 动态 ...

  2. 揭开面纱:Kubernetes架构详解

    [编者的话] 本文介绍了Kubernetes中的主要组件和各个组件的工作模式. 入门导论:Kubernetes组件和组件之间如何协同工作 本文讲的是揭开面纱:Kubernetes架构详解如果你正在实现 ...

  3. Kubernetes Service详解(概念、原理、流量分析、代码)

    Kubernetes Service详解(概念.原理.流量分析.代码) 作者: liukuan73 原文:https://blog.csdn.net/liukuan73/article/details ...

  4. Kubernetes基础详解

    1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不 ...

  5. 【云原生】Kubernetes CRD 详解(Custom Resource Definition)

    文章目录 一.概述 二.定制资源 1)定制资源 和 定制控制器 2)定制控制器 3)Operator 介绍 1.Operator Framework 2.Operator 安装 3.安装 Operat ...

  6. kubernetes—Pod详解

    Pod详解 前言 Pod介绍 Pod结构 Pod定义 pod的几种基础配置 概述 基本配置(name,image) 镜像拉取(imagePullPolicy) 启动命令(command和args) 环 ...

  7. 云原生系列「二」Kubernetes网络详解

    前言 K8s是一个强大的平台,但它的网络比较复杂,涉及很多概念,例如Pod网络,Service网络,Cluster IPs,NodePort,LoadBalancer和Ingress等等,这么多概念足 ...

  8. Kubernetes(十二)Kubernetes ConfigMapSecret详解

    一.ConfigMap 官方文档 ConfigMap 概念 ConfigMap的功能在k8s1.2版本中引入的,许多应用程序会从配置文件,命令行参数或环境变量中读取配置信息.ConfigMap API ...

  9. Kubernetes入门详解

    目录 前言 一.Kubernetes 1.为什么要有K8s 2.什么是K8s 3.K8s的用途 4.K8s优势和特点 4.1  K8s优势 4.2  K8s特点 二.K8s架构 三.K8s组件简介 1 ...

  10. Kubernetes 证书详解

    K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 ...

最新文章

  1. 统计s=hello alex alex hello haiyan cc haiyan com中每个单词的个数
  2. 上海人工智能再出重磅!寒武纪科技发布新一代云端AI芯片,联想、曙光、科大讯飞发布相关应用...
  3. php 长短字符串转换,将php的数组按照字符串长短进行排序
  4. 中国组合聚醚市场十四五发展规划与未来竞争趋势分析报告2022-2028年版
  5. 一夜吸粉200万被封杀,微信都有哪些逆鳞?
  6. python:直接插入和简单选择排序
  7. 双表查询java代码_多表增删改查
  8. html中删除代码怎么写,html空格代码怎么写?
  9. MongoDB基础(3.6安装及多实例)
  10. Discuz! 7.1 7.2 远程代码执行漏洞
  11. C# 笔记3 - 重载一系列像python那样的print()方法
  12. 图片处理和验证码识别
  13. opengl游戏引擎源码_我用C++复刻了这款上世纪最伟大的游戏
  14. 替代CATIA查看stp/step格式模型免费软件推荐
  15. SaaS软件真的需要客户运营吗?
  16. c# 调用Google查询天气 手机所属地 农历转换公历
  17. TBS1072B数字示波器波形截图流程
  18. 主成分分析,充分图,聚类,主成分回归——数据分析与R语言 Lecture 11
  19. 【Python语言】Python编程基础
  20. 【原创】uniapp开发的微商个人相册多端小程序源码以及安装

热门文章

  1. *TEST 2 for NOIP 妈的智障
  2. 基于SSM实现个性化健康饮食推荐系统
  3. Riverbed破解数字性能密码,引领云时代数字变革
  4. 从新华字典释义的角度理解springboot中controller、service、dao各自的职责
  5. Swing界面设计工具
  6. 写得太好了,大约《越狱》批评(发布)
  7. iOS系统架构和常用框架
  8. 神级 IDEA 插件,能让你的代码飞起来!
  9. CSS 文字背景水印
  10. UCenter的百科