[15주차] 쿠버네티스

siyeon kim·2022년 11월 3일
1

kt aivle

목록 보기
19/24

쿠버네티스 개요


1. 간단한 리눅스 명령어

  • cd
  • ls
  • echo
  • cp
  • chmod
  • VI 편집기 사용

2. 컨테이너

  • os 가상화 기술
  • 리눅스 커널 공유
  • GuestOS 없음 - 가상머신과의 차이점, 빠르다

3. Docker

  • 컨테이너 엔진, 관리하고 실행하는 도구
  • 컨테이너 실행을 위해서 dockerfile, image 필요

1) dockerfile

  • 이미지 생성을 위한 레시피 파일
  • dockrfile(레시피) > image(틀) > container(붕어빵)

2) docker image

  • 서비스 운영에 필요한 프로그램, 소스코드, 라이브러리 등을 묶는 형태
  • docker file 을 사용하여 생성
  • docker image를 이용해 container 실행가능
  • url 방식으로 관리
    ex) ubuntu : 도커허브에 있는 최선버전 ubuntu 이미지
    docker.io/library/nginx:latest

3) 컨테이너 오케스트레이션

  • 배포/복제/장애복구 등 총괄적으로 관리하는것

4) 컨테이너 오케스트레이터

  • 컨테이너 오케스트레이션을 해주는 도구
  • 종류 : kubernetes, Docker Swam, AWS ECS...

4. Kubernetes 아키텍처

1) 마스터노드의 구성요소

API server
  • 명령어를 수행하기 위해 api로 접근, api를 사용할 수 있게 해주는 프로세스
  • 핵심
scheduler
  • pod 생성명령이 있을 경우 어떤 Node에 배포할지 결정
controller Managers
  • controller 관리 , 클러스터의 상태를 조절하는 object
etcd
  • 클러스터의 구성 데이터를 저장하는 저장소, 없으면 복구 불가
  • 고가용성, 주기적 관리 필요

2) 워커노드의 구성요소

container Runtime
  • 컨테이너 실행, 이미지 관리
    ex) docker, CRI-O ...
kubelet
  • work node의 선장, 작업반장
  • 작업 지시, 작업 보고서 보내기 (api server 에게)
Kube-proxy
  • 각 노드간의 통신을 담당

쿠버네티스 컨테이너 배포, 통신, 볼륨관리


1. 배포유형

1) all-in-one single-node installation

  • 한개 노드에 마스터와 워커노드 동시에 수행
  • 서비스 단계에서 사용하면 안됨 -> 다같이 망가질 수 있음
  • test시 사용

2) single-node etcd,single-master and multi-worker installation

  • 좀더 세부화
  • 마스터와 워커노드 분리
  • 마스터노드에 이상 발생시 복구 불가 -> 서비스단계에서 불안함

3) single-node etcd,multi-master and multi-worker installation

  • 마스터노드 여러개 하지만 etcd 1개

4) multi-node etcd,multi-master and multi-worker installation

  • 마스터 여러개, etcd 여러개

2. 배포순서

  • container runtime 설치 > kubernetes > master & worker 연동

3. kubernetes object

  • 상태 관리 역할
    ex) Pod, Service, Volume(데이터저장장치), Namespace(드라이브개념)

4. kubernetes Controller

  • 클러스터 상태 확인후 필요한 경우 오브젝트를 생성, 변경 요청
  • 현재 상태를 정의된 상태에 가깝게 유지하려는 특징
    현재 상태(p=2) -> 정의한 상태(p=3)

controller 기능

1) Auto Healing
2) Auto scaling
3) Update & Rollback
4) Job : 한번 실행하고 종료되어져야함

5. Pod == Container 그룹

  • 가장 작은 최소 단위 Object
  • container를 만드는 통
  • 자가복구기능 없음 -> container 관리를 받아야함

1) ReplicaSet

  • pod 개수 유지
  • controller로부터 pod 관리
  • template안의 내용을 근거로 배로

2) namespace

  • 단일 클러스터 내 리소스 그룹 격리를 위한 오브젝트
  • 기본적으로는 cluster에 defalut namesapce

3) Deployment

  • 개수 유지 관리
  • ReplicaSet 관리, 배포를 더욱 세밀하게 관리
profile
사회에 선한 영향을 미치고 싶은 개발자

0개의 댓글