개발/기술

Kubernetes Object

kwony 2022. 2. 22. 21:30

 

Object

 

Kubernetes 상에서 말하는 Object 는 Kubernetes 시스템 상에서 영속성을 지니고 있는 엔티티(Entity) 말한다. Kubernetes는 이 Entity를 이용해 클러스터의 상태를 나타낸다. Object가 나타내는 것은

 

  • 컨테이너화돼 동작하는 애플리케이션이 무엇인지
  • 애플리케이션이 사용하는 리소스는 어떤 것이 있는지
  • 애플리케이션과 관련된 정책은 무엇인지

 

에 대한 것이다. 처음에는 Object라는 개념이 와닿지 않을 수 있는데 Kubernetes 가 하는 역할이 무엇인지 알아가다 보면 당연히 필요한 개념이라고 익히게된다. 

 

Object를 생성하면 Kubernetes는 지속적으로 동작하며 오브젝트가 존재하고 명세한 대로 동작하도록한다. 개발자는 오브젝트를 생성/변경/삭제 해서 시스템내에서 애플리케이션이 어떻게 동작하는지 전달할 수 있다. 대부분의 경우 yaml 파일을 통해서 생성/변경 할 오브젝트를 전달한다. 

 

예시로 Deployment는 클러스터에서 애플리케이션을 나타내는 Object중 하나다. Deployment라는 Object 내의 Spec에는 생성할 Replica 개수를 표현한다. Kubernetes는 Deployment Object의 스펙을 읽고 해당하는 replica만큼 Pod을 만들게 된다. 

 

Basic Objects

 

Pod

 

하나 이상의 컨테이너 집합이며 공유하는 저장소와 네트워크 리소스를 갖고 있다. Pod은 가장 기본이 되는 단위인데 쉽게 본다면 현대 컴퓨터에선 로지컬 호스트로 VM이나 Cloud APP이 Pod에 해당한다고 보면 된다. 

 

Service

 

Pod의 논리적인 집합이며 Pod 내에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이다. 같은 클러스터 내에선 Service의 이름으로 접근이 가능하다. Service를 만들면 Pod이 자동으로 생긴다. 

 

Deployment

 

Pod과 Replica에 대한 선언적 업데이트를 제공하는 Object다. 

 

 

https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/

 

Understanding Kubernetes Objects

This page explains how Kubernetes objects are represented in the Kubernetes API, and how you can express them in .yaml format. Understanding Kubernetes objects Kubernetes objects are persistent entities in the Kubernetes system. Kubernetes uses these entit

kubernetes.io