멀티 노드를 구현하기 위해서는 여러 대의 서버가 있거나
혹은 가상머신을 설치하여 여러 대의 가상 서버를 구축해야합니다.
1. 가상머신 설치(리눅스기반 설치)
1-1. Virtual Box 설치
https://www.virtualbox.org/wiki/Download_Old_Builds_5_2(Virtual Box 설치 링크)
위 링크 접속 후
메인 PC의 OS에 맞는 것을 다운로드!
1-2. CentOS7 ISO 설치
https://www.centos.org/download/(centOS7 설치 링크)
x86_64 ISO 클릭!
저기서 아무곳 클릭! (네이버 클릭했음)
저기서 맨 위에있는 iso 파일 다운로드 했습니다.
적은 용량으로 하고싶다면 밑에 Minimal 버전 iso 파일 다운로드!
나머지 Virtual box에 centOS7 설정 및 실행은 https://xxsiyoung.tistory.com/2 참조
2. SSH 연결
kubespray는 ansible을 기반으로 하기 때문에 SSH 연결이 되어있어야 합니다.
https://amorfati-1000.tistory.com/50(윈도우 SSH 설치 및 연결)
마스터 노드가 될 노드에서 key 생성
ssh-keygen -t rsa
마스터로부터 노드에게 key를 복사
ssh-copy-id root@<ip>
master에도 ssh-copy-id 작업을 해주어야합니다.
3. 마스터 노드 환경 구성
마스터 노드에 필요한 패키지들 설치
yum install -y python3, python3-pip
4. Kubernetes 설치 전 환경설정
4-1. /proc/sys/net/ipv4/ip_forward 활성화 (Master Node & Worker Node)
sysctl net.ipv4.ip_forward=1
4-2. firewalld 중지 및 disable (Master Node & Worker Node)
systemctl stop firewalld && systemctl disable firewall
4-3. swap 메모리 중지
swapoff -a
4-4. selinux off
setenforce 0
vi /etc/selinux/config 파일을 확인!
5. Kubespray 설치 및 구성
5-1. kubespray git clone 하기
sudo git clone https://github.com/kubernetes-sigs/kubespray
cd kubespray
5-2. 필요한 패키지들 설치
sudo pip3 install -r requirements.txt
5-3. inventory.ini 파일 정의
- kubespray/inventory/sample/inventory.ini 파일 정의
5-4. 필요한 addons 설정
- kubespray/inventory/sample/group_vars/k8s-cluster/addons.yml 파일
helm repo (쿠버네티스의 패키지 매니저)
metrics_server(쿠버네티스 리소스 현황 및 모니터링 패키지)
ingress_controller(쿠버네티스 네트워크 관련 오브젝트 패키지)
true로 바꿔주기
5-5. iptables로 바꿔주기
- kubespray/inventory/sample/group_vars/k8s-cluster/k8s-cluster.yml 파일
ipvs => iptables 로 바꿔주기
5-6. ansible-playbook 실행
- kubespray 폴더(cluster.yml 파일이 존재하는 곳)에서 실행
ansible-playbook --flush-cache -K -b --become-user=root -i inventory/sample/inventory.ini cluster.yml -v
이렇게 하면 설치가 진행됩니다.
그리고 전부 완료가되면 쿠버네티스가 구축이 완료가 된 것입니다.
설치 도중 & 이후 참고 사이트
설치시 나타나는 오류 해결 했던 것들
https://junghyeonsu.tistory.com/49
PHP - Redis 이용한 방명록 애플리케이션 배포하기
https://kubernetes.io/ko/docs/tutorials/stateless-application/guestbook/
[Kubernetes 공식문서 파헤치기] Redis를 사용한 PHP 방명록 애플리케이션 배포하기 + PV, PVC, Affinity 사용해보기
쿠버네티스 고가용성 테스트하기 (방명록 애플리케이션 기준)
https://junghyeonsu.tistory.com/58
쿠버네티스 CI/CD 맛보기
'Kubernetes & Docker' 카테고리의 다른 글
[Amazon] EC2 인스턴스에 S3 스토리지 마운트하기 (1) | 2020.08.27 |
---|---|
[Kubernetes]쿠버네티스 CI/CD에 대해서 (0) | 2020.08.24 |
[Kubernetes]쿠버네티스 컨트리뷰터 되기 : 쿠버네티스 문서에 기여하기 (0) | 2020.08.19 |
[Kubernetes 공식문서 파헤치기] 고가용성 테스트(pod 부하분산, auto scaler 적용하기) (2) | 2020.08.13 |
[Kubernetes 공식문서 파헤치기] Redis를 사용한 PHP 방명록 애플리케이션 배포하기 + PV, PVC, Affinity 사용해보기 (0) | 2020.08.10 |