🌌[쿠버네티스 아키텍처] 3. API 호출
원하는 상태(desired stats)를 다양한 오브젝트(objects)로 정의(spec)하고 API 서버에 yaml 형식으로 전달한다.
44BIT님의 [초보를 위한 쿠버네티스 안내서] 쿠버네티스 아키텍처 강의를 듣고 정리한 내용입니다.
1. API 호출 방법
원하는 상태(desired stats)를 다양한 오브젝트(objects)로 정의(spec)하고 API 서버에 yaml
형식으로 전달한다.
2. 쿠버네티스의 흐름 요약
위 그림은 지난 글에서 배운 ReplicaSet을 생성하는 흐름을 나타내고 있는데, 사실 이 과정이 쿠버네티트의 전부라고 봐도 된다. 이 과정 속에서 어떤 오브젝트가 있고, 어떤 스펙이 있는지, 그래서 띄우면 어떻게 되는지를 이해하면 쿠버네티스를 사용할 수 있는 것이다.
3. 오브젝트 YAML 명세 작성법
예를 들어 pod 오브젝트를 띄우고 싶을 때 spec을 어떻게 yaml
형식으로 작성하는지 알아보자.
key:value
형식으로 이렇게 명세를 작성하면, API 서버가 이 명세를 보고 ectd에 정보를 저장하고 각 컨트롤러들이 동작을 하는 것이다. 게시글 최상단의 그림은 ReplicaSet의 스펙을 작성하는 예시이다.
아래는 ArgoCD 라는 커스텀 리소스를 어떻게 호출하는지에 대한 예시인데, 어떤 오브젝트이던지 apiVersion
, kind
, metadata
를 작성하는 방법은 동일하다. 그리고 종류에 따라 spec
을 그에 맞게 작성해주면 된다.
세 종류의 API를 호출하는 방법을 알아봤는데, 보다시피 형식 자체는 동일하다. spec
만 각 오브젝트의 스펙으로 작성해주면 되는 것이다.
4. 요약 및 정리
yaml 포맷에 들어가는 내용을 정리를 해보자.
apiVersion : 종류가 많을 수 있다. 배포 버전, 앱의 버전, 네트워크 버전...등등
kine : 오브젝트의 종류를 적어준다. Pod, Depolyment, Service, Ingress..
metadata : name, namespace, label을 설정할 수 있다.
spec : 각종 설정에 대한 정보를 담고 있는데, 어떤 오브젝트냐에 따라 달라질 수 있기 때문에 각 종류의 스펙을 보고 작성해주면 된다.
status : 각종 설정의 현재 최신 상태를 read-only로 관리하는 항목이다. 컨트롤러가 현재상태를 조회할 때 이 status 를 확인한다.
이제 쿠버네티스 안내서의 워드프레스 배포 실습을 해보면 조금 더 감이 올 것 같다.
Last updated