K8S学习之基础二十九:K8S中的secret

devtools/2025/3/17 20:02:32/

K8S中的secret

​ configMap是用来存放明文数据的,如环境变量、配置文件等,对于蜜柑数据,如密码、私钥等数据,就要用到secret类型。

​ secret可选参数:

​ 1、generic:通用类型,通常用于存储密码数据

​ 2、tls:用于存储私钥和证书

​ 3、docker-registry:保存docker仓库的认证信息

​ secret的类型:

​ 1、ServiceAccount:用于被 serviceaccount 引用。serviceaccout 创建时 Kubernetes 会默认创建对应的 secret。Pod 如果使用了 serviceaccount,对应的 secret 会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中

​ 2、Opaque:base64编码格式的Secret,用来存储密码、秘钥等,可通过base64 --decode解码获得原始数据,安全性较弱

​ 3、kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证信息。**

kubectl create secret generic password --from-literal=password=1qaz\!QAZ
[root@mast01 secret]# kubectl get secret
NAME                   TYPE                             DATA   AGE
password               Opaque                           1      35s
[root@mast01 secret]# kubectl describe secret password
Name:         password
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
password:  8 bytes

​ 使用secret的两种方式:

​ 1、通过环境变量

# 创建pod,加载将secret加载到环境变量
vi pod-secret.yaml 
kind: Pod
metadata:name: pod-cm
spec:containers:- name: busyboximage: 172.16.80.140/busybox/busybox:latestcommand: [ "/bin/sh", "-c", "sleep 3600" ]env:- name: PASSWORD        #定义环境变量valueFrom:secretKeyRef:name: password    #指定secret的名字key:  password    #指定secret中的keyrestartPolicy: Never[root@mast01 secret]# kubectl get pods -owide
NAME                               READY   STATUS    RESTARTS   AGE   IP               NODE     NOMINATED NODE   READINESS GATES
nfs-provisioner-7559c6b4fc-nbmb6   1/1     Running   0          93m   10.244.140.65    node02   <none>           <none>
pod-cm                             1/1     Running   0          47s   10.244.196.130   node01   <none>           <none>
[root@mast01 secret]# kubectl exec -it pod-cm -- /bin/sh
/ # env
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
HOSTNAME=pod-cm
SHLVL=1
HOME=/root
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
PWD=/
PASSWORD=1qaz!QAZ        # 加载secret到环境变量,直接明文,不安全

​ 2、通过volume挂载

# 创建pod,加载将secret加载到环境变量
vi pod-secret-volume.yaml 
apiVersion: v1
kind: Pod
metadata:name: pod-secret
spec:containers:- name: busyboximage: 172.16.80.140/busybox/busybox:latestcommand: [ "/bin/sh", "-c", "sleep 3600" ]volumeMounts:- name: secret-volumemountPath: /etc/secretreadOnly: truevolumes:- name: secret-volumesecret:secretName: passwordrestartPolicy: Never[root@mast01 secret]# kubectl get pods -owide
NAME                               READY   STATUS    RESTARTS   AGE    IP               NODE     NOMINATED NODE   READINESS GATES
nfs-provisioner-7559c6b4fc-nbmb6   1/1     Running   0          107m   10.244.140.65    node02   <none>           <none>
pod-secret                         1/1     Running   0          7s     10.244.196.132   node01   <none>           <none>
[root@mast01 secret]# kubectl exec -it pod-secret -- /bin/sh
/ # cd /etc/secret
/etc/secret # ls
password
/etc/secret # cat password
1qaz!QAZ/etc/secret #           # 明文密码,不安全
文章来源:https://blog.csdn.net/xiaofengkang/article/details/146231678
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/devtools/167908.html

相关文章

VSCode 自动格式化:ESLint 与 Prettier

文章目录 前言一、确保插件已正确安装二、配置默认格式化工具方法一&#xff1a;通过 UI 设置方法二&#xff1a;直接修改 settings.json 三、启用保存时自动格式化方法一&#xff1a;通过 UI 设置方法二&#xff1a;直接修改 settings.json 四、配置 ESLint 自动修复方法一&am…

基于银河麒麟系统ARM架构安装达梦数据库并配置主从模式

达梦数据库简要概述 达梦数据库&#xff08;DM Database&#xff09;是一款由武汉达梦公司开发的关系型数据库管理系统&#xff0c;支持多种高可用性和数据同步方案。在主从模式&#xff08;也称为 Master-Slave 或 Primary-Secondary 模式&#xff09;中&#xff0c;主要通过…

贝叶斯分层回归(Bayesian Hierarchical Regression)是一种基于贝叶斯统计理论的数据分析方法

贝叶斯分层回归&#xff08;Bayesian Hierarchical Regression&#xff09;是一种基于贝叶斯统计理论的数据分析方法&#xff0c;它在多个领域都有广泛应用。以下是对其原理、模型构建步骤和优势的介绍&#xff1a; 原理 贝叶斯分层回归将传统回归模型中的参数视为随机变量&a…

1140:验证子串--next.data()、KMP和find

1140&#xff1a;验证子串--KMP 题目 解析next.data()KMP代码Find代码 题目 解析 对于字符串的匹配常见的KMP算法【面试常考】 KMP中需要注意的是&#xff1a;应该从下标1开始遍历&#xff0c;因为下标0前面无值&#xff0c;不能匹配next 固在循环外应初始next[0]0;//易忘点 …

python_巨潮年报pdf下载

目录 前置&#xff1a; 步骤&#xff1a; step one: pip安装必要包&#xff0c;获取年报url列表 step two: 将查看url列表转换为pdf url step three: 多进程下载pdf 前置&#xff1a; 1 了解一些股票的基本面需要看历年年报&#xff0c;在巨潮一个个下载比较费时间&…

SpringMVC——REST简介及入门案例

REST简介 REST&#xff08;Representational State Transfer&#xff09;即表现层状态转移&#xff0c;是一种基于HTTP协议的网络应用程序的架构风格。它强调客户端和服务器之间的交互操作&#xff0c;通过对资源的表现形式进行操作来实现对资源的管理。REST风格的API设计具有简…

SQL Server表数据变更捕获的5种方法及实战对比

在数据驱动的业务场景中&#xff0c;准确捕获SQL Server表数据变更是数据审计、业务分析、系统集成等场景的必备能力。本文深入解析五种主流变更捕获方案&#xff0c;并提供企业级方案选型指南&#xff0c;帮助开发者构建高效可靠的变更追踪体系。 一、变更捕获核心技术原理 …

9种Python数据可视化方案,让财务数据焕发生命力

想象一下&#xff1a;你即将向董事会展示季度财务报告&#xff0c;面对的是一群已经看过无数PPT的高管。你是选择用普通的柱状图和折线图&#xff0c;还是用能够直观展示收入、支出、利润动态关系的交互式仪表板&#xff1f; 本文将通过一个完整的Python财务数据可视化案例&am…