문서 목차
노드 프로비저닝 (VM 생성)
Kubernetes를 설치하기 전에 대상 서버(노드)가 준비되어 있어야 합니다. 이미 준비된 베어메탈/가상 서버가 있다면 이 단계를 건너뛰어도 되지만, OpenStack 환경이라면 Terraform으로 VM 생성부터 자동화할 수 있습니다.
QUANTUM C&S
Kubernetes를 설치하기 전에 대상 서버(노드)가 준비되어 있어야 합니다. 이미 준비된 베어메탈/가상 서버가 있다면 이 단계를 건너뛰어도 되지만, OpenStack 환경이라면 Terraform으로 VM 생성부터 자동화할 수 있습니다.
Terraform 설정
Terraform 코드는 terraform/openstack/<사이트이름>/에 있습니다(ubuntu/redhat/oracle 중 OS에
맞는 것). 해당 디렉토리로 이동합니다.
cd terraform/openstack/ubuntu
같은 디렉토리의 terraform.tfvars 파일에 이미 예시 값이 채워져 있습니다. 편집기로 열어서
환경에 맞게 값을 수정합니다(새로 만드는 파일이 아니라 기존 파일을 수정하는 것입니다).
ubuntu24로 지정하면 노드 이름이 k8s-ubuntu24-m01, k8s-ubuntu24-w01 형태로 만들어집니다.~/qks.pem과 일치해야 합니다.CI/CD, GPU, NFS, Ceph 전용 노드도 같은 방식(qks_kube_<역할>_flavor, _num, _volume_type)으로
설정합니다. 해당 역할이 필요 없으면 _num을 0으로 둡니다(기본값).
inventory_file 값은 VM 생성 후 접속 정보가 자동으로 기록될 인벤토리 파일 경로입니다. 기본값을 그대로 두면 inventory/qks/hosts.<사이트이름>에 생성됩니다.
VM 생성 — Terraform 직접 실행
같은 디렉토리(terraform/openstack/ubuntu)에서 실행합니다.
terraform init # 최초 1회만 필요
terraform plan # 생성될 리소스 미리 확인 (선택)
terraform apply
terraform.tfvars라는 이름의 파일은 Terraform이 자동으로 읽으므로 별도 옵션을 줄 필요가 없습니다.
apply 확인 프롬프트에 yes를 입력하면 VM이 생성되고, 완료 후 inventory_file에 지정한
경로(예: inventory/qks/hosts.ubuntu)에 서버 목록이 자동으로 기록됩니다.
terraform apply를 실행할 때마다 자동으로 덮어써집니다. 인벤토리 파일을 직접 수정한 내용이 있다면 다음 실행 시 사라지니 주의하세요.
VM 생성 — install.sh로 실행 (동일 작업의 단축 명령)
저장소 루트의 install.sh는 위 Terraform 명령과 뒤이어 나올 Ansible 설치 명령을 한 번에 실행할
수 있게 감싸놓은 스크립트입니다. 문법은 다음과 같습니다.
./install.sh <사이트이름> <동작>
<동작> 자리에 무엇을 넣느냐에 따라 동작이 달라집니다.
terraform apply만 실행합니다. VM만 만들고 Kubernetes는 설치하지 않습니다.terraform apply로 VM을 만든 뒤, 이어서 all.yaml 플레이북(전체 스택)까지 한 번에 설치합니다.k8s.yaml, iaas.yaml. Terraform은 건너뛰고, 이미 만들어진 VM에 해당 플레이북만 실행합니다. 다음 문서(Kubernetes 설치)에서 사용하는 방식입니다.지금 단계(VM만 생성)에서는 저장소 루트로 돌아가 아래처럼 실행하면 됩니다. 위 Terraform 3단계 명령과 결과가 동일합니다.
cd /home/ubuntu/k8s
./install.sh ubuntu vm
생성 확인
cat inventory/qks/hosts.ubuntu
ansible -i inventory/qks/hosts.ubuntu kube-cluster -m ping
설정한 대수만큼 서버가 보이고 전부 "pong" 응답이 오면 준비가 끝난 것입니다. 이어서
Kubernetes 설치를 진행합니다.
리소스 정리
클러스터를 완전히 삭제하려면 VM 자체를 지웁니다.
cd terraform/openstack/ubuntu && terraform destroy # 직접 실행
# 또는 저장소 루트에서
./uninstall.sh ubuntu all # 단축 명령