[워밍업 클럽 4기 DevOps] - 1주차 발자국
학습했던 내용 요약컨테이너 한방 정리• 컨테이너 기술의 이해• 컨테이너는 리눅스 커널 기능을 바탕으로 격리된 실행 환경을 제공• Docker는 이러한 커널 기술을 바탕으로 사용자 친화적인 인터페이스를 제공, 컨테이너 기술의 대중화를 이끎• 다양한 컨테이너 런타임이 존재하며 Low-Level(runC, LXC)과 High Level(Docker, containerd, cri-o)로 구분 • 리눅스 배포판의 계열과 선택 기준• Debian 계열과 Red Hat 계열의 특성을 이해• CentOS 종료 후 등장한 Rocky Linux, AlmaLinux 등 대안 배포판 존재 • 쿠버네티스 구조와 역할• 쿠버네티스는 컨테이너를 직접 다루지 않고, Pod 단위로 애플리케이션을 배포• 주요 컴포넌트• kube-apiserver: 사용자 요청 수신• kubelet: 노드 내 컨테이너 런타임과 연동• CRI: 다양한 컨테이너 런타임과의 통신을 표준화(gRPC 기반) 쿠버네티스 무게감 있게 설치하기• 가상화 환경 구성 이해• UTM을 통해 Mac에서도 ARM 기반 Rocky Linux를 구동할 수 있다는 것을 경험• 리눅스 네트워크 및 시스템 세팅 경험• 고정IP 설정, hosts 파일 구성, 방화벽 해제, Swap 비활성화 등 시스템 초기 설정이 쿠버네티스 구동에 직접적인 영향을 준다는 것을 실습• 컨테이너 런타임과 쿠버네티스 설치 경험• containerd 설치 및 CRI 활성화 과정에서 쿠버네티스가 특정 컨테이너 런타임과 어떻게 통신하는지 이해• Pod 네트워크와 마스터 노드 제어에 대한 학습• Calico 설치를 통해 CNI 기반 네트워크 구성 실습 실무에서 느껴 본 쿠버네티스 정말 편한 이유• CNCF와 쿠버네티스 생태계의 구조적 이해• CNCF는 클라우드 네이티브 기술 표준화를 추진하는 단체• 쿠버네티스를 포함해 수많은 오픈소스 프로젝트를 관리• 프로젝트는 안정성 및 성숙도에 따라 Sandbox → Incubating → Graduated로 구분• 쿠버네티스는 Graduated 프로젝트로, 클라우드 인프라의 표준 오케스트레이터로 자리 잡음 • 쿠버네티스 기반 인프라 구축 시 고려 요소• 개발과 모니터링 시스템은 분리되기 어려운 구조, 초기 설계부터 운영 요소를 고려해야함• 에이전트 삽입이나 모니터링 시스템 구축이 늦춰지면 성능 이슈가 생겼을 때 분석이 어렵고, 원인 추적이 애매해질 수 있음 • 현업에서 흔히 마주치는 실무적 문제• 개발자는 처음부터 운영 도구를 쓰지 않음 → 익숙한 로우레벨 방식(로그, 디버깅)에 의존• APP과 모니터링 대상 불일치 문제 → APP이 바뀌어도 모니터링 시스템이 자동으로 대응되지 않음• 모니터링 프로젝트와 개발 프로젝트의 속도 불일치 → 나중에 운영팀만 남고 개발자가 없는 상황에서 설정 누락 발생 가능 Object를 그려보며 쿠버네티스 이해• Label과 Selector의 역할 및 구조적 연결• Label은 쿠버네티스 오브젝트에 부여되는 메타데이터로, selector를 통해 리소스 간 연결을 유도하는 핵심 수단• Deployment → ReplicaSet → Pod 간의 관계에서 Label이 일치해야 연결됨• HPA, Service, ConfigMap 등 다양한 리소스에서 selector 기반 연결이 이루어짐을 시각적으로 이해 • Object 네이밍 규칙 및 컨벤션 정립• 이름은 유니크해야 하며, 하이픈(-)과 점(.)만 허용• 일반적인 네이밍 전략은 Application name + Instance name 조합• ConfigMap, Service 등에 목적에 맞는 suffix(-rule, -internal) 부여하는 게 나을 수 있음 학습 내용에 대한 간단한 회고컨테이너 기술, 쿠버네티스 실습 등 폭 넓은 학습을 진행한 한 주였습니다.특히 UTM과 Rocky Linux 환경 구성부터 containerd, kubeadm 설치, Pod Network 구성까지 실습을 통해직접 확인하면서 실전 기술에 대한 이해도가 크게 높아졌습니다.다만 학습한 내용에 대한 정리가 부족했던 점은 아쉬움으로 남았고, 향후에는 시간을 더 할애해 블로그에 학습 내용을 정리함으로써 보완해 나갈 계획입니다.