真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

kubernetes中ServiceAccount與Secret的示例分析

這篇文章主要介紹kubernetes中Service Account與Secret的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為沐川企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),沐川網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

一:Service Account與Secret數(shù)據(jù)結(jié)構(gòu)
kubernetes中Service Account與Secret的示例分析

二:Service Account與Secret運(yùn)行機(jī)制
kubernetes中Service Account與Secret的示例分析
1.kubernetes的master節(jié)點(diǎn)由三部分組成kube-apiserver,kube-scheduler和kube-controller-manager。其中controller manager會根據(jù)apiserver的配置信息(--admission-control和--service-account-private-key-file),生成ServiceAccount controller 和token controller.

2.ServiceAccount controller一直監(jiān)聽Service Account和Namespace事件。如果一個(gè)Namespace中沒有default Service Account,那么Service Account Controller就會為該Namespace創(chuàng)建一個(gè)默認(rèn)的(default)的Service Account。

3.Token Controller也監(jiān)聽Service Account的事件,如果發(fā)現(xiàn)新建的Service Account里沒有對應(yīng)的Service Account Secret,則會用API Server私鑰(--service-account-private-key-file指定的文件)創(chuàng)建一個(gè)Token(JWT Token),并用該Token、CA證書(這個(gè)是API Server的CA公鑰證書,來源于controller-manager配置文件中的root-ca-file),Namespace名稱等三個(gè)信息產(chǎn)生一個(gè)新的Secret對象,然后放入剛才的Service Account中;如果監(jiān)聽到的事件是刪除Service Account事件,則自動刪除與該Service Account相關(guān)的所有Secret。此外,Token Controller對象同時(shí)監(jiān)聽Secret的創(chuàng)建、修改和刪除事件,并根據(jù)事件的不同做不同的處理。

4.API Server收到Token以后,采用自己的私鑰(實(shí)際是使用apiserver配置文件中的參數(shù)service-account-key-file指定的私鑰,如果此參數(shù)沒有設(shè)置,則默認(rèn)采用tls-private-key-file指定的參數(shù),即自己的私鑰)對Token進(jìn)行合法驗(yàn)證。

三:Service Account相關(guān)概念

1.    Service Account概念的引入是基于這樣的使用場景:運(yùn)行在pod里的進(jìn)程需要調(diào)用Kubernetes API以及非Kubernetes API的其它服務(wù)。Service Account它并不是給kubernetes集群的用戶使用的,而是給pod里面的進(jìn)程使用的,它為pod提供必要的身份認(rèn)證。

2. 如果kubernetes開啟了ServiceAccount(apiserver配置文件)那么會在每個(gè)namespace下面都會創(chuàng)建一個(gè)默認(rèn)的default的service account。

3.ServiceAccount詳情
kubernetes中Service Account與Secret的示例分析

4.當(dāng)創(chuàng)建pod的時(shí)候,如果沒有指定一個(gè)service account,系統(tǒng)會自動在該pod所在的namespace下為其指派一個(gè)default service account.
kubernetes中Service Account與Secret的示例分析

a.    如果spec.serviceAccount域沒有被設(shè)置,則Kubernetes默認(rèn)為其制定名字為default的Serviceaccount;

b.    如果Pod的spec.serviceAccount域指定了default以外的ServiceAccount,而該ServiceAccount沒有事先被創(chuàng)建,則該P(yáng)od操作失敗;

c.    如果在Pod中沒有指定“ImagePullSecrets”,那么該sec.serviceAccount域指定的ServiceAccount的“ImagePullSecrets”會被加入該P(yáng)od;

d.    給Pod添加一個(gè)新的Volume,在該Volume中包含ServiceAccountSecret中的Token,并將Volume掛載到Pod中所有容器的指定目錄下(/var/run/secrets/kubernetes.io/serviceaccount);
kubernetes中Service Account與Secret的示例分析


四:Secret相關(guān)概念


1.Secret解決了密碼、token、密鑰等敏感數(shù)據(jù)的配置問題,而不需要把這些敏感數(shù)據(jù)暴露到鏡像或者Pod Spec中。Secret可以以Volume或者環(huán)境變量的方式使用。

2.Secret有三種類型:
·Service Account:用來訪問Kubernetes API,由Kubernetes自動創(chuàng)建,并且會自動掛載到Pod的/run/secrets/kubernetes.io/serviceaccount目錄中;
·Opaque:base64編碼格式的Secret,用來存儲密碼、密鑰等;
·kubernetes.io/dockerconfigjson:用來存儲私有docker registry的認(rèn)證信息。

kubernetes中Service Account與Secret的示例分析

我們可以通過Secret保管其它系統(tǒng)的敏感信息,并以Mount的方式將Secret掛載到Container中,然后通過訪問目錄中文件的方式獲取該敏感信息。當(dāng)Pod被API Server創(chuàng)建時(shí),API Server不會校驗(yàn)該P(yáng)od引用的Secret是否存在。一旦這個(gè)Pod被調(diào)用,則kubelet將試著獲取Secret的值,如果Secret不存在或者暫時(shí)無法連接到API Server,則kubelet將按一定的時(shí)間間隔定期重試獲取Secret. 為了使用更新后的secret,必須刪除舊的Pod,并重新創(chuàng)建一個(gè)新的Pod.

以上是“kubernetes中Service Account與Secret的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章標(biāo)題:kubernetes中ServiceAccount與Secret的示例分析
當(dāng)前網(wǎng)址:http://weahome.cn/article/jhjide.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部