Kubernetes PodのCapabilities
KubernetesにPodを作るとき,securityContextフィールドにコンテナの各種capabilitiesを追加,あるいは削除することができます. 例えば下のようなPodサンプルYamlファイルがあります.
$ tee capabilities-pod.yaml <<-'EOF' apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: myshell image: "ubuntu:14.04" command: - /bin/sleep - "300" securityContext: capabilities: add: - NET_ADMIN <<---- これ EOF $ kubectl create -f capability-test-pod.yaml # Podを作る pod "mypod" created $ kubectl exec mypod -- capsh --print # コンテナのcapabilitiesの中にやはりcap_net_admin出てきた Current: = ...,cap_net_admin, ..., cap_setfcap+eip ... capsh --printコマンドはコンテナのcapabilitiesを表示させるコマンドです. そもそも Container Capabilitiesはなんですか? それを気になって,調べていました.
Linux Capabilities Container Capabilitiesを説明する前にまずLinux Capabilitiesを知る必要があります. Linux Kernel 2.