What is Kubernetes?

컨테이너와 관련된 클라우드 네이티브 소프트웨어의 표준이 된 Kubernetes. 실제로 클라우드 네이티브 컴퓨팅 재단(CNCF)의 가장 최근 설문조사에 따르면 프로덕션 환경에서 Kubernetes 사용이 78%까지 증가했습니다. 그러나 단기간에 인기가 급상승하는 모든 기술이 그렇듯이, Kubernetes가 무엇인지, Kubernetes와 컨테이너화에 따른 보안 고려 사항은 무엇인지에 대해 많은 혼란이 있습니다. 사례: CNCF의 동일한 설문조사에서 응답자의 40%는 컨테이너 사용/배포의 어려움으로 보안을 꼽았고, 38%는 복잡성을 문제점으로 꼽았습니다.

컨테이너 배포를 강화하는 작업을 담당하는 보안 엔지니어에게는 극복해야 할 학습 곡선이 분명히 있습니다. 이해를 돕기 위해 Kubernetes가 무엇인지, 어떻게 작동하는지 살펴보고 몇 가지 기본적인 Kubernetes 보안 개념을 살펴보겠습니다.

무료 평가판 Kubernetes 보안 가이드

What is Kubernetes?

Definition

Kubernetes는 컨테이너 워크로드를 오케스트레이션하고 관리하는 데 사용되는 플랫폼입니다. 도커 컨테이너). 

2014년 처음 출시된 이후, 구글 개발팀에 뿌리를 두고 있는 오픈소스 CNCF 졸업 프로젝트인 Kubernetes는 DevOps 및 클라우드 네이티브 업계에서 가장 인기 있는 도구 중 하나가 되었습니다.

Kubernetes를 이해하기 위한 전제 조건은 먼저 컨테이너를 이해하는 것입니다. 간단히 말해, 컨테이너는 애플리케이션을 실행하는 데 필요한 모든 종속성을 포함하는 경량 소프트웨어 패키지입니다. 컨테이너는 다양한 환경에서 애플리케이션을 안정적으로 실행하는 문제를 해결합니다. 컨테이너는 가볍고 휴대성이 뛰어나기 때문에 인기가 급증하고 있으며 최신 마이크로서비스 및 웹 애플리케이션 개발에 필수적입니다.

단일 컨테이너를 사용할 때는 많은 관리와 오케스트레이션이 필요하지 않지만, 대규모 애플리케이션은 확장할 수 있어야 합니다. 최신 개발팀은 컨테이너 배포 프로세스를 자동화하고 확장할 수 있어야 합니다. 이 때문에 Kubernetes와 같은 컨테이너화된 워크로드 관리 도구가 필요합니다. Kubernetes는 부족한 관리 및 오케스트레이션 기능을 제공합니다.

"관리 및 오케스트레이션"이라는 표현은 Kubernetes에 대해 논의할 때 많이 사용됩니다. 그러나 이는 구체적인 내용에 대해 많은 것을 알려주지는 않습니다. 간단히 말해, Kubernetes는 로드 밸런싱, 구성 관리, 스토리지 리소스 구성, 자동 리소스 할당(예. 컨테이너당 CPU 및 RAM), 컨테이너 배포의 확장 또는 축소에 대해 설명합니다.

Kubernetes vs Docker

Docker와 Kubernetes라는 주제에 대해 많은 혼란이 있을 수 있습니다. 하지만 실제로는 매우 간단합니다:

  • Docker는 컨테이너를 생성하고 실행하기 위한 플랫폼입니다. 유일한 컨테이너 플랫폼은 아니지만 가장 인기 있는 플랫폼입니다.
  • Kubernetes는 Docker 컨테이너를 포함한 여러 컨테이너를 관리하기 위한 도구입니다.
  • 도커는 스웜(Swarm)이라는 Kubernetes와 동일한 기능을 갖춘 도구를 제공합니다.

이 마지막 점이 혼란을 야기할 수 있습니다. Docker는 우연히도 Kubernetes와 유사한 기능을 제공하는 Swarm이라는 도구를 제공합니다. 하지만 관리 및 오케스트레이션 도구로 가장 많이 사용되는 것은 단연 Kubernetes입니다.

중요 Kubernetes 개념 및 용어

컨테이너 외에도 Kubernetes 을 시작할 때 이해해야 할 다른 중요한 개념이 있습니다. 몇 가지 주요 용어를 살펴보겠습니다:

  • K8s. Kubernetes 의 동의어입니다. 개발자는 단어의 첫 글자와 마지막 글자, 그 사이에 있는 글자 수를 조합하여 인기 있는 용어에 대한 약어를 만들기도 합니다. 상호 운용성은 "i14y"가 되고, 로컬라이제이션은 "l10n"이 되며, Kubernetes는 "k8s"가 됩니다.
  • 포드. Kubernetes 에서 배포할 수 있는 가장 작은 단위입니다. 파드는 스토리지 및 네트워킹 리소스를 공유하는 하나 이상의 컨테이너와 컨테이너를 실행하기 위한 사양으로 구성됩니다.
  • 워크로드. Kubernetes 에서 실행하는 애플리케이션(실제로는 포드 세트)입니다. Kubernetes는 업데이트를 배포하고 구성된 워크로드에 따라 파드를 확장합니다.
  • 노드. 워크로드가 실행되는 컴퓨팅 '하드웨어'(RAM과 CPU를 예로 들 수 있습니다)를 노드라고 합니다. '하드웨어'는 라즈베리 파이부터 가상 머신, 물리적 서버에 이르기까지 무엇이든 될 수 있지만, 여기서 핵심은 컴퓨팅 리소스가 노드에서 제공된다는 점입니다. 노드에는 워크로드를 실행하는 워커/미니언 노드와 워커/미니언 노드 집합을 관리하는 마스터 노드의 두 가지 주요 유형이 있습니다.
  • 클러스터. Kubernetes 클러스터는 노드 그룹입니다. 클러스터에서 작업자 노드는 워크로드를 실행하고 마스터 노드는 작업자 노드가 수행하는 작업을 제어합니다.

Kubernetes 의 용도는 무엇인가요?

컨테이너 배포에 대한 코드형 인프라 접근 방식이 유용할 수 있는 곳이라면 어디에서나 Kubernetes를 효과적으로 사용할 수 있습니다. 즉, 애자일 개발 팀과 DevOps 관행에 중점을 두는 팀은 종종 Kubernetes를 사용하여 지속적 통합/지속적 배포(CI/CD) 파이프라인을 자동화합니다. 또한, Kubernetes는 노드의 상태와 리소스 사용률을 모니터링하고 필요에 따라 확장 또는 축소하여 클라우드 네이티브 애플리케이션을 자동으로 확장할 수 있습니다.

중요 Kubernetes 보안 개념

물론 Kubernetes는 자동화 및 확장성 측면에서 가치를 더해주지만, 보안 팀에게는 새로운 고민거리를 추가하기도 합니다. 앱과 서비스가 안전하게 배포되도록 하려면 어떻게 해야 할까요? 항상 그렇듯이 위협 모델과 위험 성향을 이해하는 것에서 시작하지만, 시작하는 데 도움이 되는 몇 가지 기본 사항이 있습니다.

  • 클라우드 네이티브 보안의 4C- 에서는 Kubernetes 클라우드 네이티브 보안에 대한 4가지 계층적 접근 방식인 4C를 소개합니다: 코드, 컨테이너, 클러스터 ,클라우드/코로케이션/기업 데이터센터입니다. 각 계층에서 보안 모범 사례를 준수해야 합니다. 이는 여러 수준에서 다른 의미를 갖습니다. 예를 들어, 전송 중인 데이터의 암호화를 적용하고 필수 네트워크 포트로만 액세스를 제한하고, 컨테이너에서 권한 있는 사용자를 허용하지 않으며, 구성 가능한 Kubernetes 클러스터 구성 요소를 강화하고, 클라우드 서비스 제공업체의 보안 모범 사례를 따르는 것이 좋습니다.
  • 파드 보안 정책. Kubernetes 포드에는 3가지 기본 보안 정책이 있습니다. 환경을 적절히 보호하려면 사용성과 보안의 절충점을 이해하고 그에 따라 행동해야 합니다.
    • 권한이 있습니다. 가장 광범위한 수준의 권한입니다. 이 정책으로 알려진 권한 에스컬레이션이 가능합니다.
    • 기준선/기본값. 권한 있는 사용자와 제한된 사용자 사이의 중간 지점입니다. 알려진 권한 상승을 방지합니다.
    • 제한됨. Kubernetes 파드 강화 모범 사례에 따르면, 이것은 3가지 기본 정책 중 가장 제한적인 정책입니다.
  • 파드 보안 컨텍스트. 파드의 보안 컨텍스트는 런타임에 보안 설정을 구성한다. 여기에는 액세스 제어, 권한 있는 상태로 실행 여부, 읽기 전용 파일 시스템 마운트 등과 같은 측면이 포함됩니다. 이것이 파드 보안 정책과 매우 비슷하게 들릴 수 있으며 실제로 관련이 있다. 보안 컨텍스트는 런타임에 일어나는 일이며, 보안 정책을 통해 클러스터 내에서 사용되는 컨텍스트에 대한 매개변수를 정의할 수 있습니다.
  • 비밀. 코드형 인프라 도구는 훌륭하지만, OAuth 토큰이나 비밀번호를 YAML 파일에 보관하고 싶지는 않을 것입니다. 비밀은 이러한 종류의 민감한 정보를 저장하는 Kubernetes 방식입니다.

또한 컨테이너 가시성 및 취약성 스캔을 위한 계획을 수립하여 문제를 신속하게 해결하고 관련 표준을 계속 준수할 수 있도록 스캔하는 것도 중요합니다. 컨테이너 취약성 스캔 및 보안 상태 평가를 시작하려면 지속적인 컨테이너 가시성 및 컴플라이언스(PDF)를 읽어보시기 바랍니다.

다음 단계 Kubernetes

이제 컨테이너 배포를 자동으로 제어하고 관리하는 Kubernetes의 작동 방식을 높은 수준에서 이해했으니, 다음 단계로 넘어가서 k8을 안전하게 배포할 수 있습니다. 컨테이너, Kubernetes 및 서버리스 인프라로 보안을 구현하는 방법에 대해 자세히 알아보려면 클라우드 보안 전문가 Hillel Solow가 진행하는 최신 클라우드 애플리케이션에 보안을 계층화하는 방법 웨비나를 무료로 시청하세요.

×
  피드백
이 웹사이트는 기능 및 분석, 마케팅 목적으로 쿠키를 사용합니다. 이 웹사이트를 계속 이용하면 쿠키 사용에 동의하는 것입니다. 자세한 내용은 쿠키 관련 공지사항을 참조하세요.