Notice
Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

ITFragile

[Kubernetes] 01. 작업 환경 구성 본문

Project

[Kubernetes] 01. 작업 환경 구성

경요 2023. 3. 20. 17:38

작업환경 : virtualbox / ubuntu 20.04

Kubespray를 이용한 쿠버네티스 클러스터 설치

 

Control Plane (마스터 노드) : 1대

node : 3대

 

Control-node Info

name: control-plane01

ip : 192.168.56.11

 

node01 Info

name: node01

ip : 192.168.56.21

 

node02 Info

name: node02

ip : 192.168.56.22

 

node03 Info

name: node03

ip : 192.168.56.23

 


vagrant ssh control-plane01

 

1. 키 생성

ssh-keygen

2. 키 복사

ssh-copy-id vagrant@node01
ssh-copy-id vagrant@node02
ssh-copy-id vagrant@node03

 

3. 패키지 설치

sudo apt upgrade
sudo apt install python3 python3-pip git -y

4. kubespray 사용을 위한 프로세스 설치

git clone --single-branch --branch=release-2.18 https://github.com/kubernetes-sigs/kubespray.git

5. 추가 패키지 설치

cd kubespray
sudo pip3 install -r requirements.txt

 

6. 샘플파일 복사

cp -rfp inventory/sample inventory/mycluster

 

7. 인벤토리 파일 수정

# vim inventory/mycluster/inventory.ini

[all]
controlplane01          ansible_host=192.168.56.11 ip=192.168.56.11 ansible_connection=local
node01                          ansible_host=192.168.56.21 ip=192.168.56.21
node02                          ansible_host=192.168.56.22 ip=192.168.56.22
node3                          ansible_host=192.168.56.23 ip=192.168.56.23

[all:vars]
ansible_python_interpreter=/usr/bin/python3

[kube-master]
controlplane01

[etcd]
controlplane01

[kube-node]
node01
node02
node3

[calico-rr]

[k8s-cluster:children]
kube-master
kube-node
calico-rr

8. 설정파일 수정

# vim inventory/mycluster/group_vars/k8s_cluster/addons.yml

metrics_server_enabled: true
ingress_nginx_enabled: true
metallb_enabled: true

metallb_ip_range:
  - "192.168.56.50-192.168.56.99"   # 주석 해제 및 수정
metallb_protocol: "layer2"		# 주석 해제 및 수정
# vim inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml

kube_proxy_strict_arp: true

 

9. 설치 전 ping 확인

ansible all -i inventory/mycluster/inventory.ini -m ping

10. 설치

ansible all -i inventory/mycluster/inventory.ini -m apt -a 'update_cache=yes' -b # 전체 업데이트
ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b # 설치

 

11. 설치 확인

sudo kubectl get nodes

노드들이 모두 ready 상태여야 함

12. 명령어 권한 설정

$ sudo -i # 루트 사용자로 전환

mkdir ~vagrant/.kube
cp /etc/kubernetes/admin.conf ~vagrant/.kube/config
chown vagrant:vagrant -R ~vagrant/.kube # 권한 설정

 


본격적으로 구성하기 앞서, 테인트 설정으로 node03에 파드 배포되지 않도록 해준다.

현재 노드는 총 3개지만 node03의 경우는 예비용으로 구성 예정이므로 테인트 처리 한다.

kubectl taint node node03 gpu:NoSchedule