昨天主要是針對 user 的介紹,今天主要是針對服務所使用的 ServiceAccount 做介紹。
為服務使用,例如 Prometheus 取得 Node 資訊。
可以透過kubectl create serviceaccount demo-sa
建立serviceAccount
建立完後可以透過 kubectl get serviceaccount
查看建立結果
在建立serviceAccount時不會建立token,會需要透過kubectl create token SERVICE_ACCOUNT_NAME
取得,
在aws EKS 中該token最多只能存活 24hr
取得後即可透過 curl https://master-node-ip:6443/api/v1/pods --insecure --header "Authorization: Bearer 123"
的方式取得資訊
note: 在考試時可以透過關鍵字 "ServiceAccount" "curl" 查看相關語法
如果在沒有設定的情況下,會自動在 /var/run/secrets/kubernetes.io/serviceaccount
mount 配置
在該路徑下會有 ca.crt, namespace, token 等資訊
如果不想自動mount default serviceAccount 會需要在 pod 中加入 automountServiceAccountToken: false
若要在 pod 中修改 serviceAccount 會需要刪除並重建。
參考資料
https://kubernetes.io/docs/tasks/run-application/access-api-from-pod/