Kubernetes

[ DEVOCEAN OpenLab ] k3s 설치 with Multipass (mac M2)

jogaknabi_1023 2024. 5. 2. 19:01

 

맥북에서 내 cpu core 확인

물리적/논리적 cpu 확인할 수 있다.

물리적 cpu는 실제 하드웨어로 구현된 cpu 코어의 개수이고, 논리적 cpu는 운영체제가 인식하는 cpu 개수이다. 하이퍼스레딩 기술을 사용하면 물리적 cpu 코어 수보다 더 많은 논리적 cpu를 사용할 수 있다고 한다.

sysctl hw.physicalcpu hw.logicalcpu

hw.physicalcpu: 8
hw.logicalcpu: 8

 

 

1. 가상머신 생성

# 가상머신 생성 명령어
sudo multipass launch --name <vm 이름> --cpus <할당할 cpu 수> --mem <할당할 memory 수> --disk <할당할 디스크용량> <ubuntu alias>

# 마스터 노드 1대
sudo multipass launch -n k3s-master -c 2 -m 2G

# 워커 노드 2대
sudo multipass launch -n k3s-worker01 -c 1 -m 1G
sudo multipass launch -n k3s-worker01 -c 1 -m 1G

sudo mulipass list
  • multipass는 최신 Ubuntu LTS (Long-Term Support) 버전을 기본으로 가상머신을 생성한다.
  • multipass로 생성한 가상 머신은 기본적으로 DHCP를 통해 IP 주소를 할당받기 때문에 IP 주소는 동적으로 변경될 수 있다.

생성 후

 

2. k3s 클러스터링 과정

현재 내 로컬 pc에 kubectl 명령어가 설치되어 있어서 3대의 모든 노드들에도 kubectl이 자동으로 설치되어 있는 상태이다. 설치가 안되어 있는 상황이면 빠르게 설치하고 넘어가도록 하자.

# 가상 머신 안에 접속
sudo multipass exec <노드 이름> -- /bin/bash

# 마스터 노드에 k3s 설치
sudo curl -sfL https://get.k3s.io | sh -
# 마스터 노드에서 토큰 확인
sudo cat /var/lib/rancher/k3s/server/node-token

# 워커 노드(1,2)에 k3s 설치
curl -sfL https://get.k3s.io | K3S_URL=https://<마스터 노드 IP>:6443 K3S_TOKEN=<마스터 노드에서 생성한 토큰> sh -

# 마스터 노드에서 클러스터링 확인
sudo kubectl get nodes

 

처음에 밑의 코드로 진행했었는데, k3s를 서버로만 설치하고, 에이전트는 설치하지 않는 단일 노드의 k3s 구성이라 파일도 조금씩 달랐다. 특히 토큰이 없고 /etc/rancher/node/password가 있었다. 그리고 /etc/rancher/k3s/k3s.yaml 도 생성되지 않았다.

  • sudo curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--server" sh -

k3s 구성 후

 

3. 확인

test 로 nginx 파드를 하나 띄워보았다. 워커노드 중 worker01 노드에 만들어진 것을 볼 수 있다. curl 로 확인해보니 잘 나온다.

 

 

자료출처:

https://docs.k3s.io/kr/installation (k3s 공식문서)