1. 쿠버네티스 입문 및 소개

몽자비루 ㅣ 2024. 5. 13. 16:18

  1. 실습 예제
    1. https://github.com/237summit/Getting-Start-Kubernetes
  2. 쿠버네티스 소개
    1.  쿠버네티스란?
      • 컨테이너를 도커 플랫폼에 올려서 관리 + 운영 + 클러스터 서비스를 지원해주는 것을 의미함
      • container orchestration
  3. 컨테이너란?
    • nodejs 기반의 app.js 를 실행하기위해
      Dockerfile 에 nodejs 기반을 생성 후 app.js 복사, node > app.js 순서로 실행 
    • 컨테이너 동작을 위한 플랫폼이 필요함 (보통 도커, 로켓 등을 사용)
  4. 컨테이너 이미지 생성하기
    1. 컨테이너를 만들어서 저장소에 저장.
      • docker platform 생성
        • linux 시스템에 docker 설치
        • docker deamon start
        • 이후 container 빌드 및 실행이 가능한 상태.
      • container 빌드
        • docker hub 에 container 을 build하여 push
        • 컨테이너가 hdd 에 생성    > docker build -t [container name : tag]
        • 컨테이너를 hub에 업로드  > docker push [container name : tag]
      • container 실행
        • 외부 네트워크가 가능한 linux
        • 컨테이너를 다운로드 > docker pull [container name : tag]
        • 컨테이너 동작            > docker create --name app -p  80:8080  [container name : tag]
                                             > docker start app
    2. 가상머신 VS 컨테이너
      1. 가상머신 (infrastructure + hypervisor)
        • 하드웨어 인프라 위에 hypervisor 설치
          • hypervisor : 단일 물리적 머신에서 여러 가상머신을 실행하는 데 사용할 수 있는 소프트웨어, Virtualbox, VM ware 등이 포함됨
          • SW적인 기술을 사용해 가상 머신을 생성
      2. 가상머신 작동 방식
        • 작동 방식
          • 가장 적당한 하드웨어 용량을 할당시킴
          • 리소스가 몰리는 경우 하드웨어 업그레이드
          • 하드웨어를 효율적으로 사용할 수 있음
          • 가상머신은 목적에 따라 애플리케이션이 동작함.
        •  단점
          • 다운되면 소용이 없음 > 버티컬하게 스케일업 대신, 수평 형태로 스케일 아웃 함.
          • 리소스가 몰리는 경우, 웹 서버를 여러 개 할당함
      3. 컨테이너 (infrastructure + host operation + docker)
        ㄴ host operation: 리눅스, 윈도우즈 같은 운영체제를 의미함
        • 컨테이너 애플리케이션이 동작 (컨테이너 하나하나가 application)
        • 빠르게 확장하고 빠르게 축소함 → 배포(deploy)를 목적으로 함
        • 가상머신처럼 독립된 공간으로 실행되어 서로에게 영향을 주지 않음.
      4.  컨테이너 동작 구조
        • 도커 플렛폼 올림 > 웹서버 실행 (웹서버 개수에 따라스케일 아웃이 쉬움)
        • 멀티호스트 도커 플랫폼을 만들음 (클러스터링)
          • system 하나에 컨테이너를 운영하는것이 불안함
          • 도커시스템을 여러대 만듬 > 앱이 실행될때마다 분산 운영 시킴
          • 컨테이너 배치를 자동으로 해주는 시스템 : 컨테이너 오케스트레이션
  5.  오케스트레이션
    1. 컨테이너 오케스트레이션
      • 웹서버, 파이썬, node.js같은 앱을 가장 적합하게 배치하여 운영해주는 것.
      • control plane을 두고 워커노드를 관리해주는 구조를 의미함
    2. 쿠버네티스는, 도커 폴랫폼의 컨테이너 관리/스케일링/운영하는 오케스트레이션.
  6.  쿠버네티스 공식 웹사이트
    1. https://kubernetes.io/
  7. 쿠버네티스의 특징
    1. 워크로드의 분리
      • 컨테이너를 분리시켜 운영시키면서도 통신이 원활함
    2. 어디서나 실행 가능함.
      • 온프레미스 서버, 퍼블릭 클라우드 등 모든 환경에서 실행할 수 있음.
      • 온프레미스 서버
        • 회사에서 서버를 이용해 컨테이너 설치 가능 장비를 생성
        • 운영체제 설치
        • 도커 설치
        • 쿠버네티스 설치
        • 사내에서 운영 가능함.
    3. 선언적 API
      • 쿠버네티스 준비 상태에서 cotrol plane에게 요청하는 것.
        • 나머지는 쿠버네티스에서 자동으로 실행함.
        • 이 덕분에 DevOps, 심지어 NoOps 까지 가능함.