쿠버네티스를 설치하는 방법은 여러가지가 있다. 그 중 내가 직접 구성해본 방법은 5가지다.
- Rancher로 K8S 클러스터를 구성하는 방법
- kubespray로 K8S 클러스터를 구성하는 방법
- kubeadm으로 K8S 클러스터를 구성하는 방법
- MiniKube를 설치하는 방법
- Terraform 템플릿으로 K8S 클러스터를 구성하는 방법
각각의 장단점이 있지만, kubeadm은 K8S를 구성할때 수동으로 구성 모듈을 하나 하나 설치해야해서 어려움이 있으나, 전체적인 구성요소를 이해하는데 장점이 있고, kubespray, MiniKube, Terraform은 설치가 매우 간단하다는 장점이 있다. Rancher의 경우 K8S를 Wrapping 프레임워크로 K8S에 대한 이해가 적어도 설치 운영이 가능한 장점이 있는 반면, 실 서비스로 운영 시 클러스터를 만들기 어렵고, 장애 대응이 쉽지 않았다.
오래 전 경험이지만 지금이라도 잊지 않도록 kubespary 로 k8s를 설치하는 방법을 간단하게 정리해본다. (다른 설치 방법도 계속 정리할 예정)
kubespray는 Ansible Playbook, Inventory, Provisioning Tool과 일반적인 운영체제, 쿠버네티스 클러스터의 설정 관리 작업에 대한 도메인 지식의 결합으로 만들어졌다. kubespray능 다음과 같은 기능을 제공한다. (쿠버네티스 공식 사이트 참고)
- 고가용성을 지닌 클러스터 생성
- 대부분의 리눅스 배포판 지원
- 지속적인 통합(CI) 테스트
1. 환경 구성 정보
- 노드 : 4 개
- 노드 OS : CentOS 7
- 도커 버전 : 18.09
- kubespray 버전 : 2.11.0
2. Node 정보
서버구분 | 역할구분 | 호스트명 | IP |
노드 #1 | MASTER | ks.master | 192.168.56.109 |
노드 #2 | WORKER | ks.worker01 | 192.168.56.110 |
노드 #3 | WORKER | ks.worker02 | 192.168.56.111 |
노드 #4 | WORKER | ks.worker03 | 192.168.56.112 |
3. 공통으로 작업할 것(모든 노드)
1. 모든 노드의 hostname을 2번 Node 정보와 같이 설정
2. 모든 노드의 보안 설정 변경
echo 1 > /proc/sys/net/ipv4/ip_forward
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux && cat /etc/sysconfig/selinux
setenforce 0
swapoff -a
4. 노드간 통신 설정
# 아래 작업은 모두 마스터 노드에서 작업할 것.
1. 마스터 노드 인증서 생성
ssh-kegen -t rsa
2. 마스터 노드의 공개키를 워커 노드로 배포
ssh-copy-id root@ks.worker01
ssh-copy-id root@ks.worker02
ssh-copy-id root@ks.worker03
3. 마스터 노드로 부터 워커 노드로의 접속 초기화
ssh root@ks.worker01
ssh root@ks.worker02
ssh root@ks.worker03
4. 마스터 노드에 kubespray 다운로드
cd /opt
wget https://github.com/kubernetes-incubator/kubespray/archive/v2.11.0.tar.gz
tar zxvf v2.11.0.tar.gz
이제 마스터 노드에 ansible, python, pip 등을 추가로 설치하고, ansible-playbook 으로 kubespray를 Deploy하면 된다.
한 페이지에 설치까지 다 정리하려고 했는데... 오늘은 정리 못할 것 같다.
kubespary 설치방법과 k8s 설치는 추가로 정리해야겠다.
'Automation > kubernetes' 카테고리의 다른 글
[장애처리] 쿠버네티스 운영 - 신규노드 추가 (0) | 2021.05.26 |
---|---|
kubespray 로 쿠버네티스 설치하기 #2-설치하기 (0) | 2020.11.09 |
Kubernetes 관리 - k9s (0) | 2020.09.28 |