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