쿠버네티스 오브젝트
쿠버네티스로 애플리케이션을 배포하고 관리하기
어떤 애플리케이션을 얼마나 어디에 어떤 방식으로 배포할 것인가 = 사용자 의도
사용자 의도를 정의하는 방법은 쿠버네티스 오브젝트 - 오브젝트 종류에 따라 정의할 수 있는 속성이 달라진다.
표현 방식 : YAML 형식
전달 방식 : REST API
쿠버네티스 오브젝트는 클러스터 상태를 결정한다.
사용자가 어떻게 쿠버네티스 오브젝트를 정의하느냐에 따라 쿠버네티스 상태가 결정된다.
즉 쿠버네티스 오브젝트를 이용해서 개발팀의 구조, 배포 정책, 프로세스를 표현할 수 있다.
쿠버네티스 오브젝트란?
쿠버네티스 클러스터를 이용해 애플리케이션을 배포하고 운영하기 위해 필요한 모든 쿠버네티스 리소스.
- 어떤 애플리케이션을 - Pod
- 얼마나 - ReplicaSet
- 어디에 - Node, Namespace
- 어떤 방식으로 배포할 것인가 - Deployment
- 트래픽을 어떻게 로드밸런싱할 것인가. - Service, Endpoints
spec 과 status
spec
- 사용자가 원하는 오브젝트 상태
- 선언할 수 있는 속성은 오브젝트 종류마다 다르다
status
- 오브젝트가 쿠버네티스 클러스터에 생성되면 쿠버네티스는 오브젝트 정보에 status 필드를 추가하고 현재 실행중인 오브젝트의 상태 정보를 알려준다.
서로의 필드 관계
spec : 쿠버네티스가 달성해야 할 목표 === status : 오브젝트의 현재 상태
- 사용자가 쿠버네티스 오브젝스 yaml 파일을 작성한다.
- 쿠버네티스 api 를 이용해서 쿠버네티스에 생성을 요청한다.
- 쿠버네티스 api server 가 오브젝트 파일의 spec 파일을 읽고 오브젝트를 생성한다.
- 쿠버네티스 ControllerManage가 spec과 status를 비교하면서 게속 조정하고 상태를 업데이트한다.