kubernetes lesson 이론1

문주은·2022년 8월 16일
0

실습 환경 : Windows 환경에서 진행

1. kubernetes architecture

  • 가장 일반적인 case 의 k8s 구조

2. 쿠버네티스(k8s) 정의

  • container를 관리하는 오픈 소스 플랫폼
  • container를 확장할 수 있는 기능을 지원한다.
    (컨테이너 확장 : Pod > container > application )
  • k8s object들은 서로 간의 API 통신을 사용한다.
    -> 현대화된 애플리케이션을 구축하는 것이 k8s로 MSA 구현하기 위한 수단을 제공
  • k8s Goal : MSA 구축

[정리] 쿠버네티스란?

  • 컨테이너화(pod>container>application)된 워크로드와 서비스를 관리하기 위한 이식성(on-premise, cloud service 모두 사용 가능)이 있고 확장가능한 오픈소스 플랫폼

3. 쿠버네티스 역사

1) Linux 기반 LXC(Linux Container) 가상화

  • chroot(change root) : 독립된(자체적으로 컨테이너가 pid=1을 가진다 = 독립된 os가 존재) 컨테이너 환경 제공
  • cgroup : 자원 할당 기술 -> cpu, memory, disk, network 할당하는 기술
  • namespace : network namespace 관여 -> sandbox

2) VM 가상화
3) Container 가상화 => Docker
4) Container Orchestration tool(종합적 관리 도구) -> CI/CD 자동 배포와 k8s 연계


4. 쿠버네티스 특징

  • 선언적 구성 명령어 사용 -> YAML 코드 -> kubectl apply~
    ex) '이런 사양을 만들겠다'는 것을 YAML코드에 선언
    ㄴ 명령적 : kubectl (create/run/..) => CKA 에서 사용
    ㄴ 선언적 : yaml (kubectl apply ~ )
    (선언적 구성을 우선적으로 기반이 되어 공부후 명령적 구성 공부하는 것을 추천)

  • 들여쓰기(종속성)이 중요 -> 두번 들여쓰기

    • 순서
      notepad에서 작성 -> yamllint.com 검증 -> vi pod.yaml -> apply 하면 object 생성
      (yaml 코드 검증 사이트 : http://www.yamllint.com/)
  • 애플리케이션(pod>container>application)의 확장과 장애 조치를 처리하고, 배포 패턴 등을 정의(orchestration)

  • pod 와 service

  • 모듈화를 통한 더 나은 관리 (pod의 모음을 service라고 한다)

  • 대규모 소프트웨어 배포 및 무중단 업데이트(상태 비저장 저장 및 데이터 처리 워크로드)


k8s 요약

쿠버네티스 목적

  • Desired State Management
    - 사용자가 요구한 구성(yaml코드) 작성하면 k8s가 지속적으로 사용가능한 형태로 유지해주는 것이 목적이다.
profile
Data Engineer

0개의 댓글