NetworkPolicy에 Cilium 사용하기
NetworkPolicy에 Cilium 사용하기 (Use Cilium for NetworkPolicy)
이 페이지는 NetworkPolicy에 Cilium을 사용하는 방법을 보여줘요. Cilium에 대한 배경 지식은 Cilium 소개를 읽어보세요.
출처: 문서
본문
시작하기 전에
Kubernetes 클러스터가 있어야 하고 kubectl 명령줄 도구가 클러스터와 통신하도록 구성되어 있어야 해요. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 최소 두 개 있는 클러스터에서 실행하는 것을 권장해요. 아직 클러스터가 없다면 minikube를 이용해 만들거나, 아래 Kubernetes 플레이그라운드 중 하나를 사용할 수 있어요.
버전을 확인하려면 kubectl version을 입력해요.
기본 테스트를 위해 Minikube에 Cilium 배포
Cilium에 쉽게 익숙해지려면 Cilium Kubernetes 시작하기 가이드를 따라 minikube에서 Cilium의 기본 DaemonSet 설치를 수행할 수 있어요.
minikube를 시작하려면 v1.5.2 이상이 필요하며, 다음 인자로 실행해요.
minikube version
minikube version: v1.5.2
minikube start --network-plugin=cni
minikube에서는 CLI 도구로 Cilium을 설치할 수 있어요. 그러려면 먼저 다음 명령으로 최신 버전의 CLI를 다운로드해요.
curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
그런 다음 다운로드한 파일을 다음 명령으로 /usr/local/bin 디렉터리에 추출해요.
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz
위 명령들을 실행한 후, 다음 명령으로 Cilium을 설치할 수 있어요.
cilium install
Cilium은 그러면 클러스터 구성을 자동으로 감지하고 성공적인 설치를 위한 적절한 컴포넌트를 생성·설치해요. 컴포넌트는 다음과 같아요.
- Secret
cilium-ca의 Certificate Authority(CA)와 Hubble(Cilium의 관찰성 계층)용 인증서 - 서비스 계정
- 클러스터 역할
- ConfigMap
- 에이전트 DaemonSet과 Operator Deployment
설치 후 cilium status 명령으로 Cilium 배포의 전체 상태를 볼 수 있어요. status 명령의 예상 출력은 여기에서 확인할 수 있어요.
시작하기 가이드의 나머지 부분은 예시 애플리케이션을 사용해 L3/L4(즉 IP 주소 + 포트) 보안 정책과 L7(예: HTTP) 보안 정책을 모두 어떻게 강제하는지 설명해요.
프로덕션용 Cilium 배포
프로덕션용 Cilium 배포에 대한 자세한 지침은 다음을 참고해요. Cilium Kubernetes 설치 가이드
이 문서는 상세한 요구 사항, 지침, 예시 프로덕션 DaemonSet 파일을 포함해요.
Cilium 컴포넌트 이해하기
Cilium으로 클러스터를 배포하면 kube-system 네임스페이스에 파드가 추가돼요. 이 파드 목록을 보려면 다음을 실행해요.
kubectl get pods --namespace=kube-system -l k8s-app=cilium
다음과 비슷한 파드 목록을 볼 수 있어요.
NAME READY STATUS RESTARTS AGE
cilium-kkdhz 1/1 Running 0 3m23s
...
cilium 파드는 클러스터의 각 노드에서 실행되며, Linux BPF를 사용해 그 노드의 파드로/에서 오가는 트래픽에 네트워크 정책을 강제해요.
다음 단계
클러스터가 실행되면 네트워크 정책 선언을 따라 Cilium으로 Kubernetes NetworkPolicy를 사용해 볼 수 있어요. 재미있게 즐기시고, 질문이 있으면 Cilium Slack 채널로 연락해 주세요.