관리 메뉴

피터의 개발이야기

[kubernetes] 쿠버네티스 목차 본문

Kubernetes

[kubernetes] 쿠버네티스 목차

기록하는 백앤드개발자 2024. 1. 19. 20:21
반응형

 

ㅁ 들어가며

 쿠버네티스 환경을 운영하면서 실 운영경험과 필요 시 작성한 개념들이 정리되지 않게 나열되어 있었습니다. 막상 이것저것 정리하였지만 전체적인 개념을 이해하기는 어려운 구조였습니다. 그래서 전체적인 개념들을 체계적으로 구조화 하기 위해 쿠버네티스 목차 글을 작성하였습니다.

 


쿠버네티스 개념 정리


[kubernetes] Kubernetes란

 이 글은 쿠버네티스 공식 문서 중 "쿠버네티스란 무엇인가?" 를 바탕으로 쿠버네티스 개요를 정리하였다.

 

ㅁ 쿠버네티스 개념 정리

 쿠버네티스는 압축해서 설명하면 오픈소스 컨테이너 오케스트레이션 플랫폼라고 정의할 수 있습니다. 로 이해할 수 있습니다. 겠지만, 보다 복합적인 환경적 변화 안에서 이해하려고 하였습니다. 서버환경의 추상화(물리, VM, 컨테이너)를 통해, 소프트웨어를 컨테이너화 시켜 다양한 유형의 인프라에서 컨테이너를 관리할 수 있고, 자동으로 배포, 확장 및 축소가 가능한 오케스트레이션을 위해 쿠버네티스는 꼭 필요합니다. 쿠버네티스를 이용하면 컴퓨팅 리소스를 최대한 효율적으로 활용할 수 있어 비용을 절감하고, OS에 종속성을 극복하여 구글에서 사용하던 컨테이너화된 애플리케이션을 AWS에서도 그대로 사용할 수 있게 해줍니다. 이들 퍼블릭 클라우드 뿐만 아니라 프라이빗 클라우드에서도 사용할 수 있지요. 

 

[kubernetes] 쿠버네티스 아키텍처

 쿠버네티스에서 가장 큰 논리적 단위 인  Cluster안에 Master Node와 Work Node가 있고, 그 안에 추상화된 쿠버네티스의 최소 단위인 Pod와 Container의 계층적 구조를 살펴 보았고, Master Node와 Work Node에 속해 있는 모듈들의 역할에 대해서 알아보았다.

 

[kubernetes] 쿠버네티스 리소스

리소스는 Kubernetes에서 정의한 인프라의 기능 명세서(Spec)로, 사용자가 등록한 선언적 요구사항(desired state)d에 맞도록  Kubernetes가 인프라를 관리한다.

 

리소스는 크게 다음과 같이 그룹화 할 수 있다. 
 
[kubernetes] 쿠버네티스 컨트롤러
  ㄴ 다양한 목적에 맞게 App을 배포하고 관리한다.
  ㄴ 지속적 배포와 트래픽에 따른 오케스트레이션이 필요한 상황에서 파드를 관리할 때에 Replicaset, Deployment
  ㄴ 노드 단위로 로그정리(S3로 로그정리 배치작업) 및 시스템 로그를 통합(EFK) 등 DaemonSet
  ㄴ ElasticSearch 같이 data노드가 정해져 특정 Volume이 정해져 있는 StatefulSet
 ㄴ  1회성 작업 Job, 주기적인 배치 작업 Cronjob
 
[Kubernetes] 네트워크 이해

  ㄴ 여러 파드에게 IP를 제공하고 로드밸런서 역할을 하는 Service
  ㄴ 클러스터 외부에서 파드로 접근할 때 주로 L7 영역의 통신을 담당하는 Ingress
  ㄴ 쿠버네티스 리소스에서 확장하여 네트워크 전반에 대해 정리함.
  ㄴ NAT란, Bridged Networking란,  Virtual Network란?

  ㄴ [kubernetes] Ingress 와 egress 차이

ㅇ Storage
  ㄴ 데이터의 보존을 위한 컨테이너가 삭제되면 저장한 데이터는 모두 삭제된다.   

  ㄴ 데이터의 보존을 위한 Volume(비유: 하드디스크 자체)
  ㄴ Volume을 할당하여 정의하는 Persistent Volume(비유: 파티션 선언)
  ㄴ 할당된 Persistent Volume을 사용하여 Pod에 연결하는 Persistent Volume Claim(비유: Mac 또는 Boot Camp 마운트)
  ㄴ 할단된 PVC의 포멧 및 형태를 정의하는 Storage Classs(부차설명: 파티션 포맷 시 유형, APFS ExFAT)

  ㄴ [EBS] EKS 생성, MongoDB 구성, gp2에서 gp3 EBS 볼륨으로 마이그레이션

  ㄴ [Kubernetes] 쿠버네티스 볼륨 개념 1편 (emptryDir, hostPath)

  ㄴ [Kubernetes] 쿠버네티스 볼륨 개념 2편 (pv, pvc,  AWS EBS, AWS EFS )
  ㄴ [EKS] AWS EKS에 EFS 연동하기
 
ㅇ Config
  ㄴ 컨테이너에 필요한 환경설정 내용 Config Map
  ㄴ 비밀번호, OAuth 토큰, SSH 키 같은 민감 정보 저장 Secret

 

메타데이터

  ㄴ 클러스터 내부의 다른 리소스를 관리하기 위한 리소스

  ㄴ [kubernetes] Static Pod란?

 


쿠버네티스 명령어 연습


ㅁ 코어 관리

 쿠버네티스 관리 최소단위인 Pod를 어떻게 유지관리할 지에 대한 방법을 배울 수 있다. 개념정리보다는 Pod를 관리하는 주체들인 Object들을 어떤 명령어를 통해 관리할 수 있는지 정리해 보았다.

 

[kubernetes] Pod 기본 명령어

  ㄴ kubectl 명령어 중 Core에 해당하는 Pod에 관한 명령어 정리
  ㄴ [kubernetes] Pod 한꺼번에 삭제하기

[kubernetes] ReplicaSet 기본 명령어

  ㄴ 코어 리소스 중 ReplicaSet에 관한 kubectl 명령어 정리 

[kubernetes] Deployments 기본 명령어

[kubernetes] NameSpace 기본 명령어

[kubernetes] Service 기본 명령어

[kubernetes] kubectl 생성 실습문제

  ㄴ kubectl 명령문을 사용하여 pod, deployment, service를 생성 연습해 보았다.

[kubernetes] 스케줄링 명령어 연습문제

  ㄴ 스캐줄링에 관련된 명령어 연습: 메뉴열 스케줄링, Lable와 Selector,  Taint와 Tolerations, Node Affinity, Resource Limits, dDaemonSets, Static Pod, Multiple Schedulers

  ㄴ[kubernetes] 다중 스케줄러

 

ㅁ Application Lifecycle Management

Pod 안의 Application 배포에 대한 내용이다.

 - 애플리케이션을 배포 시 서비스 중단, 무중단 배포가 있다.

 - 배포 시 컨테이너에 데이터를 어떻게 주입하는 지 알 수 있다. 데이터에는 Command와 Arguments, 환경변수, Secrets가 있다.

 - 다중 컨테이너, init Container 배포방법

 

 ㅇ [kubernetes] Deployment이란?

  ㄴ 서비스 중단, 무중단 배포 방법에 관하여 정리하였다.

  ㄴ 카나리 배포, 파괴적인 배포방법(ASIS와 TOBE가 중첩할 수 없는 경우, 장애 시 즉결적인 업데이트)

  ㄴ HorizontalPodAutoscaler 연습


쿠버네티스 개발환경


 

 

[kubernetes] 개발환경 목차

 쿠버네티스의 개발환경에 대해서 여러 글을 작성하였습니다. 어떤 글이 정리되어 있는지 목차를 작성하였습니다.

 


CKA 자격증 공부


 

ㅁ 시험 후기

 ㅇ [CKA] 자격증 합격 후기 및 공부방법 정리

 

ㅁ 실습문제 풀이

 ㅇ [CKA] Udemy 실습문제풀이 - Trouble shooting

 ㅇ [CKA] Udemy 실습문제풀이 - Networking
 ㅇ [CKA] Udemy 실습문제풀이 - Networking2
 ㅇ [CKA] Udemy 실습문제풀이 - Storage

 ㅇ [CKA] Udemy 실습문제풀이 - Security

 ㅇ [CKA] Udemy 실습문제풀이 - Cluster Maintenance
 ㅇ [CKA] Udemy 실습문제풀이 - Application Lifecycle Management

 ㅇ [CKA] Udemy 실습문제풀이 - Mock Test 1

 ㅇ [CKA] Udemy 실습문제풀이 - Mock Test 2

 ㅇ [CKA] Udemy 실습문제풀이 - Mock Test 3

 ㅇ [CKA] Udemy 실습문제풀이 - Lightning Lab

 

ㅁ  기출문제 정리

 ㅇ [CKA] 기출문제 정리

 ㅇ [CKA] 기출문제 - ETCD Backup and Restore

 

ㅁ 개념정리

 ㅇ [kubernetes] JSONPath 사용법

 ㅇ [CKA 시험공부 노트] 9. Networking

     ㄴudemy 강의 중 이해가 더 필요한 내용을 강의 노트로 남김

 ㅇ [CKA] 개념정리 - nodePort, port, targetPort 정리

 


쿠버네티스 실전경험


 

ㅁ 로그분석

[kubernetes] Events 보는 방법

 ㄴ 이벤트 확인 시 필터 적용방법 

[kubernetes] Events 시간 단위로 소팅

  ㄴ 이벤트 확인 시 시간 정렬

 

EKS에 순단 장애 발생 대처

 EKS에 순단이 발생하여 원인 파악을 위해 이벤트를 보는 방법([kubernetes] Events 보는 방법)을 정리하였다. AWS에 장애 상황에 대해 문의를 하였고, EKS fail-over 상황이 발생한 것을 확인 할 수 있었다. EKS 장애를 통해 장애 인지 및 모니터링을 위한 개선점을 도출하여, 그 과정을 정리하였다.

 

1편 [kubernetes] EKS fail-over 상황정리 및 방어방법
2편 [Kubernetes] 쿠버네티스API 서버 CURL 접속 방법
3편 [Kubernetes] Spring에서 쿠버네티스 Pod 정보조회
4편 [kubernetes] kubernetes event exporter

반응형
Comments