網站首頁 編程語言 正文
Secret
Secret 是一種包含少量敏感信息例如密碼、令牌或密鑰的對象。 這樣的信息可能會被放在 Pod 規約中或者鏡像中。 使用 Secret 意味著你不需要在應用程序代碼中包含機密數據。(這段話來自官網)
使用過程與ConfigMap類似
與ConfigMap不同的是:
ConfigMap用于明文,Secret用于加密文件,如:密碼
ConfigMap是沒有類型的,但是Secret有類型(type)
常用的Secret類型:
Secret的創建
還是使用比較常用的兩種方式:kubectl和配置文件方式來創建
先創建一個實驗環境:包含一個文件夾和兩個文件
[root@k8s-master01 ~]# cd /secret/ [root@k8s-master01 secret]# echo -n 'yyang' > user.txt [root@k8s-master01 secret]# echo -n '1qaz2wsx' > passwd.txt [root@k8s-master01 secret]# ls passwd.txt user.txt
利用上面的環境創建以一個Secret
[root@k8s-master01 secret]# kubectl create secret generic db-user-pass \ > --from-file=user.txt \ > --from-file=passwd.txt secret/db-user-pass created
查看這個secret的內容:類型為Opaque;內容中data下的內容已經用密文表示
[root@k8s-master01 secret]# kubectl get secrets NAME TYPE DATA AGE db-user-pass Opaque 2 68s default-token-7h7vk kubernetes.io/service-account-token 3 5h51m [root@k8s-master01 secret]# kubectl get secrets db-user-pass -o yaml apiVersion: v1 data: passwd.txt: MXFhejJ3c3g= user.txt: eXlhbmc= kind: Secret metadata: creationTimestamp: "2022-03-02T07:36:41Z" name: db-user-pass namespace: default resourceVersion: "40252" uid: a46ab9ed-c67c-4195-a5d6-f38dfc3d2016 type: Opaque
這個值是可以解密出來的:郵件前邊的數據即為之前的加密數據
[root@k8s-master01 secret]# echo "MXFhejJ3c3g=" | base64 -d 1qaz2wsx您在 /var/spool/mail/root 中有新郵件
kubectl方式創建效果類似,就只給出官方的例子了(注意用單引號)
kubectl create secret generic db-user-pass \ --from-literal=username=devuser \ --from-literal=password='S!B\*d$zDsb='
還有一種是配置文件方式,這種方式是先把賬號密碼之類的數據轉換為加密數據,然后創建一個yaml文件,隨后執行yaml文件;這種方法比較麻煩就不說了,可以看一下官方的例子:
使用配置文件創建Secret
應用于docker私有倉庫的secret
pull私有倉庫的鏡像時需要驗證的情況,可以為docker私有倉庫創建相應的secret。格式如下:
我就不寫具體的創建了
kubectl create secret docker-registry secret-tiger-docker \ --docker-username=user \ --docker-password=pass113 \ --docker-email=tiger@acme.com \ --docker-server=string
以上幾項內容分別的倉庫的用戶名、密碼、郵箱和倉庫地址
當你創建完這個secret后使用的時候可以放在spec下,與containers同級
spec: imagePullSecrets: - name: secret-tiger-docker containers: - image: 私有倉庫地址 name: nginx
這樣下載私有倉庫鏡像時就不需要密碼了。
注意的點:注意命名空間隔離問題
還有一個常用的類型就是tls,創建方式類似,使用也類似。就不寫了,我也沒有合適的環境。
其他
其他方面Secret與ConfigMap相近,請看這里
ConfigMap
原文鏈接:https://yyang.blog.csdn.net/article/details/123230018
相關推薦
- 2023-03-22 利用tkinter改變下拉列表(Combobox)的選項值_python
- 2022-09-26 Python實現自動化域名批量解析分享_python
- 2022-09-01 ASP.NET?Core通用主機實現托管服務_實用技巧
- 2023-11-20 帶寬單位是什么?帶寬單位詳解?帶寬單位如何換算?
- 2022-10-14 Sklearn中predict_proba函數用法及原理詳解
- 2022-10-08 ASP.NET堆和棧一之基本概念和值類型內存分配_實用技巧
- 2022-02-21 windows11安裝docker desktop
- 2022-05-06 基于python分享極坐標下的幾類典型曲線_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支