Kubernetes——存儲(chǔ)之Secret

一逻炊、Secret介紹

在Kubernetes集群資源中键闺,Secret對(duì)象與ConfigMap對(duì)象類似汗捡,但它主要是用于存儲(chǔ)小片敏感的需要加密的數(shù)據(jù)恒傻,例如密碼脸侥,token和SSH key密鑰等等。這類數(shù)據(jù)當(dāng)然也可以存放在Pod的定義中或者鏡像中盈厘,但是放在Secret中是為了更方便的控制如何使用數(shù)據(jù)睁枕,更加安全和靈活,并減少信息暴露的風(fēng)險(xiǎn)沸手。在secret中存儲(chǔ)的數(shù)據(jù)都需要通過(guò)base64進(jìn)行轉(zhuǎn)換加密后存放外遇。Secret解決了密碼、token契吉、密鑰等敏感數(shù)據(jù)的配置問(wèn)題跳仿,使用Secret可以避免把這些敏感數(shù)據(jù)以明文的形式暴露到鏡像或者Pod Spec中。用戶可以創(chuàng)建自己的secret栅隐,系統(tǒng)也會(huì)有自己的secret塔嬉。

Secret一旦被創(chuàng)建,則可以通過(guò)以下三種方式來(lái)使用:

  • 在創(chuàng)建Pod時(shí)租悄,通過(guò)為pod指定Service Account來(lái)自動(dòng)使用該Secret谨究,主要用于API Server鑒權(quán)的過(guò)程;
  • 通過(guò)掛載Secret到Pod來(lái)使用它泣棋。即作為volume的一個(gè)域被一個(gè)或多個(gè)容器掛載胶哲;
  • Docker鏡像下載時(shí)使用,通過(guò)指定Pod的spc.ImagePullSecret來(lái)引用潭辈。一般用于私有倉(cāng)庫(kù)登錄拉取鏡像鸯屿。即在拉取鏡像的時(shí)候被kubelet引用。

Kubernetes集群中有內(nèi)建的Secrets:即由ServiceAccount創(chuàng)建的API證書附加的秘鑰把敢,Kubernetes會(huì)自動(dòng)生成的用來(lái)訪問(wèn)apiserver的Secret寄摆,所有Pod會(huì)默認(rèn)使用這個(gè)Secret與apiserver通信。這是Kubernetes 默認(rèn)的行為修赞,也可以通過(guò)自定義的方式禁用或者創(chuàng)建我們所需要的Secret婶恼。
通過(guò)kubectl get secrets即可查看默認(rèn)的secrets

Secret有三種類型

  • Opaque:使用base64編碼存儲(chǔ)信息,可以通過(guò)base64 --decode解碼獲得原始數(shù)據(jù)柏副,因此安全性弱勾邦。
  • kubernetes.io/dockerconfigjson:用于存儲(chǔ)docker registry的認(rèn)證信息。
  • kubernetes.io/service-account-token (即Service Account):用于被 serviceaccount 引用割择。serviceaccout 創(chuàng)建時(shí)眷篇,Kubernetes 會(huì)默認(rèn)創(chuàng)建對(duì)應(yīng)的 secret。Pod 如果使用了 serviceaccount荔泳,對(duì)應(yīng)的 secret 會(huì)自動(dòng)掛載到 Pod 的/run/secrets/kubernetes.io/serviceaccount目錄中蕉饼。Service Account 是內(nèi)置secret虐杯,使用 API 憑證自動(dòng)創(chuàng)建和附加secret。Kubernetes 自動(dòng)創(chuàng)建包含訪問(wèn)API憑據(jù)的secret椎椰,并自動(dòng)修改pod以使用此類型的secret厦幅。如果需要,可以禁用或覆蓋自動(dòng)創(chuàng)建和使用API憑據(jù)慨飘。但是,如果需要的只是安全地訪問(wèn)apiserver译荞,則推薦這樣的工作流程瓤的。

二、Secret的使用

1吞歼、Service Account

用于被 serviceaccount 引用圈膏。serviceaccout 創(chuàng)建時(shí) Kubernetes 會(huì)默認(rèn)創(chuàng)建對(duì)應(yīng)的 secret。Pod 如果使用了 serviceaccount篙骡,對(duì)應(yīng)的 secret 會(huì)自動(dòng)掛載到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目錄中稽坤。

[root@k8s-master01 ~]# kubectl run kevin_nginx --image nginx
deployment "nginx" created
 
[root@k8s-master01 ~]# kubectl get pods
NAME                           READY     STATUS    RESTARTS   AGE
kevin_nginx-3137573019-md1u2   1/1       Running   0          13s
 
[root@k8s-master01 ~]# kubectl exec kevin_nginx-3137573019-md1u2 ls /run/secrets/kubernetes.io/serviceaccount
ca.crt
namespace
token

2、Opaque Secret

A糯俗、創(chuàng)建
Opaque 類型的數(shù)據(jù)是一個(gè) map 類型尿褪,要求 value 是 base64 編碼格式:

$ echo-n"admin" | base64
YWRtaW4=

$ echo-n"1f2d1e2e67df" | base64
MWYyZDFlMmU2N2Rm

secrets.yml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: MWYyZDFlMmU2N2Rm
  username: YWRtaW4=

B、使用方式

  • 1)得湘、將 Secret 掛載到 Volume 中
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: seret-test
  name: seret-test
spec:
  volumes:
  - name: secrets
    secret:
      secretName: mysecret
  containers:
    - image: hub.atguigu.com/library/myapp:v1
      name: db
      volumeMounts:
      - name: secrets
        mountPath: "/etc/secrets"
        readOnly: true
  • 2)杖玲、將 Secret 導(dǎo)出到環(huán)境變量中
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: pod-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: pod-deployment
    spec:
      containers:
        - name: pod-1
          image: hub.atguigu.com/library/myapp:v1
          ports:
          - containerPort: 80
          env:
          - name: TEST_USER
            valueFrom:
              secretKeyRef:
                name: mysecret
                key: username
          - name: TEST_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mysecret
                key: password

3、kubernetes.io/dockerconfigjson

kubernetes.io/dockerconfigjson用于存儲(chǔ)docker registry的認(rèn)證信息淘正,可以直接使用kubectl create secret命令創(chuàng)建:

[root@k8s-master01 ~]# kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
secret/myregistrykey created

在創(chuàng)建 Pod 的時(shí)候摆马,通過(guò) imagePullSecrets 來(lái)引用剛創(chuàng)建的 myregistrykey:

apiVersion: v1
kind: Pod
metadata:
  name: data
spec:
  containers:
    - name: data
      image: janedoe/awesomeapp:v1
  imagePullSecrets:
    - name: myregistrykey

參考:
https://www.cnblogs.com/kevingrace/p/10410114.html

https://www.cnblogs.com/LiuQizhong/p/11608944.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鸿吆,隨后出現(xiàn)的幾起案子囤采,更是在濱河造成了極大的恐慌,老刑警劉巖惩淳,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕉毯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡黎泣,警方通過(guò)查閱死者的電腦和手機(jī)恕刘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抒倚,“玉大人褐着,你說(shuō)我怎么就攤上這事⊥信唬” “怎么了含蓉?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵频敛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我馅扣,道長(zhǎng)斟赚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任差油,我火速辦了婚禮拗军,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蓄喇。我一直安慰自己发侵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布妆偏。 她就那樣靜靜地躺著刃鳄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钱骂。 梳的紋絲不亂的頭發(fā)上叔锐,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音见秽,去河邊找鬼愉烙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛张吉,可吹牛的內(nèi)容都是我干的齿梁。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼肮蛹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勺择!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起伦忠,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤省核,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后昆码,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體气忠,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年赋咽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旧噪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脓匿,死狀恐怖淘钟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陪毡,我是刑警寧澤米母,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布勾扭,位于F島的核電站,受9級(jí)特大地震影響铁瞒,放射性物質(zhì)發(fā)生泄漏妙色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一慧耍、第九天 我趴在偏房一處隱蔽的房頂上張望身辨。 院中可真熱鬧,春花似錦芍碧、人聲如沸栅表。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至萧落,卻和暖如春践美,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背找岖。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工陨倡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人许布。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓兴革,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蜜唾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杂曲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容