0. 설치 환경
- kubspray 서버
Ubuntu , CPU 2, Memory 2G
Hostname : k8sbootstrap
ip : 192.168.101.143
- Control plane 1대
Ubuntu , CPU 2, Memory 2G
Hostname : k8smaster
ip : 192.168.101.144
- Worker node 3대
Ubuntu cpu 2, memory 2G
1번 worker node
Hostname : k8sslave1
Ip : 192.168.101.145
2번 worker node
Hostname : k8sslave2
Ip : 192.168.101.146
3번 worker node
Hostname : k8sslave3
Ip : 192.168.101.147
내가 설치할 사양은 kubespray 2.16 버전으로
Kubernetes 1.20 버전을 지원한다.
OS 는 ubuntu 20.04.6 LTS server 로 통일 했다. (우분투 사용시 버전에 유의)
kubernetes-sigs/kubespray at release-2.16 (github.com) 페이지의 하단을
잘 읽어보고 지원하는 os 나 기타 의존성 있을만한 버전이 원하는 버전인지
확인해봐야 한다.
1. 모든 서버에 swap 을 off 시킨다.
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
(k8s 에서는 swap 을 지원하지 않는다.
사유는 컨테이너 속도가 node 마다 천차 만별이 되는등 제어가 힘들기 때문이다)
2. SSH 키 생성 및 복사 (kubespray 서버에서 작업)
kubespray 서버에서
Shell> ssh-keygen -t rsa -b 2048
shell> ssh-copy-id root@192.168.101.144
shell> ssh-copy-id root@192.168.101.145
shell> ssh-copy-id root@192.168.101.146
shell> ssh-copy-id root@192.168.101.147
(Root 로 로그인이 안될 경우
https://shonm.tistory.com/749 내용을 참고)
3. kubespray 소스를 git clone 받기 (kubespray 서버 에서 작업)
shell> git clone -b v2.16.0 https://github.com/kubernetes-sigs/kubespray.git
4. 설치에 필요한 패키지 설치 (kubespray 서버 에서 작업)
shell> cd kubespray
shell> sudo apt update (이 명령어는 전 서버에 다 실행시켜줌)
shell> sudo apt install python3-pip -y
shell> pip3 install -r requirements.txt
(kubespray 다운받은 폴더의 requirements.txt 에 필요한 패키지가 기술되어 있다)
shell> cp -rpf inventory/sample/ inventory/testcluster
5. 설치할 서버들의 ansible inventory 구성
shell> vi inventory/testcluster/inventory.ini
[all]
k8smaster ansible_host=192.168.101.144 ip=192.168.101.144
k8sslave1 ansible_host=192.168.101.145 ip=192.168.101.145
k8sslave2 ansible_host=192.168.101.146 ip=192.168.101.146
k8sslave3 ansible_host=192.168.101.147 ip=192.168.101.147
[kube_control_plane]
k8smaster
[etcd]
k8smaster
[kube_node]
k8sslave1
k8sslave2
k8sslave3
[calico_rr]
[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr
6. Ansible 플레이북 실행 (~/kubespray 폴더에서 실행, kubespray 서버에서 실행)
- Ping 체크로 서버들 연결 되는지 확인
shell> ansible all -m ping -i inventory/testcluster/inventory.ini
- Ansible 로 클러스터 설치
Shell> ansible-playbook -i inventory/testcluster/inventory.ini cluster.yml -b --become-user root -e ansible_ssh_timeout=50 -vvv
잘 설치 되었는지 확인 하기 위해 k8smaster 서버에 가서
shell> kubectl get node
명령어로 설치를 확인 해본다.
- Kubespray 2.16 은 아래와 같이 kubernetes 1.20.7 버전이 default 라서 위와 같이 버전이 설치 된 것이므로 쿠버네티스 정상 설치가 완료 되었다.
'Kubernetes' 카테고리의 다른 글
쿠버네티스 (Kubernetes) 설치 (ubuntu, kubeadm) (2) | 2023.04.26 |
---|---|
Unable to locate package update (kubeadm 에서) 발생 시 해결책 (0) | 2023.04.16 |
[ Kubernates ] 쿠버네티스 설치 (centos) (0) | 2022.10.03 |
[ Kubernates ] curl -sSL http://IP:10248/healthz' failed with error 발생 (0) | 2022.10.03 |
[ Kubernates ] NAMESPACE 설정 (0) | 2022.08.16 |
댓글