中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes中Service Account與Secret的示例分析

發布時間:2021-12-24 16:06:31 來源:億速云 閱讀:395 作者:小新 欄目:大數據

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

一:Service Account與Secret數據結構
kubernetes中Service Account與Secret的示例分析

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

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

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

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

三:Service Account相關概念

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

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

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

4.當創建pod的時候,如果沒有指定一個service account,系統會自動在該pod所在的namespace下為其指派一個default service account.
kubernetes中Service Account與Secret的示例分析

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

b.    如果Pod的spec.serviceAccount域指定了default以外的ServiceAccount,而該ServiceAccount沒有事先被創建,則該Pod操作失敗;

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

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


四:Secret相關概念


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

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

kubernetes中Service Account與Secret的示例分析

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

以上是“kubernetes中Service Account與Secret的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜阳市| 于都县| 阿坝| 望奎县| 嘉荫县| 浦城县| 洛宁县| 靖远县| 手机| 民丰县| 汾阳市| 五莲县| 南昌市| 崇明县| 福贡县| 磐石市| 玛沁县| 陈巴尔虎旗| 曲麻莱县| 乌兰浩特市| 青河县| 饶河县| 遂川县| 桑植县| 西藏| 呼伦贝尔市| 阿拉尔市| 蚌埠市| 抚远县| 嘉祥县| 新巴尔虎左旗| 卢氏县| 灵川县| 崇义县| 林芝县| 宝山区| 万全县| 格尔木市| 紫金县| 武夷山市| 邯郸县|