Hello World/IaC
[K8S] Kubernetes Object 와 Manifest 작성 방법
Run DaramG
2022. 4. 17. 23:48
쿠버네티스(이하 k8s) 클러스터에 application을 배포하기위해서는 k8s에 기술된 정의대로 object를 생성해야하고 이 때, yaml 형식의 manifest파일을 작성하게 된다.
외부와 통신하는 서버를 배포한다고 했을때, 기본적으로 자주 사용되는 k8s object는 아래와 같다.
1. Deployment - Pod 배포를 제어하는 object. pod replicas, resouce, 배포 방식같은것들을 제어한다.
2. Service - Pod들을 하나의 ip로 묶어줌. pod에 고정된 주소로 접근할 수 있게 하는 역할. 다양한 어플리케이션을 올리고 통신이 필요한경우 사용.
3. Ingress : 외부의 클러스터 pod 서비스에 접근관리 위한 ojeject. 일반적으로 http를 관리함.
yaml 파일에 기술하는 옵션은 object마다 다르지만 아래 4개는 모든 리소스 정의에 공통적으로 존재한다.
- apiVersion - 이 오브젝트를 생성하기 위해 사용하고 있는 쿠버네티스 API 버전이 어떤 것인지
- kind - 어떤 종류의 오브젝트를 생성하고자 하는지
- metadata - object에 이름을 부여하여, object를 구분지을 데이터
- spec - 오브젝트에 대해 어떤 상태를 의도하는지
- object spec 에 대한 포맷은 object마다 다르고, 아래 쿠버네티스 API 레퍼런스 페이지에 오브젝트에 대한 모든 spec 포맷을 살펴볼 수 있다.
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#-strong-api-overview-strong-