k8s v1.27 버전 설치 (최신, 쉬운설치 버전) - 1.22에서 변경됨

설치스펙 :
Windows10, Cpu 6core 이상, Memory 16GB 이상, 인터넷 사용 가능 환경

설치 가이드


  1. XShell 설치 : 생성될 Master/Woker Node에 접속할 툴 (기존에 쓰고 있는게 있으면 생략가능)
  2. VirtualBox 설치 : VM 및 내부 네트워크 생성 툴
  3. Vagrant 설치 및 k8s 설치 스크립트 실행 : 자동으로 VirtualBox를 이용해 VM들을 생성하고, K8S관련 설치 파일들이 실행됨
  4. Worker Node 연결 : Worker Node들을 Master에 연결하여 쿠버네티스 클러스터 구축
  5. 설치 확인 : Node와 Pod 상태 조회
  6. 대시보드 접근 : Host OS에서 웹 브라우저를 이용해 클러스터 Dashboard에 접근
Installation Step Case6 for Kubernetes

1. XShell 설치


2. VirtualBox 설치 (7.0.8 버전)


3. Vagrant 설치 및 k8s 설치 스크립트 실행

3-1) Vagrant 설치 (2.3.4 버전)

3-2) Vagrant 명령 실행

  • 윈도우에서 cmd 실행
  • k8s 폴더 생성 및 이동
  • Vagrantfile 파일 다운로드
// 폴더 생성
C:\Users\사용자>mkdir k8s
C:\Users\사용자>cd k8s 

// Vagrant 스크립트 다운로드
C:\Users\사용자\k8s> curl -O https://kubetm.github.io/yamls/k8s-install/Vagrantfile

// Rocky Linux Repo 세팅
C:\Users\사용자\k8s> curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/vagrant-2.3.4/rockylinux-repo.json
C:\Users\사용자\k8s> vagrant box add rockylinux-repo.json

// Vagrant Disk 설정 Plugin 설치 
C:\Users\사용자\k8s> vagrant plugin install vagrant-vbguest vagrant-disksize
  • Vagrant 실행 (5~10분 소요)
C:\Users\사용자\k8s> vagrant up

4. Worker Node 연결

4-1) XShell을 통해 master 접속 (id/pw: root/vagrant)
4-2) cat 명령으로 자신에 master 접근 token 확인 및 복사

[root@k8s-master ~]# cat ~/join.sh
kubeadm join 192.168.56.30:6443 --token bver73.wda72kx4afiuhspo --discovery-token-ca-cert-hash sha256:7205b3fd6030e47b74aa11451221ff3c77daa0305aad0bc4a2d3196e69eb42b7

4-3) worker node1 접속 후 토큰 붙여놓기 (id/pw: root/vagrant)

[root@k8s-node1 ~]# kubeadm join 192.168.56.30:6443 --token bver73.wda72kx4afiuhspo --discovery-token-ca-cert-hash sha256:7205b3fd6030e47b74aa11451221ff3c77daa0305aad0bc4a2d3196e69eb42b7

4-4) worker node2 접속 후 토큰 붙여놓기 반복

[root@k8s-node2 ~]# kubeadm join 192.168.56.30:6443 --token bver73.wda72kx4afiuhspo --discovery-token-ca-cert-hash sha256:7205b3fd6030e47b74aa11451221ff3c77daa0305aad0bc4a2d3196e69eb42b7

5. 설치 확인

5-1) XShell을 통해 master 접속 (id/pw = root/vagrant)
5-2) kubectl 명령어

[root@k8s-master ~]# kubectl get pod -A
[root@k8s-master ~]# kubectl get nodes

6. 대시보드 접근

https://192.168.56.30:30000/#/login


참고

Version 정보

Installation Version Case6 for Kubernetes Update

Network 구성도

Installation Network Case6 for Kubernetes

QnA

vagrnat up 시 VM기동이 안될경우

  • 에러 메세지
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "8a9490a5-bbe4-4bac-9043-de39b93cf6b3", "--type", "headless"]

Stderr: VBoxManage.exe: error: The VM session was closed before any attempt to power it on
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component SessionMachine, interface ISession
  • 해결방법 : 작업관리자에 들어가서 VirtualBox 관련 프로세스 모두 죽이고 다시 실행 (VirtualBox Headless Frontend, VirtualBox Interface)
  • 추가 커맨트 : 생각보다 자주 이런 현상이 발생하는것 같아요. 설치만 vagrant로하고 이후부터는 vagrant up으로 기동하지 않고, 그냥 virtualbox만 실행해서 UI를 통해 기동시키고 내리는것도 괜찮을것 같습니다. 이때 주의할 점은, virtualbox를 통해 core수나 memory를 직접 변경 했을때 나중에 vagrant up으로 기동할일이 있을 경우 Vagrantfile에 있는 core, memory 스펙으로 다시 업데이트 된다는 점 주의하시기 바랍니다.

Dashboard 관련 (1.27 버전에서는 불필요한 내용입니다.)

  • Master Node 재기동시 Dashboard에 접속하기 위해선 아래 명령어를 실행해서 Proxy 오픈하기
[root@k8s-master ~]# nohup kubectl proxy --port=8001 --address=192.168.56.30 --accept-hosts='^*$' >/dev/null 2>&1 &
  • Dashboard 접근시 ServiceUnavailable 에러 발생시 아래 명령을 통해 기동안된 Pod 확인
[root@k8s-master ~]# kubectl get pods -A