티스토리 뷰
1. kubespray를 활용한 간단한 클러스터 자동화 설치
1) kubespray 설치
- Vagrant 등을 활용해서 보다 쉽게 할 수 있지만, 실제 업무에서 활용되는 kubespray, ansible등을 활용하여 설치를 진행하겠습니다.
sjw1995628/kubespray: Deploy a Production Ready Kubernetes Cluster
GitHub - sjw1995628/kubespray: Deploy a Production Ready Kubernetes Cluster
Deploy a Production Ready Kubernetes Cluster. Contribute to sjw1995628/kubespray development by creating an account on GitHub.
github.com
git clone https://github.com/sjw1995628/kubespray.git
- kubespray/inventory/mycluster/hosts.yml에 우리가 구성할 클러스터 정보가 담겨있다. 해당 정보를 확인한다. (아이디나 비밀번호는 본인 알아서 수정)
all:
hosts:
localhost:
ansible_connection: local
ubun20-01:
ansible_host: 172.17.29.61
ansible_user: jwson
ip: 172.17.29.61
access_ip: 172.17.29.61
ansible_become: true
ansible_become_pass: <pw>
ubun20-02:
ansible_host: 172.17.29.62
ansible_user: jwson
ip: 172.17.29.62
access_ip: 172.17.29.62
ansible_become: true
ansible_become_pass: <pw>
ubun20-03:
ansible_host: 172.17.29.63
ansible_user: jwson
ip: 172.17.29.63
access_ip: 172.17.29.63
ansible_become: true
ansible_become_pass: <pw>
children:
kube_control_plane:
hosts:
ubun20-01:
ubun20-02:
ubun20-03:
kube_node:
hosts:
ubun20-01:
ubun20-02:
ubun20-03:
etcd:
hosts:
ubun20-01:
ansible_host: 172.17.29.61
ubun20-02:
ansible_host: 172.17.29.62
ubun20-03:
ansible_host: 172.17.29.63
k8s_cluster:
children:
kube_control_plane:
kube_node:
calico_rr:
calico_rr:
hosts: {}
- 필요한 업데이트 및 파이썬 설치
jwson@ubun20-01:~$ sudo apt update -y
jwson@ubun20-01:~$ sudo apt install -y python3-pip
jwson@ubun20-01:~$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
jwson@ubun20-01:~$ cd kubespray/
jwson@ubun20-01:~/kubespray$ sudo pip3 install -r requirements.txt
ERROR: Could not find a version that satisfies the requirement ansible==9.13.0 (from -r requirements.txt (line 1)) (from versions: 1.0, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.7, 1.7.1, 1.7.2, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.9.0.1, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 2.0.0.0, 2.0.0.1, 2.0.0.2, 2.0.1.0, 2.0.2.0, 2.1.0.0, 2.1.1.0, 2.1.2.0, 2.1.3.0, 2.1.4.0, 2.1.5.0, 2.1.6.0, 2.2.0.0, 2.2.1.0, 2.2.2.0, 2.2.3.0, 2.3.0.0, 2.3.1.0, 2.3.2.0, 2.3.3.0, 2.4.0.0, 2.4.1.0, 2.4.2.0, 2.4.3.0, 2.4.4.0, 2.4.5.0, 2.4.6.0, 2.5.0a1, 2.5.0b1, 2.5.0b2, 2.5.0rc1, 2.5.0rc2, 2.5.0rc3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.5.10, 2.5.11, 2.5.12, 2.5.13, 2.5.14, 2.5.15, 2.6.0a1, 2.6.0a2, 2.6.0rc1, 2.6.0rc2, 2.6.0rc3, 2.6.0rc4, 2.6.0rc5, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.6.10, 2.6.11, 2.6.12, 2.6.13, 2.6.14, 2.6.15, 2.6.16, 2.6.17, 2.6.18, 2.6.19, 2.6.20, 2.7.0.dev0, 2.7.0a1, 2.7.0b1, 2.7.0rc1, 2.7.0rc2, 2.7.0rc3, 2.7.0rc4, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 2.7.17, 2.7.18, 2.8.0a1, 2.8.0b1, 2.8.0rc1, 2.8.0rc2, 2.8.0rc3, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.8.5, 2.8.6, 2.8.7, 2.8.8, 2.8.9, 2.8.10, 2.8.11, 2.8.12, 2.8.13, 2.8.14, 2.8.15, 2.8.16rc1, 2.8.16, 2.8.17rc1, 2.8.17, 2.8.18rc1, 2.8.18, 2.8.19rc1, 2.8.19, 2.8.20rc1, 2.8.20, 2.9.0b1, 2.9.0rc1, 2.9.0rc2, 2.9.0rc3, 2.9.0rc4, 2.9.0rc5, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.9.5, 2.9.6, 2.9.7, 2.9.8, 2.9.9, 2.9.10, 2.9.11, 2.9.12, 2.9.13, 2.9.14rc1, 2.9.14, 2.9.15rc1, 2.9.15, 2.9.16rc1, 2.9.16, 2.9.17rc1, 2.9.17, 2.9.18rc1, 2.9.18, 2.9.19rc1, 2.9.19, 2.9.20rc1, 2.9.20, 2.9.21rc1, 2.9.21, 2.9.22rc1, 2.9.22, 2.9.23rc1, 2.9.23, 2.9.24rc1, 2.9.24, 2.9.25rc1, 2.9.25, 2.9.26rc1, 2.9.26, 2.9.27rc1, 2.9.27, 2.10.0a1, 2.10.0a2, 2.10.0a3, 2.10.0a4, 2.10.0a5, 2.10.0a6, 2.10.0a7, 2.10.0a8, 2.10.0a9, 2.10.0b1, 2.10.0b2, 2.10.0rc1, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.4, 2.10.5, 2.10.6, 2.10.7, 3.0.0b1, 3.0.0rc1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 4.0.0a1, 4.0.0a2, 4.0.0a3, 4.0.0a4, 4.0.0b1, 4.0.0b2, 4.0.0rc1, 4.0.0, 4.1.0, 4.2.0, 4.3.0, 4.4.0, 4.5.0, 4.6.0, 4.7.0, 4.8.0, 4.9.0, 4.10.0, 5.0.0a1, 5.0.0a2, 5.0.0a3, 5.0.0b1, 5.0.0b2, 5.0.0rc1, 5.0.1, 5.1.0, 5.2.0, 5.3.0, 5.4.0, 5.5.0, 5.6.0, 5.7.0, 5.7.1, 5.8.0, 5.9.0, 5.10.0, 6.0.0a1, 6.0.0a2, 6.0.0a3, 6.0.0b1, 6.0.0b2, 6.0.0rc1, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.6.0, 6.7.0, 9.0.0a1, 9.0.0a2, 9.0.0a3, 9.0.0b1, 9.0.0rc1)
ERROR: No matching distribution found for ansible==9.13.0 (from -r requirements.txt (line 1))
- 해당 오류가 뜬다면, python3.10이 필요해서 그런거이다.일부 ansible은 3.8에서 안되는거 같다. 3.10을 설치해준다.
sudo apt update && sudo apt upgrade -y
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3-pip
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
python3.10 -m pip install -r requirements.txt
- inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml 해당 경로 설정 변경
# 차후 MetalLB 사용을 위함
# configure iarp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface
# must be set to true for MetalLB, kube-vip(ARP enabled) to work
kube_proxy_strict_arp: true
## Container runtime
## docker for docker, crio for cri-o and containerd for containerd.
## Default: containerd
container_manager: containerd
# audit log for kubernetes
kubernetes_audit: true
- 설치 시작 (시간이 많이 걸림)
ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml -vvvv\
#완료시
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 설치 완료
※ 파이썬 관련해서 오류가 자주 뜨는데
python 3.x - Ansible - install python3-apt package - Stack Overflow
Ansible - install python3-apt package
Using Ubuntu 18.04, Ansible 2.9, Python 3.6.9, have installed python3-apt On a basic ansible command ansible -b all -m apt -a "name=apache2 state=latest" Get Error: FAILED! => { &q...
stackoverflow.com
해당부분확인해서 바로 해결한적도 있으니 참고
'쿠버네티스 > 프로젝트' 카테고리의 다른 글
쿠버네티스 프로젝트 6) Traefik (0) | 2025.02.04 |
---|---|
쿠버네티스 프로젝트 5) MetalLB를 활용한 로드밸런서와 vote 어플리케이션 만들기 (0) | 2025.02.01 |
쿠버네티스 프로젝트 4) helm (0) | 2025.02.01 |
쿠버네티스 프로젝트 3) 로컬 원격설정 (0) | 2025.02.01 |
쿠버네티스 프로젝트 1) 서버 설치 (1) | 2025.01.29 |