k8s基礎學習-serviceaccount


什么是service account? 顧名思義,相對於user account(比如:kubectl訪問APIServer時用的就是user account),service account就是Pod中的Process用於訪問Kubernetes API的account,它為Pod中的Process提供了一種身份標識。相比於user account的全局性權限,service account更適合一些輕量級的task,更聚焦於授權給某些特定Pod中的Process所使用。

service account作為一種resource存在於Kubernetes cluster中,我們可以通過kubectl獲取當前cluster中的service acount列表:

kubectl get serviceaccount --all-namespaces

我們查看一下kube-system namespace下名為”default”的service account的詳細信息:

 kubectl describe serviceaccount/default -n kube-system

我們看到service account並不復雜,只是關聯了一個secret資源作為token,該token也叫service-account-token,該token才是真正在API Server驗證(authentication)環節起作用的:

 

 sa就像POD,secret,configmap一樣都是資源,作用在單獨的命名空間,為每個命名空間自動創建一個默認的SA。

可以通過將不同的sa賦值給pod來控制每個pod可以訪問的資源。

API服務器要求客戶端在服務器上執行操作之前對自己進行身份認證,POD通過發送/var/run/secret/kubernetes.io/serviceaccount/token文件來進行身份認證。

每個pod都與一個ServiceAccount相關聯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM