쿠버네티스
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