BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
BESPIN Tech Blog
  • Tech
    • CSP
      • AWS
      • GCP
      • NCP
    • Cloud
      • Migration
      • LZ, Control Tower
      • Backup
      • Monitoring
      • Container
    • Infra
      • OS
      • Middleware
    • Data
      • RDB
      • Big Data Platform
    • Application
      • CI/CD
  • Trend
  • IT
  • Contact US
TECHContainerCloud

DevOps K8S(1) – 쿠버네티스를 ‘잘’ 쓰려면 필수적으로 알고 가야 하는 개념

by 형래 김 2024년 02월 28일
2024년 02월 28일
10

안녕하세요, 베스핀글로벌 DevOps실 구연수 님이 작성해 주신 쿠버네티스를 잘 쓰려면 필수적으로 알고 가야 하는 개념에 대해 알아보도록 하겠습니다.

화물선에 비교한 쿠버네티스 

Master Node
  • 적재 방법을 계획하고, 선박을 식별하고, 컨테이너 위치를 감시 추적 감시하는 역할의 관제선
  • etcd : 어떤 컨테이너가 어느 배에 몇 시에 적재될 지 정보를 가짐 (고가용 키값 스토어)
  • kube scheduler : 컨테이너를 설치하기 위해 올바른 노드를 식별 (컨테이너 리소스 요구사항, 노드 용량, 정책, 테인트 등등..)
  • Controller Manager
    • Node Controller : 노드 관리. 새 노드를 클러스터에 온보딩하고 노드가 사용불가능하거나 파괴되는 상황을 처리
    • Replication Controller : 원하는 컨테이너의 수가 복제그룹에서 항상 실행되도록 보장
  • kube-apiserver : 서버나 클러스터 내에서 모든 작업을 오케스트레이션. 외부 사용자가 클러스터의 관리 작업을 수행할 수 있도록 인터페이스 제공
Worker Nodes : 클러스터의 작업자 노드. 컨테이너를 노드할 수 있음
  • kubelet : 선박의 선장 역할. 클러스터의 각 노드에서 실행되는 에이전트. kube apiserver의 지시를 듣고 노드에서 컨테이너를 배포하거나 파괴
  • kube proxy : 작업자 노드간의 통신. 쿠버네티스 위에 실행되는 컨테이너가 서로 닿을 수 있도록 함

ETCD
  • 쉽고 안전하고 빠른 분산 키-밸류 저장소
  • document, page 형식으로 데이터를 저장
  • 각 정보는 document 형식이고 파일별로 구분된다
    • 한 파일에 저장된 정보는 다른 파일에 영향을 주지 않음
ETCD version
  • etcdctl : ETCD와 통신하기 위해 사용되는 CLI 툴
  • v2.0 ~ v3.0 사이에 큰 변화가 있었고 etcdctl 명령어도 역시 많은 변화가 있었음
    • 기존 2 버전
etcdctl backup
etcdctl cluster-health
etcdctl mk
etcdctl mkdir
etcdctl set
  • 3 버전
etcdctl snapshot save 
etcdctl endpoint health
etcdctl get
etcdctl put
  • etcdctl 명령어는 v2 와 v3가 함께 사용될 수 있음
    • etcdctl 버전 확인하는 명령어
./etcdctl --version 
# etcdctl version : 3.3.11
# API version : 2
  • 위와 같이 etcdctl 유틸리티 자체의 버전과 API 버전이 다를 수 있음. API 역시 v3로 통일시키고 싶다면?
export ETCDCTL_API=3
# etcdctl version : 3.3.11
# API version : 3.3
  • etcdctl이 ETCD api server를 인증할 수 있도록 certificate 패스를 지정해야 함
--cacert /etc/kubernetes/pki/etcd/ca.crt     
--cert /etc/kubernetes/pki/etcd/server.crt     
--key /etc/kubernetes/pki/etcd/server.key
  • api 버전과 인증 패스 지정을 함께 한다면 다음과 같음
kubectl exec etcd-master -n kube-system -- sh -c "ETCDCTL_API=3 etcdctl get / --prefix --keys-only --limit=10 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt  --key /etc/kubernetes/pki/etcd/server.key" 
ETCD role in K8S
  • 클러스터에 대한 많은 정보를 저장하는 공간
    • Nodes, Pods, Configs, Secrets, Accounts, Roles, Bindings, Others …
  • kubectl 명령어의 결과가 etcd 서버에 저장됨
    • 노드를 추가하거나, 파드나 복제본을 배포하는 등의 정보..
Kube apiserver

kubectl 명령어를 실행하면

  1. kubectl utility는 kube-apiserver에 접근함
  2. kube-apiserver에서 해당 요청을 인증하고 확인함
  3. 데이터를 받아 ETCD 클러스터에서 찾고 다시 응답 값을 명령어를 실행한 유저에게 전달함
  4. kube scheduler는 apiserver를 모니터링하고 있으며, 새 pod가 있는지 확인
  5. scheduler는 새 pod가 있어야 할 곳에 정착시키고 kube-apiserver에 이 상황을 전달함
  6. apiserver는 다시 ETCD cluster에 정보를 저장함
  7. apiserver가 적절한 worker node의 kubelet에 정보 전달함
  8. kubelet이 새 node를 생성하고, container runtime engine에게 애플리케이션 이미지를 배포할 것을 명령함
  9. kubelet은 상태값을 apiserver에 응답하면, apiserver는 상태 정보를 ETCD에 저장함

kube apiserver는 ETCD cluster와 소통하는 유일한 컴포넌트


Kube Proxy
  • 모든 Pod는 다른 모든 pod에 접근할 수 있음
  • Kube Proxy는 쿠버네티스 클러스터 내의 각 노드마다 운영되는 프로세스
Kube Proxy가 서비스를 설정하는 방법

새로운 서비스가 생겨날 때마다, 백엔드 파드에서 이 서비스들로 트래픽을 향하게 할 수 있도록 각 노드에 적절한 룰을 생성함

  • (ex) 클러스터 내 각 노드에 ip table이 서비스의 ip 를 향할 수 있도록 생성한다.

감사합니다:)

Written by 구 연수 / Yeonsoo koo

Software Engineer

관련

DevOpsK8S쿠버네티스마스터 노드etcdkube-apiserverkubeletkube proxyController Manager

HOT Trend

Recent Posts

  • 딜로이트도, 맥킨지도, 베스핀글로벌도: AI 에이전트로 일 바꾸는 시대

    2025년 07월 04일 클라우드베스핀글로벌clouddata데이터AI인공지능HelpNow AIbespinglobalAI에이전트helpnow업무자동화딜로이트
  • ⚔️데이터센터에서 시작된 전쟁? 요즘 뜨는 AIDC 개념부터 트렌드까지!

    2025년 06월 27일 클라우드clouddata데이터AI데이터센터클라우드 데이터센터bespinglobalAIDCAI 인프라베스핀글로벌
  • 구글부터 엔비디아까지, 빅테크 기업들의 AI 전략 최신본📖

    2025년 06월 20일 cloud베스핀글로벌클라우드data데이터AI구글마이크로소프트엔비디아AI에이전트google I/ONVIDIA GTC 2025Microsoft build 2025
  • AI를 연결한다고? 업계가 주목하는 ‘MCP’ 알아보기🔍

    2025년 06월 13일 베스핀글로벌클라우드cloudAIMCP
  • [WhaTap] RDS Failover/Reboot 관제 2 – RDS Failover

    2025년 05월 30일 RDSRDS FailoverRebootFailoverbespin global

베스핀글로벌은 모든 기업의 AI 혁신을 실현하기 위해, 세상에서 가장 혁신적이고 자동화된 AI 서비스와 솔루션을 만들어갑니다.
상호 : 베스핀글로벌 주식회사 ㅣ 대표자명 : 김써니, 허양호 ㅣ 사업자등록증번호 : 638-87-00223 ㅣ 통신판매번호 : 2019-서울서초-0347 ㅣ 대표전화 : 1668-1280
사업장주소지 : 서울특별시 서초구 강남대로 327, 13,14,15,16층(서초동,대륭서초타워) ㅣ 이메일 : info@bespinglobal.com ㅣ 개인정보 처리방침 ㅣ 개인정보 처리방침 안내

© 2026 BESPIN GLOBAL, All Rights Reserved.

BESPINGLOBAL
패밀리 사이트
China MEA SEA US

BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT