ITFragile
[Kubernetes] 01. 작업 환경 구성 본문
작업환경 : 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
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
'Project' 카테고리의 다른 글
[Kubernetes] 03. Docker image build하기 (0) | 2023.03.21 |
---|---|
[Kubernetes] 02. DB StatefulSet으로 이중화 구성 (0) | 2023.03.21 |
[Ansible] 08. DB 로드밸런싱 (0) | 2023.03.16 |
[Ansible] 07. php 활성화 (0) | 2023.03.16 |
[Ansible] 06. mysql 구성하기 (0) | 2023.03.16 |