제12장. 네트워크 정책
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
네트워크 보안 제어 는 의도하지 않은 접근을 차단하고, 측면 이동을 중단하며, 조직 정책을 시행함으로써 워크로드를 보호하는 데 사용됩니다. 이 모든 작업은 네트워크 수준에서 수행될 수 있어 서로 다른 팀과 타사 애플리케이션 간 정책 조정의 필요성을 줄여줍니다. 기존 접근 방식은 쿠버네티스( ) 클라우드 네이티브 환경에서 구현하기 어렵습니다. 포드(Pod)와 서비스 IP는 예고 없이 변경될 수 있으며, 모든 포드는 일반적으로 동일한 CIDR 범위를 차지하므로 외부 네트워크 보안 장치는 서로 다른 워크로드의 트래픽을 구분할 수 없습니다.1
Cilium의 네트워크 정책 기능은 쿠버네티스 네트워크 정책( )의 확장으로서, 네임스페이스, 워크로드 라벨, 서비스 등 기존 쿠버네티스 개념과 깊이 통합된 클러스터 내 전통적 제어 수단의 대체 솔루션입니다.
이 장의 모든 매니페스트는 책의 GitHub 저장소 내 chapter12 디렉터리에 있습니다. 필요한 파일명은 참조 시 명시하며, 여기서는 중요한 부분만 보여드립니다.
기본 정책 생성
클러스터를 생성하고 Cilium을 배포하는 것부터 시작해 보겠습니다. 네트워크 정책 사용을 위해 특별한 구성은 필요하지 않지만, kind를 사용한 배포 예시는 이전 장을 참고하세요.
간단한 웹 서버(webserver.yaml)를 배포하고 네트워크 정책으로 보호하겠습니다. 이전 장과 마찬가지로 NGINX를 사용하되, 포트 8080에서는 텍스트를, 포트 9113에서는 메트릭스를 제공하도록 구성합니다. 포드에 app.kubernetes.io/name: webserver 라벨을 지정하여 나중에 정책에서 참조할 수 있도록 합니다. 또한 두 가지 서비스를 배포합니다: 포트 80을 포트 8080에 매핑하는 ClusterIP 서비스인 webserver와 포트 9113에 매핑하는 헤드리스 서비스인 webserver-metrics입니다. 테스트 클러스터에 배포하고 테스트 포드를 사용하면 네트워크 정책이 적용되지 않았을 때 어떤 응답을 하는지 확인할 수 있습니다:
$kubectlapply--filenamechapter12/webserver.yamldeployment.apps/webserver createdconfigmap/nginx-config createdservice/webserver createdservice/webserver-metrics created$kubectlruntest-it--rm--imagenicolaka/netshoot--bashtest:~#curl-sm1webserverHello from Cilium Up and Running!test:~#curl-swebserver-metrics:9113/metrics|grep^nginx_http_requests_totalnginx_http_requests_total ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access