쿠버네티스(18) : kubespray로 클러스터 구축

NOHHYEONGJUN·2024년 10월 25일

쿠버네티스

목록 보기
19/23

0. Network 구성 예시

control-plane-1 에서 배포를 진행하겠다.

OS : Ubuntu 24.04

control-plane-1 : 10.0.0.1
control-plane-2 : 10.0.0.2
node-1 : 10.0.0.11
node-2 : 10.0.0.12
node-3 : 10.0.0.13

 

 


1. root 로그인 허용 (모든 노드)

sudo su -
vi /etc/ssh/sshd_config

# yes로 수정 #
PermitRootLogin yes

 

 


2. public key 복사 (control-plane-1)

sudo su -
ssh-keygen -t rsa -b 2048

ssh-copy-id root@10.0.0.1
ssh-copy-id root@10.0.0.2
ssh-copy-id root@10.0.0.11
ssh-copy-id root@10.0.0.12
ssh-copy-id root@10.0.0.13

 

 


3. kubespray 설치 및 설정 (control-plane-1)

sudo su -

apt update

apt install python3-pip -y

git clone https://github.com/kubernetes-sigs/kubespray.git

cd kubespary

pip3 install -r requirements.txt

cp -rpf inventory/sample inventory/mycluster

 

 


4. ansible inventory 설정 (control-plane-1)


vi inventory/mycluster/inventory.ini

[all]

control-plane-1 ansible_host=10.0.0.1 ip=10.0.0.1

control-plane-2 ansible_host=10.0.0.2 ip=10.0.0.2

node-1 ansible_host=10.0.0.11 ip=10.0.0.11

node-2 ansible_host=10.0.0.12 ip=10.0.0.12

node-3 ansible_host=10.0.0.13 ip=10.0.0.13



[kube_control_plane]

control-plane-1 ansible_host=10.0.0.1 ip=10.0.0.1

control-plane-2 ansible_host=10.0.0.2 ip=10.0.0.2



[etcd]

control-plane-1 ansible_host=10.0.0.1 ip=10.0.0.1



[kube_node]

node-1 ansible_host=10.0.0.11 ip=10.0.0.11

node-2 ansible_host=10.0.0.12 ip=10.0.0.12

node-3 ansible_host=10.0.0.13 ip=10.0.0.13



[calico_rr]



[k8s_cluster:children]

kube_control_plane

kube_node

calico_rr

 

 


5. playbook 실행 (control-plane-1)

1. 노드 간 통신 사전 확인
ansible all -m ping -i inventory/mycluster/inventory.ini

 

2. playbook 실행
ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b --become-user=root

 

 


6. 일반 사용자 권한 설정 (control-plane-1)

1. kubeconfig 파일 복사
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

2. 환경변수 설정
echo "export KUBECONFIG=$HOME/.kube/config" >> ~/.bashrc
source ~/.bashrc
→ 재부팅 시 유지하도록 설정 (선택 사항)

 

3. 권한 확인
kubectl get no

profile
Cloud/DevOps & Network Virtualization에 관심 있는 Engineer입니다. 🐳⚓️👨‍✈️

0개의 댓글