전제 조건
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 |
---|