目录

一、Secret概述

二、Secret 类型

kubectl 创建类型

三、Secret 使用

Opaque 类型 Secret 的使用

创建

yaml


一、Secret概述

k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。

Secret 类似于 ConfigMap,但专门用于保存机密数据。

二、Secret 类型

内置类型用法
Opaque用户定义的任意数据
kubernetes.io/service-account-tokensymotion服务账号令牌
kubernetes.io/dockercfg~/.dockercfg 文件的序列化形式
kubernetes.io/dockerconfigjson~/.docker/config.json 文件的序列化形式
kubernetes.io/basic-auth用于基本身份认证的凭据
kubernetes.io/ssh-auth用于 SSH 身份认证的凭据
kubernetes.io/tls用于 TLS 客户端或者服务器端的数据
bootstrap.kubernetes.io/token启动引导令牌数据

kubectl 创建类型

[root@k8s-master01 ~]# kubectl create secret dotfile -h
Create a secret using specified subcommand.
​
Available Commands:docker-registry   创建一个给 Docker registry 使用的 secretgeneric           Create a secret from a local file, directory, or literal valuetls               创建一个 TLS secret
​
Usage:kubectl create secret [flags] [options]
​
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
  • docker-registry: 连接私有镜像仓库的凭证(据)

  • generic: 常见 secret, 该类型 secret 与 configmap使用相同

  • tls: 提供 tls 证书, 在 service mesh 中自动挂载

三、Secret 使用

使用场景:

  • 设置容器的环境变量

  • 向 Pod 提供 SSH 密钥或密码等凭据

  • 允许 kubelet 从私有镜像仓库中拉取镜像

Opaque 类型 Secret 的使用

创建
[root@k8s-master ~]# kubectl get secrets -n calico-apiserver 
NAME                     TYPE     DATA   AGE
calico-apiserver-certs   Opaque   2      7d[root@k8s-master ~]# kubectl describe secrets -n calico-apiserver 
Name:         calico-apiserver-certs
Namespace:    calico-apiserver
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
tls.crt:  2530 bytes
tls.key:  1679 bytes[root@k8s-master ~]# kubectl create secret 
docker-registry  (创建一个给 Docker registry 使用的 Secret)
generic          (Create a secret from a local file, directory, or literal value)
tls              (创建一个 TLS secret)#它的选项跟configmap是一样的
[root@k8s-master ~]# kubectl create secret generic s1 --from-
--from-env-file  (Specify the path to a file to read lines of key=val pairs to create a secret.)
--from-file      (Key files can be specified using their file path, in which case a default name will b…)
--from-literal   (Specify a key and literal value to insert in secret (i.e. mykey=somevalue))#创建的secret的名字可以自定义,这里定义名称为s1
[root@k8s-master ~]# kubectl create secret generic s1 --from-literal k1=v1
secret/s1 created[root@k8s-master ~]# kubectl describe secrets s1
Name:         s1
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData    #数据
====
k1:  2 bytes  #所占字节数#中文字符,一个字符等于三个字节
[root@k8s-master ~]# kubectl create secret generic s2 --from-literal k2=超哥
secret/s2 created[root@k8s-master ~]# kubectl describe secrets s2
Name:         s2
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
k2:  6 bytes

明文加密,密文解密简单演示

secret它是可以自动解密的

在创建过程它解密中不可以使用明文,会报错,所以要用密文

#加密
[root@k8s-master ~]# echo 1234 | base64
MTIzNAo=#解密
[root@k8s-master ~]# echo MTIzNAo= | base64 -d
1234#像这种明文解密是会报错的
#所以不能使用明文加密
[root@k8s-master ~]# echo 12345 | base64 -d
�m�64: 无效的输入#查看secret中的s1详细信息
[root@k8s-master ~]# kubectl get secrets s1 -o yaml
apiVersion: v1
data:k1: djE=    #把k1加密为这个
kind: Secret
metadata:creationTimestamp: "2025-08-18T16:23:37Z"name: s1namespace: defaultresourceVersion: "836505"uid: 7f0863fc-82a2-409e-abf6-6de72a20c81b
type: Opaque[root@k8s-master ~]# echo djE= | base64 -d
v1[root@k8s-master ~]#     #之前我们定义了k1等于v1,这里base64解密出来后就是v1
yaml

以 yaml 方式创建需要你提前进行 base64

secret它是可以自动解密的

在创建过程它解密中不可以使用明文,会报错,所以要用密文

#yaml文件
以 yaml 方式创建需要你提前进行 base64[root@k8s-master01 ~]# echo -n "admin" | base64
YWRtaW4=
[root@k8s-master01 ~]# echo -n "123456" | base64
MTIzNDU2#创建yaml文件,添加下面这段就行 apiVersion: v1
kind: Secret
metadata:name: secret-volumenamespace: default
type: Opaque
data:password: MTIzNDU2username: YWRtaW4=
immutable: true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93717.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93717.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93717.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lua入门以及在Redis中的应用

1.基本语法1.1变量lua的变量有&#xff1a;无效值nil&#xff0c;布尔值boolean&#xff0c;数字number、字符串string、函数function、自定义类型userdata、线程thread、表table&#xff08;key-value结构&#xff09;1.2循环数值循环for i起始值, 结束值 ,间隔值 do---option…

淘宝电商大数据采集【采集内容||采集方法|工具||合规性||应用】

淘宝电商大数据采集是指通过技术手段、工具或平台&#xff0c;系统性收集淘宝&#xff08;及旗下天猫等&#xff09;生态内的各类数据&#xff0c;用于分析市场趋势、用户行为、商品表现、竞品动态等&#xff0c;为电商运营、决策提供数据支持。以下从采集内容、工具方法、合规…

ROS2核心模块

1.创建工作空间先创建工作空间ws01_plumbing&#xff0c;终端下进入工作空间的src目录&#xff0c;执行如下命令&#xff1a;ros2 pkg create --build-type ament_cmake base_interfaces_demo2.话题通信话题通信是ROS中使用频率最高的一种通信模式&#xff0c;话题通信是基于发…

Mac 上安装并使用 frpc(FRP 内网穿透客户端)指南

一、先装好 Homebrew&#xff08;macOS 的包管理器&#xff09;打开终端&#xff08;Terminal&#xff09;&#xff0c;先装命令行开发工具 xcode-select --install弹窗点“安装”&#xff0c;等待 3~5 分钟。一键安装 Homebrew /bin/bash -c "$(curl -fsSL https://raw.g…

04_接口与包管理

第4课:接口与包管理 课程目标 深入理解Go语言接口的概念和用法 掌握接口的组合和空接口 学会使用Go Modules进行包管理 理解包的导入和导出规则 1. 接口基础 1.1 接口定义 // 基本接口定义 type Shape interface {Area() float64Perimeter()

福昕PDF编辑软件高级版下载与详细图文安装教程!!

软件下载 【软件名称】&#xff1a; 福昕PDF编辑器高级版 【软件大小】&#xff1a;668.9MBa a【系统要求】&#xff1a;awin10/win11或更高 福昕&#xff0c;软件下载&#xff08;夸克网盘需手机打开&#xff09;&#xff1a;&#xff1a;福昕丨夸克网盘-资源免费下载 软件介…

利用无事务方式插入数据库解决并发插入问题(最小主键id思路)

一、背景 由于某业务需要回退某产品数据缓存列表Asset资源&#xff0c;主任务执行后&#xff0c;通过并行执行批量子任务进行数据回退&#xff0c;子任务中会记录缓存列表Asset和缓存列表行AssetLine数据&#xff0c;并行执行过程会出现缓存列表行AssetLine重复插入问题&#…

如何制作免费的比特币冷钱包

本文主要从技术上讨论冷钱包的操作机制和原理&#xff0c;并不作为投资建议。对于国外的比特币玩家&#xff0c;或者打算长期囤币来对抗通货膨胀的&#xff0c;或者是想短期持有的&#xff0c;那么将比特币存储在哪里是一个Common的问题。一般是两类选择。第一种选择是存储在交…

新手向:Python制作简易音乐播放器

使用Python构建简易音乐播放器音乐播放器是现代数字生活中不可或缺的工具&#xff0c;从智能手机到电脑系统&#xff0c;几乎每个设备都内置了音乐播放功能。对于Python初学者来说&#xff0c;开发一个简易的音乐播放器是一个很好的实践项目&#xff0c;既能学习编程基础&#…

【StarRocks】TabletChecker逻辑

TabletChecker是StarRocks FE里的一个组件,它的主要工作是检查出所有的处于不健康状态的tablets。 注意,它的职责就是check(检查)。 至于tablet修复、均衡等调度工作不是TabletChecker的职责。 相关配置项 // 20秒执行一次check,代码里是执行runAfterCatalogReady()publi…

低空经济展 | 优翼仿真携eVTOL全动飞行模拟器亮相2025深圳eVTOL展

2025深圳eVTOL展将于2025年9月23-25日在深圳坪山燕子湖国际会展中心举行。展会以“低空经济・eVTOL・航空应急救援・商载大型无人运输机”为主题&#xff0c;以 “2天大会3天展览项目考察飞行表演颁奖盛典项目路演”的多元模式&#xff0c;打造覆盖 eVTOL全产业链的专业化合作平…

AI驱动商业革新:开源大模型与零售精准营销引领产业升级

在当今数字化浪潮中&#xff0c;AI 正以迅猛之势渗透至商业的每一处脉络&#xff0c;掀起一场影响深远的变革风暴&#xff0c;从根本上改写着商业运转的底层逻辑&#xff0c;创造出无数崭新的商业契机。基础模型领域&#xff0c;新的突破正在重塑行业格局。Meta 旗下的 LLaMA 3…

【表的操作】

文章目录 一、查看所有表 1、语法 二、创建表 1、语法 2、⽰例 3、表在磁盘上对应的⽂件 4、创建数据加时使⽤校验语句[if not exists] 三、查看表结构 1、语法 2、⽰例 四、修改表 1、语法 2、⽰例 (1)向表中添加⼀列 (2)修改某列的⻓度 (3)重命名某列 (4)删除某个字段…

【Java后端】Spring Boot 全局异常处理最佳实践

Spring Boot 全局异常处理最佳实践 在日常开发中&#xff0c;异常处理几乎是绕不过去的一个话题。尤其在 后端 API 项目 中&#xff0c;如果没有统一的异常处理机制&#xff0c;很容易出现以下问题&#xff1a; Controller 层代码里充斥着 try-catch&#xff0c;显得冗余。前端…

K8S-Configmap资源

目录 一、核心概念​ ​定义​ ​核心价值​ ​与Secret的区别​ ​二、核心特性​ ​数据存储​ ​生命周期​ ​作用域​ 什么是 Configmap&#xff1f; Configmap 能解决哪些问题&#xff1f; ConfigMap 的主要作用 三、命令行直接创建 四、通过文件创建&#xf…

MySQL InnoDB事务acid特性的原理和隔离级别的实现原理

InnoDB存储引擎 InnoDB存储结构表空间 则每张表都会有一个表空间&#xff08;xxx.ibd&#xff09;&#xff0c;一个mysql实例可以对应多个表空间 系统表空间 存储数据字典&#xff08;表结构定义、索引信息等&#xff09;、Change Buffer、Doublewrite Bufferundo log&#xff…

Linux系统之部署nullboard任务管理工具

Linux系统之部署nullboard任务管理工具一、nullboard介绍1.1 nullboard简介1.2 任务看板工具介绍1.3 nullboard使用场景二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、安装httpd软件3.1 检查yum仓库3.2 安装httpd软件3.3 启动httpd服务3.4 查看httpd服务状态3.5 防火墙…

Qt设置软件使用期限【新版防修改系统时间】

在工业软件或其他领域中&#xff0c;经常会对软件进行授权&#xff0c;软件需要付费进行有期限的使用。以下是我用Qt设计的设置软件使用期限的两种方案。 主体思想&#xff1a; 1.软件需要绑定机器&#xff0c;让用户无法通过复制在另一台机器上运行。 2.由厂家提供激活码供用户…

【JavaEE】多线程(线程安全问题)

有些代码在单个线程环境下执行正确&#xff0c;如果同样的代码在多个线程下同时执行可能就会出现问题&#xff0c;这个就是线程安全问题&#xff08;或者称线程不安全问题&#xff09;&#xff0c;简而言之就是&#xff1a;线程安全问题是由于多线程出现的问题&#xff0c;原因…

NodeJs 桌面开发学习 electron.js (一)

今天开始学习NodeJs 关于 桌面应用的内容&#xff0c;长期目标是 React electron 实现一个桌面应用。今天先实现一个简单的目标&#xff0c;搭建一个Electron ts 项目架构&#xff0c;并实现主业务线程 和前端渲染线程的交互一、代码结构和配置例子项目结构大致如下&#xff…