-
[kubernetes] 쿠버네티스 - 쿠버네티스 오브젝트 이해하기programing/etc 2020. 2. 17. 22:46
안녕하세요, Einere입니다.
(ADblock을 꺼주시면 감사하겠습니다.)
이번 포스트에서는 쿠버네티스 오브젝트에 대해 알아보도록 하겠습니다.
쿠버네티스 오브젝트
쿠버네티스는 클러스터의 상태를 나타내기 위해 쿠버네티스 오브젝트(이하 쿠베 객체)를 사용합니다.
쿠베 객체에는 다음과 같은 내용을 기술할 수 있습니다.
- 어떤 컨테이너화된 앱이 동작중인지
- 그 앱이 사용할 수 있는 리소스
- 그 앱이 재구동, 업그레이드, 내고장성과 같은 것에 대해 어떻게 동작해야 하는지에 대한 정책
즉, 쿠베 객체는 하나의 "의도를 담은 레코드"라고 할 수 있습니다.
쿠베 객체에 대한 CRUD작업을 수행하기 위해선 쿠버네티스 API를 이용해야 합니다. CLI인 kubectl이나 클라이언트 라이브러리를 사용할 수 있습니다.
스펙(spec)과 상태(status)
모든 쿠베 객체는 스펙과 상태를 가집니다.
- 스펙 : 필수 요소. 의도한 상태. 해당 쿠베 객체가 가지길 원하는 특징.
- 상태 : 옵션 요소. 오브젝트의 실제 상태. 쿠버네티스 시스템에 의해 제공되고 업데이트된다.
쿠버네티스는 스펙과 상태가 동일하도록 노력합니다.
스펙, 상태, 메타데이터(metadata)에 대해 자세한 정보는 쿠버네티스 API 컨벤션을 참고해주세요.
쿠베 객체 기술하기
쿠베 객체는 yaml형식으로 기술됩니다. 쿠베 객체를 생성하기 위해 쿠버네티스 API를 이용할 때, JSON형식으로 데이터를 제공해야 합니다. 그래서 kubectl은 자체적으로 yaml형식의 데이터를 JSON으로 변환합니다.
요구되는 필드
생성하고자 하는 쿠베 객체에 대한 .yaml파일 내에 다음과 같은 필드가 필요합니다.
- apiVersion : 해당 쿠베 객체를 생성하기 위해 사용할 쿠버네티스 API의 버전.
- kind : 생성할 쿠베 객체의 종류.
- metadata : 해당 쿠베 객체를 유니크하게 식별할 수 있는 데이터. 이름, UID, 네임스페이스를 포함한다.
- spec : 해당 쿠베 객체의 의도.
스펙에 대한 포멧은 쿠버네티스 API 레퍼런스를 찹고해주세요.
참고
https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/kubernetes-objects/
'programing > etc' 카테고리의 다른 글
[Git] GitHub과 연동할 때 인증 정보 포함시키는 방법 (0) 2020.06.03 [Kubernetes] API Convention (0) 2020.03.18 [개발환경] 개발 환경에 뭘 써야 할까? (0) 2019.12.16 [Github] README에 뱃지 달기 (0) 2019.12.06 [WebStorm] 원격 배포 환경에서 코딩하기 (0) 2019.11.23 댓글