k8s-sercret

概念:

Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。

由于创建 Secret 可以独立于使用它们的 Pod, 因此在创建、查看和编辑 Pod 的工作流程中暴露 Secret(及其数据)的风险较小。 Kubernetes 和在集群中运行的应用程序也可以对 Secret 采取额外的预防措施, 例如避免将敏感数据写入非易失性存储。

Secret 类似于 ConfigMap 但专门用于保存机密数据,其实只是简单的base64编码 一下

secret 的信息其实是存储在etcd下以base64编码形式存储

secret 并不是很安全:

1.https://zhuanlan.zhihu.com/p/671053753

2.https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/#information-security-for-secrets

使用场景

你可以将 Secret 用于以下场景:

Kubernetes 控制面也使用 Secret; 例如,引导令牌 Secret 是一种帮助自动化节点注册的机制。

Secret 的类型

创建 Secret 时,你可以使用 Secret 资源的 type 字段,或者与其等价的 kubectl 命令行参数(如果有的话)为其设置类型。 Secret 类型有助于对 Secret 数据进行编程处理。

Kubernetes 提供若干种内置的类型,用于一些常见的使用场景。 针对这些类型,Kubernetes 所执行的合法性检查操作以及对其所实施的限制各不相同。

内置类型 用法
Opaque 用户定义的任意数据(默认类型
kubernetes.io/service-account-token 服务账号令牌
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 create secret <secretName> --help

解密:

复制代码
#1查看secret data 数据
kubectl get secret <secretName> -o jsonpath='{.data}' -n <Namespace>
# 2 base64解密想看的数据
echo '<your secretData>' | base64 -d 
相关推荐
隔壁小红馆几秒前
docker 部署pgsql
运维·docker·容器
2501_924064111 小时前
2025年优测平台:微服务全链路性能瓶颈分析与最佳实践
微服务·云原生·架构·性能瓶颈·全链路性能
石小千2 小时前
Ubuntu24.04 安装Docker
运维·docker·容器
scriptsboy2 小时前
Halo Docker 迁移方法
运维·docker·容器
隐语SecretFlow2 小时前
【隐语Secretflow】一文速通基于可信执行环境 (TEE) 的零信任计算系统
云原生·kubernetes·开源
R.lin3 小时前
Docker核心原理详解
运维·docker·容器
MarkHD3 小时前
车辆TBOX科普 第70次 AUTOSAR Adaptive、容器化与云原生的融合革命
云原生·wpf
Dobby_053 小时前
【k8s】集群安全机制(一):认证
运维·安全·kubernetes
测试人社区-小明3 小时前
测试领域的“云原生”进化:Serverless Testing
人工智能·科技·云原生·面试·金融·serverless·github
阿基米东3 小时前
Traefik:为云原生而生的自动化反向代理
运维·云原生·自动化