개발/Infra

(인강복습) 쿠버네티스 어나더 클래스 Sprint 1 - 무게감 있게 설치하는 방법

희묭 2024. 2. 26. 00:10
  1. Virtual Box (가상화 소프트웨어) 설치
  2. Vagrant (Virtual Box 관리도구) 설치
  3. Rocky Linux Repo ( RPM 패키지의 저장소 설정)
  4. Rocky Linux 설치
    1. config.vm.box = "rockylinux/8" > 로키 리눅스 설치버전
    2. config.vm.define "master-node" do |master| > VM 이름설정
    3. master.vm.hostname = "k8s-master" > 호스트네임 (OS상에서 부르는 컴퓨터의 별칭)
    4. master.vm.network "private_network", ip: "192.168.56.30"
      1. private_network : Host-Only Network, 즉 내 PC에서만 사용할수있는 네트워크망
      2. 위 설정이랑 별개로 NAT로 무작위 IP할당하여 네트워크세팅함
    5. 메모리는 내 PC에서 메모리 일부할당, CPU는 코어전체를 그대로 할당(쿠버권고 2코어이상)
    6. OS설치후 관리자권한을 가지고(privileged : true) 지정된($install_default, $install_master) 쉘스크립트 실행한다
  5. 쿠버네티스 설치 (https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)
    1. 시작전에 : 특정포트 개방 (모든방화벽내림), 스왑비활성화 (따라준다)
    2. 컨테이너 런타임 설치 (1) : 사전 IPTABLE 세팅
    3. 컨테이너 런타임 설치 (2) : cgroup 드라이버
      1. cgroupfs, systemd 두가지 형태가 있고 쿠버 기본은 systemd
      2. 매우 중요한 점은, kubelet과 컨테이너 런타임이 같은 cgroup group 드라이버를 사용해야 하며 구성도 동일해야 한다는 것이다.
    4. 컨테이너 런타임 설치 (3) : containerd 설치
      1. 설치방법1) 공식바이너리 사용 : CNI, runC 따로 설치필요
      2. 설치방법2) containerd.io 설치 < 선택
      3. 컨테이너 런타임 버전 고르는법 : https://containerd.io/releases/
        1. 최우선적으로 쿠버와 싱크맞춰야됨
        2. End of Life : 새기능이 특별히 필요하지 않다면 LTS버전을 선택하는게 좋음
      4. cri 활성화 : rpm을 통해서 설치했다면 cri integration 플러그인을 활성화해야됨
    5. 쿠버네티스 설치
      1. 클러스터 (쿠버네티스 그자체) 설치 : kubeadm을 사용한다 (클러스터 초기화)
      2. kubectl 사용 설정 : 쿠버설치후 사용할수있는 인증서를 kubectl이 사용할수있게 설정
      3. CNI Plugin 설치(calico) :
        1. CNI : 컨테이너 네트워크 인테페이스, 쿠버와 네트워크간 인터페이스
        2. calico : 네트워크 제공하는 솔루션중 하나
        3. 이전에 리눅스 IPTABLE 세팅한건 이걸 하기위해 손본것
        4. 브라우저→리눅스네트워크→켈리코→팟네트워크→목적지
      4. Master에 Pod를 생성 할수 있도록 설정
        1. 일반적으로 마스터에는 유저가 만든 파드를 올리지않으나 우리는 마스터만 있어서 세팅해
      5. kubectl 자동완성기능
      6. Dashboard 설치
      7. Metrics Server 설치 : Dashboard에서 CPU와 메모리 정보 조회가능