Kubernetes/kubernetes 설치

Kubernetes 자동 설치(kubespray 활용)

babbeolicoding 2024. 4. 17. 20:23

전제 조건

masternode 1대
(hostname : masternode)
workernode 2대
(hostname : workernode-1 , workernode-2)

 

사전 작업(모든 node master, worker node  전부)

#ssh설치
sudo apt-get install openssh-server

#계정생성(편하게 작업하기 위해 모든 서버의 계정을 통일 시켰음)
sudo adduser kuber
sudo usermod -a -G sudo kuber

 

python 설치, key 생성(master node 에서만 진행)

#python3 설치
sudo apt install python3-pip

#master node에서 key 생성 후 각 workernode로 전달
ssh-keygen
ssh-copy-id workernode-1@{workernode-1-ip}
ssh-copy-id workernode-2@{workernode-2-ip}

 

 

kubernetes 설치 (master node 에서만 진행)

#kubespray 다운로드
sudo apt-get install git
git clone -b v2.22.2 https://github.com/kubernetes-sigs/kubespray.git

#kubespray에서 제공하는 패키지 설치
cd kubespray
pip install -r requirements.txt

#ansible 설치
sudo apt install ansible

#sshpass 설치(ansible-playbook 사용 시 필요)
sudo apt-get install sshpass

#inventory 파일 복사
cp -rfp inventory/sample inventory/mycluster

#환경세팅
declare -a IPS=(masternode-ip workernode-1-ip workernode-1-ip)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

#node1, node2 ... 설정에 맞게 세팅을 해준다
nano inventory/mycluster/hosts.yaml



ansible으로 kubernetes 설치

#연결 테스트
ansible all -i inventory/mycluster/hosts.yaml -m ping -u kuber -kK

-k : ansible 실행 시 ansible 호스트의 비밀번호를 물어볼 수 있도록 하는 옵션
-K : ansible 실행 시 호스트 서버의 root 권한을 얻기 위한 옵션(일반 계정 사용 시 루트권한으로 수행)
-u : ssh 접속시 사용할 계정
-e kube_version : kubernetes 버전 선택 가능

#설치
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -u kuber -e kube_version=v1.24.5 --become --become-user=root -Kk

 

 

confg 파일 복사

sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

kubespray 추가 기능

#worker node 제거
ansible-playbook -i inventory/mycluster/hosts.yaml remove-node.yml --extra-vars "node=삭제할node이름" -u kuber --become --become-user=root -kK

#worker node 추가
hosts.yaml 에 노드에 대한 정보를 추가해야함
ansible-playbook -i inventory/mycluster/hosts.yaml scale.yml -u kuber --become --become-user=root -kK

#클러스터 업데이트
(-e kube_version 옵션을 사용하면 버전 선택도 가능)
ansible-playbook -i inventory/mycluster/hosts.yaml upgrade-cluster.yml -u kuber --become --become-user=root -kK

#클러스터 삭제
ansible-playbook -i inventory/mycluster/hosts.yaml reset.yml -u kuber --become --become-user=root -kK

 

'Kubernetes > kubernetes 설치' 카테고리의 다른 글

DNSConfigForming  (0) 2025.03.07