当前位置: 首页 > news >正文

K8S第一讲 Kubernetes之Secret详解

Secret详解

secret用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。

  • 用户可以创建自己的secret,系统也会有自己的secret。
  • Pod需要先引用才能使用某个secret

secret仅提供有限安全

  • 协作时防止机密数据泄露
  • 为secret资源设置单独安全访问策略

Pod有2种方式来使用secret:

    1. 作为volume的一个域被一个或多个容器挂载
    1. 在拉取镜像的时候被kubelet引用。
创建一个secret.yaml文件,内容用base64编码:明文显示容易被别人发现,这里先转码。
echo -n 'admin' | base64
YWRtaW4=
echo -n '1f2d1e2e67df' | base64
MWYyZDFlMmU2N2Rmvim secret.yml
---
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque  #模糊
data:username: YWRtaW4=password: MWYyZDFlMmU2N2Rm

或者

apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque  #模糊
stringData:username:  adminpassword:  1f2d1e2e67df
kubectl apply -f secret.yml  创建
kubectl get secrets
kubectl get secret mysecret -o yaml

pod使用

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: testredisimage: daocloud.io/library/redisvolumeMounts:    #挂载一个卷- name: foo     #这个名字需要与定义的卷的名字一致mountPath: "/etc/foo"  #挂载到容器里哪个目录下,随便写readOnly: truevolumes:     #数据卷的定义- name: foo   #卷的名字这个名字自定义secret:    #卷是直接使用的secret。secretName: mysecret   #调用刚才定义的secret

映射secret key到指定的路径

 volumes:- name: foosecret:secretName: mysecretitems:   #定义一个items- key: username   #将那个key重新定义到那个目录下path: my-group/my-username  #相对路径,相对于/etc/foo的路径

以环境变量的形式使用Secret

---
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: testredisimage: daocloud.io/library/redisenv:  #定义环境变量- name: SECRET_USERNAME   #创建新的环境变量名称valueFrom:secretKeyRef:     #调用的key是什么name: mysecret       #变量的值来自于mysecretkey: username       #username里面的值
spec:containers:- name: testredisimage: daocloud.io/library/redisenvFrom:  #定义环境变量- secretRef:     #调用的key是什么name: mysecret       #变量的值来自于mysecret- configMapRef: name: configmap1

Deployment配置

apiVersion: v1
kind: Deployment
metadata:name: myDeployment
spec:selector:matchLabels:app: redisDeployreplicas: 1template:metadata:labels:app:  redisDeployspec:containers:- name:  redisDeployimage:  daocloud.io/library/redisenvFrom:- configMapRef:name: myconfigMap- secretRef:name: mysecret       
apiVersion: v1
kind: Service
metadata:name: myService
spec:ports:- name: httpport: 8080targetPort: 8080nodePort: 31080selector:app: redisDeploytype: NodePort
http://www.lryc.cn/news/61427.html

相关文章:

  • 每周一算法:高精度减法
  • Session使用和原理分析图与实现原理-- 代码演示说明 Session 的生命周期和读取的机制代码分析
  • 在win10系统中安装anaconda
  • 【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching
  • 代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
  • 爬虫为什么需要多线程
  • 下一代智能座舱风口下,“超级”Tier 1强势崛起
  • 第 三 章 UML 类图
  • java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单
  • 内网穿透实现在外远程连接RabbitMQ服务
  • 抖音数字人主播app
  • 亚马逊平台使用API接口通过关键字搜索商品
  • 《花雕学AI》用ChatGPT创造猫娘角色:人工智能角色扮演聊天对话的风险与对策
  • 软件测试常规测试过程模型——V模型与X模型
  • feign-starter
  • FVM初启,Filecoin生态爆发着力点在哪?
  • 对比度亮度调整与通道分离合并
  • Java终止线程
  • Qt的Qss用法
  • 数塔dp -A
  • Spring MVC 接收 json 和返回 json (14)
  • 注释和关键字
  • 第一次参加CSDN周赛,这体验很难说···
  • 8.DRF组件之认证、权限
  • 初识Tkinter弹窗
  • 设计模式之责任链模式(C++)
  • 音游判定原理详解——从触摸屏幕到判定音符【Project SEKAI攻略】
  • 【论文阅读】Self-Paced Boost Learning for Classification
  • 通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值
  • 流程图拖拽视觉编程--概述