iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
DevOps

今天不學遺傳學,跟著Kubernetes種豌豆系列 第 24

Day24. CKA考題練習:建立service account, clusterrole 並綁定身分於pod

  • 分享至 

  • xImage
  •  

題目:建立 service account (名稱: ithome),透過 cluster role (名稱: ithome-role) 授予此Service account權限能在叢集內list, get 及 watch Pods,其綁定物件 ClusterRoleBinding(名稱: ithome-role-binding),最後建立pod (名稱: ithome),使用image:nginx及service account(ithome)於預設的namespace


列出需建立的objects,被依賴的事物先建立,選擇以命令式的指令處理,這樣通常能加快完成時間,若需較豐富選項則輔以敘述式文件處理

  1. service account:無指定namespace,將會位於default
  • kubectl create serviceaccount ithome
  1. clusterrole:需有list, get 和watch pods的權限
  • kubectl create clusterrole ithome-role --verb=get,list,watch --resource=pods
  • 可以下選項 -h取得指令說明
    https://ithelp.ithome.com.tw/upload/images/20240828/20168178fxPa7azuWP.png
  • 檢查權限內容
    https://ithelp.ithome.com.tw/upload/images/20240828/20168178IYiV0XDV7e.png
  1. clusterRole binding:將前2者做綁定,注意serviceaccount格式需包含namespace
  • kubectl create clusterrolebinding ithome-role-binding --clusterrole=ithome-role --serviceaccount=default:ithome
  1. Pod:使用此serviceaccount,由於指令無此選項可指定service account,因此先假執行指令後匯出成底板文件
  • kubectl run ithome --image=nginx --dry-run=client -o yaml > ithome-pod.yaml
    • 假執行,並以yaml形式匯出結果 --dry-run=client -o yaml
    • 存成文件 > ithome-pod.yaml
  • 進入文件編輯:vi ithome-pod.yaml
  • 在spec底下新增serviceAccountName
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: ithome
  name: ithome
spec:
  serviceAccountName: ithome # 新增此欄位
  containers:
  - image: nginx
    name: ithome
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
  • 使用此檔案建立pod:kubectl apply -f ithome-pod.yaml
  • 確認成功設定serviceaccount於pod
    https://ithelp.ithome.com.tw/upload/images/20240828/201681787fWgz4SAEu.png

上一篇
Day23. CKA考題練習:備份etcd
下一篇
Day25. CKA考題練習:建立NetworkPolicy與測試
系列文
今天不學遺傳學,跟著Kubernetes種豌豆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言