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를 유지합니다. StatefulSet는 영구 상태가 있는 애플리케이션(스테이트풀(Stateful) 애플리케이션)에 유용할 수 있습니다.
  • DaemonSet: Kubernetes DaemonSet를 사용하면 일부 또는 모든 노드에 기본 포드를 추가할 수 있습니다. 이러한 서비스는 로그 수집 데몬이나 모니터링 데몬과 같이 워크로드의 '도우미' 서비스인 경우가 많습니다.
  • ReplicaSet: ReplicaSet는 동일한 포드의 집합입니다. ReplicaSet는 일반적으로 배포의 일부로 관리됩니다.

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

Kubernetes 서비스

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

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

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

스토리지

애플리케이션에서 Pod의 전체 기간 동안 존재하는 데이터를 저장해야 하는 경우 (스테이트풀 애플리케이션) 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의 역사와 이를 지속적 통합 및 배포에 사용하는 방법을 알아보세요.