클라우드/Kubernetes

(Kubernetes) kubespray로 클러스터 구성하기

Cloud_Park 2023. 2. 10. 14:19

클라우드인스턴스에 kubespray로 클러스터 구성하기 

kubespray는  ansible로  진행되어 아래의 설정이 필요합니다.

환경 : 클라우드 인스턴스 서버 

OS: 우분투 20.04 

서버 수: 4 (마스터 노드3 , 워커노드 1) 

 

 

모든 서버에서 하는걸 권장

2023.02.09 - [운영체제/리눅스] - (리눅스) 클라우드인스턴스에 ssh public key 배포

 

(리눅스) 클라우드인스턴스에 ssh public key 배포

클라우드에서 ansible /kubespray를 사용하기 위해 ssh-keygen / ssh-copy-id 명령어를 사용하게 되는데 키복사가 되지 않는다. 하기의 방법을 통해 복사할 수 있다. 이전에 발생한 에러 메시지는 root@kube4:~/.

blog.base-on.co.kr

2023.02.10 - [운영체제/리눅스] - (리눅스)클라우드 인스턴스 root 계정 활성화하기

 

(리눅스)클라우드 인스턴스 root 계정 활성화하기

[AWS, NHN Cloud] 인스턴스에 root 계정 활성화 안녕하세요. Cloud Park 입니다. 기본 인스턴스에 루트 계정으로 로그인을 불가능하지만 별도 root로그인이 필요한 경우가 있다. ansible을 구성할 때 필요하

blog.base-on.co.kr

 

1. 기본 소스파일 설치

설치할 서버에서
git clone https://github.com/kubernetes-sigs/kubespray.git

sudo apt update -y

sudo apt install -y python3-pip
pip3 --version
cd kubespray/
sudo pip3 install -r requirements.txt

2. 샘플파일 복사 및  내용 수정

cp -rfp inventory/sample inventory/mycluster
vi inventory/mycluster/inventory.ini
---
[all]
node1 ansible_host=아이피 ip=아이피
node2 ansible_host=아이피 ip=아이피
node3 ansible_host=아이피 ip=아이피

[kube_control_plane]
node1
node2
node3

[etcd]
node1
node2
node3

[kube_node]
node1
node2
node3
node4

[calico_rr]

[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr

 

 

3. 플레이북 실행

ansible all -m ping -i inventory/mycluster/inventory.ini
ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b

 

4. 결과 확인

아래에 파일 내용 확인

해당 파일 ~/.kube/config 와 동일
sudo vi /etc/kubernetes/admin.conf

 

 

만일 다른 유저에서 명령어를 사용을 원하면 하기와 같이 한다.

sudo mkdir /home/유저/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/config
sudo chown 유저 /home/유저/.kube/config

 

 

별도 설정한 것 

/etc/hosts에 node 추가

 

 

 

옵션

변수 설정 : inventory/mycluster/group_vars