본문 바로가기
Programing/Kubernetes

쿠버네티스(Kubernetes), 랜처(Rancher, RKE2) 설치 2편

by 슈퍼와이비 2023. 9. 13.
반응형

쿠버네티스(Kubernetes)에서 Worker Node 는 클러스터 내에서 애플리케이션 컨테이너를 실행하고 관리하는 역할을 하는 중요한 구성 요소 중 하나입니다.

 

 

Worker Node 설명

 

  1. 컨테이너 호스트: Worker node는 하나 이상의 컨테이너를 실행하는 환경을 제공합니다. 이러한 컨테이너는 Docker, Containerd 또는 다른 컨테이너 런타임에서 실행됩니다.
  2. 컨테이너 관리: Worker node는 컨테이너의 실행, 중단, 스케일링 등을 관리합니다. 쿠버네티스 마스터 컨트롤 플레인에서 전송한 명령을 받아 실행하고 상태를 보고합니다.
  3. Kubelet: Kubelet은 각각의 Worker node에서 실행되는 에이전트 프로그램입니다. 이 에이전트는 쿠버네티스 마스터와 통신하고 노드 상태를 보고하며 컨테이너의 상태를 확인합니다.
  4. 컨테이너 네트워킹: Worker node는 컨테이너 간 통신 및 컨테이너와 외부 네트워크 간 통신을 관리합니다. 이를 통해 애플리케이션 컨테이너는 서로 통신하고 외부와 통신할 수 있습니다.
  5. 컨테이너 스토리지: Worker node는 컨테이너의 데이터를 저장하고 관리하는 역할을 합니다. 이는 로컬 디스크 또는 외부 스토리지와 같은 다양한 방식으로 이루어질 수 있습니다.
  6. 노드 상태 관리: Worker node는 자체 상태를 모니터링하고 이상 상태를 감지하면 해당 정보를 마스터 노드로 보내어 클러스터 상태 관리를 돕습니다.
  7. 스케줄링: 쿠버네티스 마스터 노드는 애플리케이션을 어떤 Worker node에 배치할지 결정하는 스케줄링을 수행합니다. 이때 각 Worker node의 가용 리소스와 현재 상태를 고려합니다.
  8. 노드 확장성: 클러스터에서 더 많은 컨테이너를 실행하려면 Worker node를 확장할 수 있습니다. 이는 새로운 노드를 추가하거나 기존 노드의 리소스를 증가시키는 방식으로 이루어질 수 있습니다.

 

워커노드(Worker Node) 설치

 

가상메모리 swap off: 스왑이 활성화된 상태에서는 쿠버네티스의 스케줄러가 노드의 메모리 사용량을 정확히 파악할 수 없기 때문에 서비스 운영시 swap off 를 진행합니다. 

 

$ swapoff -a
$ free -h
               total        used        free      shared  buff/cache   available
Mem:            31Gi       9.6Gi        19Gi        53Mi       2.1Gi        21Gi
Swap:             0B          0B          0B

 

RKE2(Rancher Kubernetes Engine2) 설치
마스터와의 차이는 INSTALL_RKE2_TYPE="agent" 입니다.

 

$ curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -

 

kubectl 명령어가 실행될 수 있도록 기본 디렉토리로 연결한 뒤 환경변수를 등록해 줍니다.

 

$ mkdir ~/.kube/
$ cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
$ export PATH=$PATH:/var/lib/rancher/rke2/bin/
$ echo 'export PATH=/usr/local/bin:/var/lib/rancher/rke2/bin:$PATH' >> ~/.bashrc

 

쿠버네티스 마스터 노드와 워커 노드를 클러스터로 구성하기 위해 server ip와 token 값을 입력해 줍니다.
Server IP는 MasterNode의 IP값, Token값은 Master Node에서 조회한 값을 넣어준다.

 

  • 마스터 노드의 노드 토큰(Node Token) 값을 조회한다.
$ cat /var/lib/rancher/rke2/server/node-token

 

  • 워커노드에 노드 토큰(Node Token) 값을 저장하기 위해 디렉토리 및 생성한다.
$ mkdir -p /etc/rancher/rke2/
$ vi /etc/rancher/rke2/config.yaml

 

  • 마스터노드의 IP와 TOKEN을 저장한다
server: https://192.168.0.2:9345 #마스터노드의 IP 입력
token: K10b... # 마스터노드의 토큰 등록

 

RKE2 에이전트 서비스 실행

 

$ systemctl enable rke2-agent.service
$ systemctl start rke2-agent.service

 

일정 시간이 지난 후 status 명령어를 통해 서비스가 acrive (running) 상태인지 확인합니다.
정상적으로 올라갔으면 쿠버네티스 클러스터와 마스터노드가 설치되었습니다.

 

$ systemctl status rke2-agent
● rke2-agent.service - Rancher Kubernetes Engine v2 (agent)
     Loaded: loaded (/usr/local/lib/systemd/system/rke2-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-09-12 17:43:24 KST; 1 week 1 day ago
       Docs: https://github.com/rancher/rke2#readme
   Main PID: 2496629 (rke2)
      Tasks: 358
     Memory: 420.1M
        CPU: 10h 24min 59.441s
     CGroup: /system.slice/rke2-agent.service

 

kubectl 명령어를 통해 Worker Node(워커 노드)가 쿠버네티스 클러스터에 올라갔는지 확인합니다.
ROLES에 <none> 으로 표기된곳이 Worker Node 입니다. 

 

$ kubectl get nodes
NAME         STATUS   ROLES                       AGE   VERSION
devops01     Ready    <none>                      8d    v1.25.13+rke2r1
prod-board   Ready    control-plane,etcd,master   23d   v1.25.12+rke2r1

 

Worker Node(워커 노드)에 대한 설치가 완료 되었습니다.

이제 Master Node(마스터 노드)에 Rancher(랜처)를 설치해보도록 하겠습니다.

쿠버네티스(Kubernetes), 랜처(Rancher, RKE2) 설치 3편 (tistory.com)

 

쿠버네티스(Kubernetes), 랜처(Rancher, RKE2) 설치 3편

📌 Rancher 란 무엇인가 Rancher는 Kubernetes 클러스터를 관리하고 운영하기 위한 오픈 소스 플랫폼으로, Kubernetes를 더 쉽게 구축하고 관리할 수 있도록 도와주는 도구입니다. Rancher를 사용하면 배포,

whybk.tistory.com

 

반응형