개발강의정리/DevOps

[쿠버네티스 어나더 클래스-지상편] 2. 쿠버네티스 무게감 있게 설치하기

nineDeveloper 2023. 9. 25. 15:42
728x90
 

쿠버네티스 어나더 클래스 (지상편) - Sprint1 - 인프런 | 강의

쿠버네티스, 아직 망설이시나요? 왜 해야 되는지 강의 소개 한번 들어보시죠!, 쿠버네티스 어나더 클래스 (지상편) - Sprint1 [사진]현재 강의는 쿠버네티스 어나더 클래스 [지상편] Sprint1(Polar Rabbit)

www.inflearn.com

 

큐브옵스 커뮤니티 : 네이버 카페

어서오세요! 인프런 [쿠버네티스 어나더클래스] 자료실 입니다^^

cafe.naver.com

강의에서 다루는 전체 환경

  • Sprint 1. 쿠버네티스 제대로 시작하기: 인프라환경
  • Sprint 2. 쿠버네티스 누구나 배포하기: CI/CD 환경
  • Sprint 3. 쿠버네티스 실무에 적용하기: 개발환경

쿠버네티스(v1.27.2) 쉽고 빠르게 설치하는 방법

  1. Virtualbox 설치: https://www.virtualbox.org/wiki/Downloads
  2. Vagrant 설치: https://developer.hashicorp.com/vagrant/downloads?product_intent=vagrant
  3. Vagrant 스크립트 실행 (M1 Mac)
# Vagrant 폴더 생성
$ mkdir k8s && cd k8s

# Vagrant 스크립트 다운로드
$ curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/vagrant-2.3.4/Vagrantfile

# Rocky Linux Repo 세팅
$ curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/vagrant-2.3.4/rockylinux-repo.json  
$ vagrant box add rockylinux-repo.json

# Vagrant Disk 설정 Plugin 설치
$ vagrant plugin install vagrant-disksize

# Vagrant 실행 (VM생성)
$ vagrant up
  1. ssh-copy-id로 인스턴스에 ssh키를 신뢰하는 호스트로 등록후 패스워드 없이 접속
# password vagrant
$ ssh-copy-id root@192.168.56.30

# ~/.zshrc 에 alias 등록
$ bash -c "echo alias master='ssh root@192.168.56.30' >> ~/.zshrc"

# ~/.zshrc 갱신
$ source ~/.zshrc
  1. Master 원격 접속
$ master

쿠버네티스 무게감 있게 설치하는 방법 1/2

위의 설정중 CPU 4core 설정은 PC와 나눠서 쓰는것이기 때문에 4core로 설정해도 상관없음
Node별 기본 설치 명령으로 나눠진 이유는 전체 쿠버네티스 워커노드의 공통으로 들어갈 기본 명령이랑 마스터 노드에만 들어갈 명령을 구분하기 위함

현재 이강의는 마스터 노드 하나만 만들 것이라서 상관 없음

위의 스크립트는 default_script가 먼저 실행되고 master_script가 실행됨
여기까지가 Vagrant를 이용해서 Rocky Linux를 설치하는 방법이였음

쿠버네티스 설치는 아래의 default_scriptmaster_script 스크립트 설치 내용에 있음

구간별 상태 확인

카페 링크 참고: https://cafe.naver.com/kubeops/28

쿠버네티스 무게감 있게 설치하는 방법 2/2

Kubernetes 공식 문서가 한글화도 되어있고 매우 잘되있으니 꼭 참고

쿠버네티스 설치 (모든 node)

  1. kubeadm 설치하기
    • 설치 전 사전 작업: 방화벽 해제, 스왑 비활성화
  2. 컨테이너 런타임 설치

Master node 세팅

  • kubeadm으로 클러스터 생성
    • 클러스터 초기화
    • kubectl 사용 설정
    • CNI Plugin 설치 (calico)
      • 컨테이너들 간의 통신을 관리하는 부분에 대한 쿠버네티스와 네트워크간의 인터페이스
    • Master에 Pod를 생성 할 수 있도록 설정
      • Master에 유저가 만든 Pod는 올리지 않는게 정석
      • App1, 2에 별다른 설정을 안해도 Master Node에 Pod가 생성되도록 설정
  • 쿠버네티스 편의 기능 설치
    • kubectl 자동완성 기능
    • Dashboard 설치
      • Metric 정보에서 조회된 CPU, Memory 정보가 표시됨
    • Metrics Server 설치
      • Metric 정보를 조회

구간별 상태 확인

카페 링크 참고: https://cafe.naver.com/kubeops/28

728x90