쿠버네티스

Kubespray 간략 설치 방법

ipxy 2025. 3. 29. 16:27
728x90

Kubespray는 Ansible 플레이북을 활용하여 다양한 환경에서 Kubernetes 클러스터를 자동으로 설치하고 관리할 수 있는 오픈 소스 프로젝트입니다. 


1. 시스템 요구 사항 확인

  • 운영체제: Ubuntu, CentOS 등 주요 리눅스 배포판 지원
  • 소프트웨어:
    • Python 3 및 pip
    • Ansible v2.11 이상
    • Jinja 2.11 이상
    • Python netaddr 라이브러리
  • 하드웨어:
    • 마스터 노드: CPU 2개, 메모리 2GB 이상
    • 워커 노드: CPU 2개, 메모리 1GB 이상

2. 사전 준비

  • SSH 키 생성 및 배포: Kubespray를 실행할 컨트롤 노드에서 모든 대상 노드로 비밀번호 없이 SSH 접속이 가능하도록 설정합니다.
ssh-keygen -t rsa ssh-copy-id user@노드_주소
  • 방화벽 및 스왑 비활성화: 모든 노드에서 방화벽을 중지하고 스왑을 비활성화합니다.
sudo systemctl stop firewalld 
sudo systemctl disable firewalld 
sudo swapoff -a

3. Kubespray 다운로드 및 설치

  • Kubespray 저장소 클론:
git clone https://github.com/kubernetes-sigs/kubespray.git 
cd kubespray

 

  • 필요한 패키지 설치:
sudo pip3 install -r requirements.txt

4. 인벤토리 파일 구성

  • 샘플 인벤토리 복사:
cp -rfp inventory/sample inventory/mycluster
  • 인벤토리 파일 편집: inventory/mycluster/inventory.ini 파일을 열어 클러스터에 포함될 노드들을 정의합니다.

예:

[all] 
master ansible_host=192.168.1.1 ip=192.168.1.1 
worker1 ansible_host=192.168.1.2 ip=192.168.1.2 
worker2 ansible_host=192.168.1.3 ip=192.168.1.3 

[kube_control_plane] 
master 

[etcd] 
master 

[kube_node] 
worker1 
worker2 

[k8s_cluster:children] 
kube_control_plane 
kube_node

 


5. 클러스터 배포

  • Ansible 플레이북 실행: 다음 명령어로 Kubernetes 클러스터를 배포합니다.
ansible-playbook -i inventory/mycluster/inventory.ini --become --become-user=root cluster.yml

이 과정은 시스템 사양과 네트워크 상태에 따라 20~60분 정도 소요될 수 있습니다.


6. 설치 확인

  • Kubeconfig 설정: 마스터 노드에서 Kubernetes 설정 파일을 복사합니다.
mkdir -p $HOME/.kube 
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 노드 상태 확인:
kubectl get nodes

모든 노드가 Ready 상태로 표시되면 설치가 성공적으로 완료된 것입니다.

 

728x90