Kubernetes 알아보기 시작


GKE는 오픈소스 컨테이너 조정 플랫폼 Kubernetes를 기반으로 합니다. 이 사이트의 문서 중 상당수는 사용자가 기본 Kubernetes 개념과 용어에 이미 익숙하다고 가정합니다. 아직 익숙하지 않으면 이 페이지를 통해 시작하는 데 도움이 되는 권장 자료 링크와 함께 Kubernetes 기본 개요를 빠르게 확인할 수 있습니다.

주요 개념

다음은 GKE 문서 전반에서 자주 사용되는 주요 개념들입니다. 이는 Kubernetes 개념 전체를 포괄하는 목록은 아니며, 더 많은 내용을 알고 싶으시다면 Kubernetes 문서 및 추천 자료에서 관련 주제를 확인하실 수 있습니다.

노드 및 클러스터

모든 Kubernetes 워크로드는 노드에서 실행됩니다. GKE에서 노드는 Compute Engine 가상 머신(VM)입니다. 다른 Kubernetes 플랫폼에서 노드는 물리적 또는 가상 머신일 수 있습니다. 각 노드는 Kubernetes 컨트롤 플레인에서 관리되며 포드를 실행하는 데 필요한 모든 구성요소를 포함합니다. 클러스터는 컨테이너화된 애플리케이션을 배포하는 단일 항목으로 함께 처리할 수 있는 노드 집합입니다.

Kubernetes 문서에서 자세히 알아보세요.

네임스페이스

Kubernetes 네임스페이스는 예를 들어 여러 애플리케이션 팀이 단일 클러스터에서 워크로드를 실행하는 경우와 같이 클러스터 내의 포드 및 서비스 등의 리소스를 추가로 그룹화하고 선택하는 메커니즘을 제공합니다.

Kubernetes 문서에서 자세히 알아보세요.

포드

Kubernetes에서 컨테이너화된 애플리케이션은 포드 내에서 실행됩니다. 포드는 Kubernetes에서 만들고 관리할 수 있는 배포 가능한 최소 컴퓨팅 단위입니다. 포드에는 하나 이상의 컨테이너가 포함되어 있습니다. 포드가 여러 컨테이너(예: 애플리케이션 서버 및 프록시 서버)를 실행할 때 컨테이너는 단일 항목으로 관리되며 포드의 리소스를 공유합니다.

Kubernetes 문서에서 자세히 알아보세요.

컨트롤러

Kubernetes 컨트롤러는 "각 포드에서 이 컨테이너를 사용하여 이 클러스터에서 이 포드를 3개 실행하도록 지정"하는 경우와 같이 사용자가 지정한 원하는 상태에 따라 클러스터 및 워크로드 상태를 추적 및 관리합니다. 각 컨트롤러는 다음을 비롯하여 서로 다른 Kubernetes 리소스 유형을 추적합니다.

  • 배포: 배포복제본이라고 부르는 하나 이상의 동일한 포드를 나타내는 Kubernetes 객체입니다. 배포는 클러스터 노드 간에 분산된 포드의 여러 복제본을 실행합니다. 배포는 실패하거나 응답하지 않는 포드를 자동으로 교체합니다.
  • StatefulSet: StatefulSet는 배포와 비슷하지만 각 포드에 대해 영구적인 고유 ID를 유지합니다. StatefulSets는 영구 상태를 갖는 애플리케이션(스테이트풀(Stateful) 애플리케이션)에서 유용할 수 있습니다.
  • DaemonSets: Kubernetes DaemonSet를 사용하면 일부 또는 전체 노드에 기본 포드를 추가할 수 있습니다. 이러한 서비스는 로그 수집 데몬 또는 모니터링 데몬과 같은 워크로드에 대한 "도우미" 서비스인 경우가 많습니다.
  • ReplicaSets: ReplicaSet는 동일한 포드 집합입니다. ReplicaSet는 일반적으로 배포 중에 관리됩니다.

Kubernetes 문서에서 자세히 알아보세요.

Kubernetes 서비스

기본적으로 포드가 실행 중인 클러스터 노드를 제어할 수 없으므로 포드에 안정적인 IP 주소가 포함되지 않습니다. Kubernetes에서 실행되는 애플리케이션의 IP 주소를 가져오려면 Kubernetes 서비스라는 포드 외에도 네트워킹 추상화를 정의해야 합니다. Kubernetes 서비스는 포드 집합에 안정적인 네트워킹 엔드포인트를 제공합니다. 여기에는 클러스터 외부에서 애플리케이션에 도달할 수 있도록 외부 IP 주소를 제공하는 LoadBalancer 서비스를 포함하여 여러 유형의 서비스가 있습니다.

Kubernetes에는 또한 DNS 이름(예: helloserver.default.cluster.local)을 서비스에 할당하는 내부 주소 확인을 위한 기본 제공되는 DNS 시스템이 포함됩니다. 따라서 클러스터 내의 포드가 안정적인 주소를 사용하여 클러스터의 다른 포드에 도달할 수 있습니다. 이 DNS 이름은 Cloud Shell에서와 같이 클러스터 외부에서 사용할 수 없습니다.

Kubernetes 문서에서 자세히 알아보세요.

스토리지

애플리케이션이 포드 수명을 넘어서 존재하는 데이터를 저장해야 하는 경우(스테이트풀(Stateful) 애플리케이션), Kubernetes PersistentVolume 객체를 사용하여 이 스토리지를 프로비저닝할 수 있습니다. GKE에서 PersistentVolume 스토리지는 Compute Engine 디스크로 지원됩니다. 상응하는 포드가 종료될 때 삭제되는 임시 스토리지를 사용하도록 선택할 수도 있습니다.

Kubernetes 문서에서 자세히 알아보세요.

Kubernetes 컨트롤 플레인

Kubernetes 컨트롤 플레인은 클러스터의 전체 상태를 관리하는 시스템 구성요소 집합입니다. 여기에는 kubectl 및 기타 도구를 사용하여 클러스터 및 애플리케이션과 상호작용할 수 있게 해주는 Kubernetes API 서버, 사용 가능한 노드에서 포드를 예약하는 스케줄러, 클러스터 상태를 추적 및 관리하는 컨트롤러가 포함됩니다. GKE에서 컨트롤 플레인은 Google Cloud에 의해 제공 및 관리됩니다.

Kubernetes 문서에서 자세히 알아보세요.

역할 기반 액세스 제어(RBAC)

Kubernetes에는 클러스터 및 리소스 액세스를 위한 승인 정책을 만들 수 있게 해주는 역할 기반 액세스 제어(RBAC) 메커니즘이 포함되어 있습니다. GKE를 사용할 때는 애플리케이션 보안을 위해 Kubernetes RBAC 및 Google Cloud의 Identity and Access Management를 조합해서 사용하는 경우가 많습니다.

Kubernetes 문서에서 자세히 알아보세요.

이 섹션에서는 Kubernetes에 대해 자세히 알아보기 위한 추천 리소스 링크를 제공합니다. 특히 공식 Kubernetes 웹사이트인 Kubernetes.io에는 Kubernetes에 관한 모든 것에 대해 신뢰할 수 있는 다양한 최신 자료가 포함되어 있습니다.

가이드 및 튜토리얼

  • Kubernetes 개요: Kubernetes에 대한 완전한 개념 개요입니다. Kubernetes가 필요한 이유와 그 기능은 Kubernetes가 해결할 수 있는 문제에 대한 유용한 소개 문서입니다.
  • 튜토리얼: Kubernetes 기본 학습: 단순한 예시와 함께 Kubernetes의 기본을 연습할 수 있습니다.
  • 튜토리얼: 컨테이너 소개: 간단한 예시 애플리케이션과 함께 컨테이너 및 컨테이너 조정에 대해 알아보고, 마지막에는 GKE에서 예시를 실행할 수 있습니다.
  • Kubernetes 튜토리얼: 기본 범위를 지나서 학습을 심화하려면 이 Kubernetes 문서 섹션에서 제공되는 튜토리얼을 통해 스테이트풀(Stateful) 애플리케이션부터 보안까지 다양한 주제를 살펴볼 수 있습니다.

참조 문서

  • Kubernetes 용어집: 포괄적이고 표준화된 Kubernetes 용어 목록입니다. Kubernetes 용어의 의미가 확실하지 않으면 여기를 참조하세요.

동영상

  • Google과 함께 Kubernetes 학습: 개발자 및 운영자를 위한 자료와 함께 여러 다른 Kubernetes 특성과 기능을 다루는 Google에서 제공되는 동영상 가이드 재생 목록입니다.

만화

  • Kubernetes 만화: 뜻밖의 조력가가 된 지혜의 여신(그리고 컨테이너화된 애플리케이션)의 도움으로 Kubernetes의 역사와 CI/CD(지속적 통합 및 배포)에서의 활용 방법을 살펴볼 수 있습니다.