쿠버네티스 무게감 있게 설치하기

Moongchi·2025년 5월 28일
0

kubernetes

목록 보기
2/14

Kubernetes 구성

kube-apiserver

- kubernetes로 보내지는 모든 명령을 수행함
- 모든 클러스터 내부 통신은 kube-apiserver 통해 수행

kubelet

- pod 생성 명령을 받으면 pod의 구성을 확인하고 pod 내에 Container 생성

- Container Runtime에 Container 생성 명령
	>- 초기 kubelet → Docker
   - 중간 kubelet → CRI(Container Runtime Interface) → Docker
  - 나중 kubelet - CRI-Plugin - Docker
  

kubeadm

- Kubernetes 클러스터를 간편하게 설치/초기화 할 수 있게 도와주는 도구(클러스터 설정 자동화)
- kubeadm init, kubeadm join 등

kube-scheduler

- 어떤 노드에 pod를 배치할지 담당
- 리소스 사용율, 제약조건 등 기반으로 노드에 pod 할당

control-mgmt

- Kubernetes 원하는 상태 유지
- Kubernetes 리소스(Pod, Node, ReplicaSet 등)의 실제 상태(current state)를 원하는 상태(desired state)로 자동으로 조정해주는 도구

etcd

- key-value 저장소
- configMap, secret, pod 상태 등

kube-proxy

- 각 노드에서 실행되며 클러스터 내부 네트워크 트래픽 라우팅
- iptables 또는 IPVS 기반하여 앱 요청을 적절한 pod로 전달

kubectl

- 사용자와 API Server 상호작용 도구

로컬 PC에 k8s 환경 구축하기

환경 구축 도구

  1. virtualVM
    • 실제 master node vm 생성에 사용
  2. vagrant
    • vm 생성 시 환경 구축 설정을 파일로 관리
      (IaC: Infrastructure as Code)
  3. mobax
    • master node에 ssh 접근할 때 사용

쿠버네티스 환경 구축

사전설정

1~4 : 노드 공통
5~6 : Master Node

  1. rocky linux 기본 설정
    • 패키지 업데이트
    • 타임존 설정
  2. 사전작업
    • 방화벽 해제
    • 스왑 비활성화
  3. 컨테이너 런타임 설치(containerd)
    • iptables 세팅
    • option2
    • docker engine 설치(repo 설정, containerd 설치)
    • 컨테이너 런타임 cri 활성화
  4. kubeadm 설치
    • repo 설정
    • SELinux 설정
    • kubelet, kubeadm, kubectl 패키지 설치
  5. kubeadm - 클러스터 생성
    • 클러스터 초기화
    • kubectl 사용 설정
    • CNI Plugin 설치(calico)
    • Master에 Pod 생성할 수 있도록 설정
  6. 쿠버네티스 편의기능 설치
    • kubectl 자동완성 기능
    • Dashboard 설치
    • Metrics Server 설치

0개의 댓글