본문 바로가기

K8S 클러스터 구축 가이드

Ansible 기반 Kubespray로 K8S 클러스터 구축하기 (1)

※ 시작하기 전에 자료실에 올려둔 자료들중 CentOS 이미지 파일을 꼭 받아주세요!

※ VM웨어를 준비해주세요. (본 가이드 글은 VM웨어를 사용해서 구축하는 과정입니다.)

자료실 링크 : https://khs960508.tistory.com/7

 

1.가상머신 생성&설정

 

File Open 클릭하여 준비된 VMware 파일을 불러와 쿠버네티스 환경에 필요한 가상머신 노드를 만들어줍니다.

 

준비된 가상머신 파일중 그림과 같은 파일을 선택하여 열기를 눌러줍니다.

 

첫 번째 칸에 가상머신에 사용할 이름을 수정해주고, Import를 눌러 생성해줍니다.

스토리지는 C드라이브에 생성 되지만 Browse를 눌러 생성 위치를 변경할 수 있습니다.

 

생성이 완료되면 그림처럼 왼쪽 목록에 만들어진 가상머신들이 보입니다. 우클릭하여 Settings를 클릭합니다.

 

가상머신의 메모리와 용량, 네트워크 등의 설정을 해줄 수 있습니다. 그림처럼 네트워크 항목을 눌러 연결방식을 NAT로 해줍니다. 생성한 모든 가상머신을 똑같이 NAT설정 해줍니다.

 

2.IP설정과 sudoer설정

 

 

그림처럼 로그인하라는 화면이 뜨면 아이디와 비밀번호에 centos를 각각 입력하여 로그인합니다.

루트계정으로 들어가서 아래 명령어를 입력하여 설정파일을 열어줍니다.

# sudo -i
# visudo

 

방향키를 이용하여 아래쪽으로 내려와서 그림과 같은 부분을 찾아 내용을 입력하여 수정해줍니다.

 

설정이 정상적으로 완료되면 루트계정으로 들어갈 때 암호입력 없이 바로 로그인되는 것을 확인할 수 있습니다.

 

루트계정으로 로그인하여 아래 명령어를 입력하여 네트워크 설정을 해줍니다.

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

 

그림의 밑줄친 부분을 #으로 주석처리하고 아래에 내용을 참고하여 수정합니다.

BOOTPROTO=static
IPADDR=(자신의 가상머신에 사용할 아이피주소설정)
NETMASK=255.255.255.0
GATEWAY=(아래에 있는 게이트웨이확인방법 참고)
DNS1=168.126.63.1
DNS2=8.8.8.8

 

네트워크를 재부팅하여 설정한 내용을 적용시켜주고, 아이피주소를 확인합니다.

# systemctl restart network
# ifconfig

 

게이트웨이 주소 확인방법

상단의 Edit를 클릭하여 네트워크 에디터를 열어줍니다.

 

에디터를 열고 VMnet8 NAT타입을 선택하여 NAT Settings를 눌러줍니다. 세팅창이 열리면 오른쪽 사진처럼 게이트웨이 주소를 확인할 수 있습니다.

 

3.MobaXterm 사용을 위한 SSH 설정

 

centos 계정에서 아래 명령어를 입력합니다. 설정값은 기본값으로 엔터만 치시면 됩니다. 설정 완료 후 restart해줍니다.

# ssh-keygen t rsa
# sudo systemctl restart sshd

 

Bootstrap 노드에서 아래 명령어 입력후 각 노드별 IP주소와 이름을 입력하고 저장해줍니다.

# sudo vi /etc/hosts

 

각 노드로 핑통신이 정상적으로 이루어지는지 확인해줍니다.

# ping master1
# ping master2
# ping worker1
# ping worker2

 

상단의 Edit 탭에서 네트워크 에디터를 키고, VMnet8을 선택한 다음 NAT Settings로 들어갑니다. 가운데 Add 버튼을 눌러 포트포워딩할 가상머신들의 주소와 포트를 설정하고 Apply를 눌러 설정을 적용해줍니다. 모든 노드에 대해서 포트포워딩 설정을 해줍니다.

 

MobaXterm을 이용하여 해당 가상머신들로 접근할수있는 것을 확인할 수 있습니다.

 

Bootstrap노드에서 아래 명령어를 입력합니다. 뭔가 물어보는 문구가 나오면 yes를 입력하고 넘어갑니다.

# ssh-copy-id -i ~/.ssh/id_rsa.pub centos@master1
# ssh-copy-id -i ~/.ssh/id_rsa.pub centos@master2
# ssh-copy-id -i ~/.ssh/id_rsa.pub centos@worker1
# ssh-copy-id -i ~/.ssh/id_rsa.pub centos@worker2

 

# ssh centos@master1 hostname
# ssh centos@master2 hostname
# ssh centos@worker1 hostname
# ssh centos@worker2 hostname

 

4.YUM저장소 설정, git설치 (BootStrap 노드에서만 진행)

 

repolist를 확인합니다.

# sudo yum repolist

 

vi 명령어를 입력하여 아래 내용을 입력하고 저장합니다.

# sudo vi /etc/yum.repos.d/docker-ce.repo
[docker-ce]
name=Docker-CE Repository
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
keepcache=0
gpgkey=https://download.docker.com/linux/centos/gpg

파일수정이 완료되면 아래 명령어를 입력하여 설치를 진행합니다. 설치 중간에 나오는 선택지에서 y를 입력합니다. 마지막에 Complete! 라는 문구가 나오면 정상적으로 설치 된 것입니다.

# sudo yum install nfs-utils nfs-utils-lib

 

설치가 완료되면 아래 명령어를 입력합니다. (해당부분 작업만 모든 노드에서 진행)

# sudo -i
# 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

 

sudo -i 때문에 root계정으로 되어있습니다. exit를 입력하여 centos 계정으로 나온다음 아래 명령어를 입력합니다.

# sudo yum install epel-release
# sudo yum -y update
# sudo yum install git