[k8s] kubespray로 kubernetes(쿠버네티스) 설치하기

 

 

실습 환경

k8s-master-1
CentOS 7.8
IP : 192.168.56.102

k8s-master-2
CentOS 7.8
IP : 192.168.56.106

k8s-worker-1
CentOS 7.8
IP : 192.168.56.107

k8s-worker-2
CentOS 7.8
IP : 192.168.56.108

Python3 설치

 

사전 작업(모든 서버에서 진행)

swap 메모리 비활성화

[root@k8s-master-1 /]# swapoff -a

 

ip forward 설정

[root@k8s-master-1 /]# cat /proc/sys/net/ipv4/ip_forward # 설정 확인
0
[root@k8s-master-1 /]# echo 1 > /proc/sys/net/ipv4/ip_forward # 설정 적용
[root@k8s-master-1 /]# cat /proc/sys/net/ipv4/ip_forward # 설정 확인
1

 

kubernetes 설치하기(k8s-master-1에서 진행)

호스트네임으로 접속하기 위해 hosts 파일에 모든 서버 등록

[root@k8s-master-1 /]# cat /etc/hosts | grep k8s
192.168.56.102 k8s-master-1
192.168.56.106 k8s-master-2
192.168.56.107 k8s-worker-1
192.168.56.108 k8s-worker-2

 

k8s-master-1 서버에서 다른 서버에 패스워드 입력 없이 ssh 접속 가능하도록 설정

[root@k8s-master-1 ~]# ssh-keygen -t rsa

 

[root@k8s-master-1 /]# ssh-copy-id root@k8s-master-1
[root@k8s-master-1 /]# ssh-copy-id root@k8s-master-2
[root@k8s-master-1 /]# ssh-copy-id root@k8s-worker-1
[root@k8s-master-1 /]# ssh-copy-id root@k8s-worker-2

 

kubespray 패키지 다운로드

[root@k8s-master-1 /]# cd /usr/local/src
[root@k8s-master-1 src]#
[root@k8s-master-1 src]# git clone https://github.com/kubernetes-sigs/kubespray.git
Cloning into 'kubespray'...
remote: Enumerating objects: 45191, done.
remote: Total 45191 (delta 0), reused 0 (delta 0), pack-reused 45191
Receiving objects: 100% (45191/45191), 13.19 MiB | 5.42 MiB/s, done.
Resolving deltas: 100% (25184/25184), done.

 

kubespray 디렉토리로 이동하여 requirments.txt 파일을 열어봅니다.

k8s를 설치하기 위해 사전에 아래 패키지들을 설치해야 합니다.

[root@k8s-master-1 kubespray]# cat requirements.txt
ansible==2.9.6
jinja2==2.11.1
netaddr==0.7.19
pbr==5.4.4
hvac==0.10.0
jmespath==0.9.5
ruamel.yaml==0.16.10

 

pip 명령어로 설치 진행

[root@k8s-master-1 kubespray]# pip3 install -r requirements.txt

 

다음은 inventory.ini 파일을 설정하는 단계입니다. 우선 sample 디렉토리를 first_cluster로 copy 합니다.

[root@k8s-master-1 kubespray]# cp -rfp inventory/sample inventory/first_cluster

 

firsy_cluster 디렉토리 내 inventory.ini 파일을 열어서 아래 이미지와 같이 서버를 등록해줍니다.

[root@k8s-master-1 inventory]# vim ./inventory/first_cluster/inventory.ini

 

master 2대 worker 1대 etcd에는 k8s-master-1 1대만 설정했습니다.

처음에 etcd 2대로 설정을 했는데 설치 단계에서 에러가 발생하여 확인해보니 홀수로 설정이 필요하다고 하네요.

그래서 일단 테스트이니 1대로 설정을 했습니다.

 

k8s cluster 구성

ansible-playbook을 이용하여 cluster.yml 파일을 실행합니다.

[root@k8s-master-1 kubespray]# ansible-playbook  -i ./inventory/first_cluster/inventory.ini cluster.yml

 

설치 완료!!! 17분 걸렸네요

 

kubectl 명령어로 node 확인

댓글

Designed by JB FACTORY

loading