K8S 구성요소 크게보면
- Obejct : 가장기본적인 구성단위
- object spec : obejct 설정값을 정의한 내용(yaml 파일형식)
- basic object : k8s에 의해 배포/관리 되는 가장 기본적인 오브젝트
- Controller : Basic Object들을 생성/관리하는 추가 기능을 가진 것
1. 객체(Object)
가장 기본적인 구성단위
쿠버네티스가 애플리케이션을 배포하기 위해 원하는 상태(desired state)
-> '상태'를 관리하기 위한 대상
즉, 기본 오브젝트를 가지고 애플리케이션을 설정하고 배포함
1) 오브젝트 스펙 (Object Spec)
오브젝트의 특성(설정정보)를 정의한 내용
CLI를 통해서 오브젝트 생성시 인자로 전달해서 정의하거나 yaml파일로 Spec정의
오브젝트의 종류와 원하는 상태 입력
생성,조회,삭제로 관리할 수 있어서 rest api로 쉽게 노출가능
접근권한 설정도 가능해서 누가 어떤 오브젝트에 요청을 할 수 있는지도 정의할 수 있음
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers: -
name: busybox
image: busybox:1.25
2) 기본 오브젝트(Basic object)
쿠버네티스에 의해서 배포 및 관리되는 기본적인 오브젝트
컨테이너화 되서 애플리케이션 위의 워크로드를 기술함
- Pod - 컨테이너화된 애플리케이션
- Volume - 디스크
- Service - 로드밸런서
- Namespace - 패키지명
2. 컨트롤러(Controller)
오브젝트를 생성하고 관리하는 역할
즉, 오브젝트들을 좀더 편리하게 관리하기 위해서 사용
- Replication Controller(RC) - Pod를 지정된 수로 유지 및 관리하는 역할
- Replication Set - RC의 새버전
- DeemonSet - Replication Set의 작성과 갱신 (blue/green deployment)
- Job
- StatefulSet
- Deployment
3. 템플릿(Template) -> yaml 파일형식
이때 이들의 설정파일들(object spec)의 템플릿
즉, 객체나 컨트롤러가 어떤 상태였는지를 yaml파일형식으로 정의한다
---
apiVersion : v1
Kind : Pod
apiVersion : 사용하려는 api버전 -> 어떤 버전인지 정확하게 식별하는게 가장 중요해서 제일 먼저나옴
kind : 어떤 종류의 객체 혹은 컨트롤러에 대한 작업인지 명시 (ex : pod, deployment, ingress)
4. 쿠버네티스의 배포방식
쿠버네티스는 애플리케이션을 배포하기 위해
원하는 상태(desired state)를 다양한 오브젝트(object)에
라벨Label을 붙여 정의(yaml)하고 API 서버에 전달하는 방식을 사용한다
예를 들어, 컨테이터 2개를 배포하고 80포트로 오픈해줘! 라는 작업을 위해
쿠버네티스한테 해줘야하는 명령은
컨테이너를 pod로 감싸고(obejct),
type=app, tpye=web 이라는 라벨을 달아줘(label),
그리고 라벨이 달린 pod가 2개 있는지 체크해,
그런데 없으면 deployment Spect에 정의된 템플릿을 참고해서 pod생성 해줘
그리고 해당 라벨을 가진 pod를 바라보는 가상의 서비스ip를 만들고, 외부80랑 연결해줘
출처
https://galid1.tistory.com/413?category=767345
'🌴 DevOps > Docker & K8s' 카테고리의 다른 글
쿠버네티스 구성요소(4/5) - Service 구성 및 종류/kube-proxy (0) | 2020.04.20 |
---|---|
쿠버네티스 구성요소(3/5) - Volume 구성 및 특징 (0) | 2020.04.20 |
쿠버네티스 구성요소(2/5) - Pod 구성 및 특징 (0) | 2020.04.20 |
쿠버네티스 아키텍쳐(2/2) (마스터노드/워커노드) (0) | 2020.04.19 |
쿠버네티스 아키텍쳐(1/2) (클러스터/마스터/노드) (0) | 2020.04.19 |
쿠버네티스 기본개념(컨테이너 운영환경/Container Orchestration /k8s특징) (0) | 2020.04.19 |