[k8s] 쿠버네티스 설치

pipi·2023년 6월 26일
0

인프라

목록 보기
4/12

📌 virtual box에서 설치해봅시다

쿠버네티스 설치 최종이다. WSL -> Docker -> 결국 가상머신을 사용한다. 참고자료도 아주 많다

oracle virtual box에서 여러 vm을 만들고, 각각 vm에 마스터, 워커 노드를 할당하자

그렇다면 얘네끼리 어떤 네트워크를 구성할 것인가?

  1. NAT
    virtual box에서 기본은 NAT으로, vm은 모두 같은 ip를 할당받는다.
    그렇기에 vm1, vm2, vm3는 외부로는 통신이 가능하지만, vm1<->vm2끼리는 불가능
    => 포트포워딩이 따로 필요함
  1. NAT network
    vm은 모두 다른 ip를 갖는다. 어떻게? vm들이 하나의 네트워크에 묶여있기 때문!

    별도의 DHCP 서버가 따로 있어서 버추얼박스 내 가상 서버들이 저 친구로부터 각각 IP를 할당 받을 수 있게 된 것이다


실제 실습

  1. NAT network 생성
  1. Master VM 생성 (ubuntu 20.04 사용)
    일단 vm 하나만 세팅하고, 후에 worker는 세팅된거를 복사해서 쓰자. 환경설정 각각하기 귀찮다.
    ex) language 변경 -> canada로 변경해주자. 아니면 터미널이 안열린다.
    ex) 클립보드 공유 -> 양방향 + 링크 참고
  1. 네트워크 설정

이 뒤에선, 해당 깃헙을 참고한다.

📌 마스터 노드 설치

sudo apt update
sudo apt install -y docker.io nfs-common dnsutils curl

# k3s 마스터 설치
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="\
    --disable traefik \
    --disable metrics-server \
    --node-name master --docker" \
    INSTALL_K3S_VERSION="v1.18.6+k3s1" sh -s -

# 마스터 통신을 위한 설정
mkdir ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown -R $(id -u):$(id -g) ~/.kube
echo "export KUBECONFIG=~/.kube/config" >> ~/.bashrc
source ~/.bashrc

# 설치 확인
kubectl cluster-info
# Kubernetes master is running at https://127.0.0.1:6443
# CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces...
# 
# To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

kubectl get node -o wide
# NAME     STATUS   ROLES    AGE   VERSION        INTERNAL-IP    ...
# master   Ready    master   27m   v1.18.6+k3s1   10.0.1.1       ...

다음과 같이, 마스터 노드가 설치되었고, Ready상태임을 알 수 있다.

1. 마스터 노드 토큰 확인

NODE_TOKEN=$(sudo cat /var/lib/rancher/k3s/server/node-token) 
 echo $NODE_TOKEN

2. 마스터 노드 IP 확인

MASTER_IP=$(kubectl get node master -ojsonpath="{.status.addresses[0].address}")
 echo $MASTER_IP

📌 워커 노드 설치

NODE_TOKEN=<마스터에서 확인한 토큰 입력>
MASTER_IP=<마스터에서 얻은 내부IP 입력>

sudo apt update
sudo apt install -y docker.io nfs-common curl

# k3s 워커 노드 설치
curl -sfL https://get.k3s.io | K3S_URL=https://$MASTER_IP:6443 \
    K3S_TOKEN=$NODE_TOKEN \
    INSTALL_K3S_EXEC="--node-name worker --docker" \
    INSTALL_K3S_VERSION="v1.18.6+k3s1" sh -s -

📌 최종 확인

kubectl get node -o wide 해당 명령어를 입력했을때 마스터, 워커노드가 떠야한다. 워커노드가 반영되기까지 최대 2분까지 걸린다.


해당 블로그들을 참고하였습니다!
https://coffeewhale.com/kubernetes/cluster/virtualbox/2020/08/31/k8s-virtualbox/
https://mi2mic.tistory.com/211

0개의 댓글

관련 채용 정보