CKAD試験勉強シリーズです。
SecurityContext は PodSpec(spec.securityContext
)とContainer(spec.containers[*].securityContext
)のどちらでも設定することができます。
基本的にはこれらはスコープが異なります。
spec: securityContext: # Podスコープで適用される runAsUser: 1010 containers: - name: hoge image: busybox securityContext: # hogeで適用される(Podスコープより強い) runAsUser: 1011 - name: fuga image: busybox # securityContextが設定されていないのでPodスコープのものが適用される
最初は単に Pod と Container のスコープの違いだけかと思っていましたが、どうやら指定できるフィールドが異なるようです。
PodSpecのSecurityContext
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
ContainerのSecurityContext
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core
試験で出そうな範囲に絞ると以下の違いがあります。
フィールド | PodSpec | Container |
---|---|---|
runAsUser | ○ | ○ |
runAsGroup | ○ | ○ |
privileged | ✕ | ○ |
capabilities | ✕ | ○ |
権限周りはContainerのフィールドに入れないといけないようです。
spec: securityContext: # Podスコープで適用される runAsUser: 1010 # ここではcapabilitiesは指定できない containers: - name: hoge image: busybox securityContext: capabilities: # capabilitiesはcontainersの中で指定 add: ["SYS_TIME"] - name: fuga image: busybox
一旦ここまで。ありがとうございました。