Kubernetes

kubespray kubernetes 설치하기

babbeolicoding 2023. 10. 17. 21:15

아래 예제는 master, node 각 1대씩으로 구성해서 세팅을 진행해 봤다.

간편하게 작업하기 위해 master와 node 서버의 계정을 통일시켜 준다.

 

kuber라는 이름의 계정을 생성

sudo adduser kuber
sudo usermod -a -G sudo kuber

 

python, ansible 설치

#python, ansible 설치
sudo apt install python3-pip
sudo apt install ansible python3-argcomplete
pip install ansible

 

키 생성 후 복사

ssh-keygen
ssh-copy-id kuber@{master-server}
ssh-copy-id kuber@{node-server}

 

kubespray 관련 설치

#git 설치
sudo apt-get install git
git clone -b v2.20.0 https://github.com/kubernetes-sigs/kubespray.git
cd kubespray
#요구사항 설치
pip install -r requirements.txt

cp -rfp inventory/sample inventory/mycluster
declare -a IPS=({master-server-ip} {node-server-ip})
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

 

host 정보 세팅(master, node가 1대씩이라 kube_control_plane과 kube_node가 각각 1개씩 밖에 없다)

nano inventory/mycluster/hosts.yaml

 

kubernetes 설치

#sshpass 설치
sudo apt-get install sshpass

ansible 옵션
-k : ansible 실행 시 ansible 호스트의 비밀번호를 물어볼 수 있도록 하는 옵션
-K : ansible 실행 시 호스트 서버의 root 권한을 얻기 위한 옵션(일반 계정 사용 시 루트권한으로 수행)

#설치
ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root cluster.yml -kK

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