[Kubernetes] Cluster: Kubespray를 이용해 클러스터 구성하기 - 4.1. 클러스터 배포 - 인벤토리 구성 및 변수 수정
Kubespray 인벤토리를 구성하고 클러스터 배포를 위한 변수를 수정해보자.
Kubespray 인벤토리를 구성하고 클러스터 배포를 위한 변수를 수정해보자.
cluster.yml을 이용해 클러스터 배포 실습을 위한 환경을 구성해보자.
Kubespray의 메인 플레이북 cluster.yml의 전체 흐름과 구조를 분석해보자.
Kubespray의 group_vars 디렉토리 구조와 주요 설정 변수들을 확인해보자.
Kubespray의 변수 배치 전략을 이해하고, 변수 분석 시 어디를 봐야 하는지 파악해보자.
Kubespray에서 사용하는 ansible.cfg 설정을 상세히 분석하고, 환경에 맞게 커스터마이징하는 방법을 알아보자.
Kubespray 프로젝트의 전체 디렉토리 구조를 살펴보고, 핵심 파일들을 파악해보자.
Kubernetes The Hard Way에서 수동으로 진행했던 작업들을 Kubespray로 자동화하여 클러스터를 구성해보자.
Kubespray의 핵심 기능과 동작 원리를 살펴보고, Kubernetes The Hard Way 및 kubeadm과 비교해보자.
Kubespray가 제공하고자 하는 것과 자동화 도구의 양면성을 살펴보자.
kubeadm join을 실행하여 워커 노드를 클러스터에 추가해보자.
kubeadm join 명령어의 동작 원리와 각 단계를 살펴보자.
노드 정보, 인증서, kubeconfig, Static Pod, 애드온 등 kubeadm init을 통해 구성된 컨트롤 플레인 컴포넌트를 상세히 확인해보자.
Flannel CNI를 설치하고, iptables와 conntrack을 통해 Kubernetes 네트워킹이 Linux에서 어떻게 구현되는지 확인해보자.
kubeadm init을 실행하여 컨트롤 플레인을 구성하고, kubectl 편의 도구를 설치해보자.
kubeadm을 사용한 클러스터 구성을 위해 필요한 사전 설정, CRI(containerd) 설치, kubeadm/kubelet/kubectl 설치를 수행해보자.
kubeadm init 명령어의 동작 원리와 각 단계를 살펴보자.
kubeadm의 개념과 설계 철학, 주요 명령어를 살펴보고, Kubernetes The Hard Way와 비교해보자.
Ansible의 철학이 Kubespray에서 어떻게 구현되어 있는지 살펴보자..
Ansible 태그를 활용하여 플레이북의 특정 작업만 선택적으로 실행하거나 건너뛰는 방법을 실습해보자.
Ansible 롤(Role)을 활용하여 재사용 가능한 Playbook 구조를 만드는 방법을 실습해보자.
Ansible 핸들러(Handler)와 작업 실패 처리 방법을 실습해보자.
Ansible 조건문(when)을 활용하여 특정 조건에서만 작업을 실행하는 방법을 실습해보자.
Ansible 반복문(loop)을 활용하여 동일한 작업을 여러 항목에 대해 효율적으로 실행하는 방법을 실습해보자.
Ansible이 관리 호스트에서 자동으로 수집하는 팩트의 개념과 활용법을 실습해보자.
Ansible 변수의 종류와 우선순위를 이해하고, 다양한 변수 선언 방법을 실습해보자.
Ansible Playbook의 구조와 문법을 이해하고, 조건문을 활용한 멀티 OS 환경 관리를 실습해보자.
Ansible 설정 파일 구성과 Ad-hoc 명령어를 통해 인벤토리에 정의된 호스트에 간단한 작업을 실행해보자.
Ansible 인벤토리의 개념과 형식, 구성 요소를 이해하고 실습 환경에서 인벤토리 파일을 작성해보자.
Ansible Control Node 설정과 SSH 키 기반 인증 구성을 통해 Kubespray 실습 환경을 준비해보자.
Ansible의 구성 요소, 동작 원리, 멱등성 등 핵심 개념을 정리해보자.
Ansible의 탄생 배경과 설계 철학을 살펴보자.
구성한 Kubernetes 클러스터가 정상적으로 동작하는지 다양한 테스트를 통해 검증해보자.
서로 다른 노드의 Pod 간 통신을 위해 수동 라우팅을 설정해보자.
Jumpbox에서 원격으로 클러스터를 관리할 수 있도록 kubectl을 설정해보자.
Worker Node에 containerd, kubelet, kube-proxy를 설치하고 클러스터에 등록해보자.
CNI의 동작 원리와 Worker Node 설정 파일들을 분석해보자.
Kubernetes Control Plane 컴포넌트들을 server 노드에 배포하고 시작해보자.
Kubernetes Control Plane 컴포넌트들의 systemd unit 파일과 설정 파일을 분석해보자.
Kubernetes 클러스터의 핵심 데이터 저장소인 etcd를 Control Plane 노드에 구성하고 시작해보자.
Kubernetes Secret 데이터를 암호화하기 위한 encryption-config.yaml 설정 파일을 생성하고 Control Plane에 배포해보자.
OpenSSL을 사용하여 각 컴포넌트를 위한 kubeconfig 파일을 생성하고 배포해보자.
kubeconfig의 개념과 구성 요소, Node Authorizer의 동작 원리를 이해해보자.
OpenSSL을 사용하여 Root CA 인증서와 각 컴포넌트 인증서를 생성하고 배포해보자.
Kubernetes 클러스터의 인증서 생성을 위한 OpenSSL 설정 파일(ca.conf)의 구조를 분석해보자.
Kubernetes 클러스터 구성에 필요한 TLS, mTLS, X.509, PKI 개념을 이해해보자.
클러스터 구성에 필요한 모든 머신 정보를 Machine Database에 정리하고, SSH 키 기반 인증과 호스트명 설정을 통해 자동화된 스크립트 실행 기반을 마련해보자.
Jumpbox에 Kubernetes The Hard Way 저장소를 클론하고, 클러스터 구성에 필요한 모든 바이너리(kubectl, kube-apiserver, etcd 등)를 다운로드하여 역할별로 분류해보자.
VirtualBox와 Vagrant를 사용하여 Kubernetes 실습을 위한 4대의 가상 머신(jumpbox, server, node-0, node-1)을 구성하고 초기 설정을 완료해보자.
Kubernetes The Hard Way를 따라 자동화 도구 없이 쿠버네티스 클러스터를 손으로 직접 구성해보자.
Kubernetes 클러스터의 인증서 인프라에 대해 알아보자.
쿠버네티스에서 스왑 비활성화가 권장되는 이유와 최신 NodeSwap 기능을 알아보자.