쿠버네티스는 클러스터 내부에 가상 네트워크를 구성해서 사용하는데 이때 kube-proxy 이외에 네트워킹 관련한 애드온을 사용한다.
AWS, Azure, Google 클라우드와 같은 서비스에서 제공하는 쿠버네티스를 사용한다면 별도의 네트워킹 애드온을 사용하지 않더라도 각 클라우드 벤더에서 구현되어 있다.
쿠버네티스를 직접 보유 중인 서버들에 설치해서 구성을 하려면 네트워킹 관련 애드온을 설치해서 사용해야 한다.
네트워킹 애드온의 종류는 ACI, Calico, Canal, Cilium, CNI-Genie, Contiv, Flannel, Multus, NSX-T, Nuage, Romana, WeaveNet 등이 있고, OCI의 CNI(Container Network Interface)를 구현하고 있다면 다른 애드온들도 사용이 가능하다.
Security Context
보안 컨텍스트 개념
쿠버네티스의 파드나 컨테이너에 대한 접근 제어 설정(Access Control Setting)이나 특수 권한(Privilege)를 설정하는 기능을 제공한다.
파드 또는 컨테이너의 권한 부여, 환경 설정 접근을 정의하는 securityContext 필드를 사용한다.
파드 또는 컨테이너 내의 securityContext 필드는 컨테이너 프로세스들이 사용하는 사용자(runAsUser)와 그룹(fsGroup), 가용량, 권한 설정, 보안 정책(SELinux/AppArmor/Seccomp)을 설정하기 위해 사용된다.
PodSecurityPolicy 객체는 관련 필드들에 대한 기본값들을 포함하여 파드가 시스템 내로 받아들여지기 위해 구동될 때의 조건들 집합을 정의한다.
파드 보안 정책 통제는 선택적인 입장 승인 컨트롤러로서 구현된다.
Pod Security Policy 스펙
kind:PodSecurityPolicymetadata:name:examplespec:privileged:false# Don't allow privileged pods!# The rest fills in some required fileds.seLinux:rule:RunASAnysupplementalGroups:rule:RunAsAnyrunAsUser:rule:RunAsAnyfsGroup:rule:RunAsAnyvolumes:-'*'