딸기말차

[MSA] 9. centOS, Kubernates 설치 본문

Bootcamp/MSA

[MSA] 9. centOS, Kubernates 설치

딸기말차 2023. 10. 20. 12:00

엔코아 플레이데이터(Encore Playdata) Backend 2기 백엔드 개발 부트캠프 (playdata.io)

 

백엔드 개발 부트캠프

백엔드 기초부터 배포까지! 매력있는 백엔드 개발자 포트폴리오를 완성하여 취업하세요.

playdata.io


1. 가상환경 생성

# VM Ware 및 Cent OS 설치
https://www.virtualbox.org/wiki/Downloads
http://mirror.kakao.com/centos/7.9.2009/isos/x86_64/

# 네트워크 설정
어댑터 1 : NAT
어댑터 2 : 호스트 전용 어댑터

# 가상머신 로그인

# 가상머신 호스트키 단축키 설정

 

# 네트워크 설정을 위해 디렉토리 이동
cd /etc/sysconfig/network-scripts

# yum 설치 및 업데이트
yum update
# ifconfig 사용을 위한 net-tools 설치
yum install net-tools
# vim 설치
yum install vim -y

ip 확인을 위해 net-tools와, vi보다 좀 더 편한 vim을 사용하기 위한 설치를 진행하였다.

# ifcfg-enp0s3 설정
vim ifctg-enp0s3

# ifcfg-enp0s8 설정
vim ifctg-enp0s8

# 수정한 설정정보 등록
systemctl restart network

# cmd에서 ping을 날려 연결상태 확인


2.  Putty를 사용해 Docker 및 Kubernates 설치

# 가상머신 ip를 통해 putty 실행

# 가상머신 계정을 통해 putty 접속

# 도커 설치 및 커맨드 등록
vim ~/.bashrc

# root로 이동
su root

# 보안 설정
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

# 방화벽 확인
systemctl status firewalld

# 방화벽 정지
systemctl disable firewalld

# 네트워크 설정
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
modprobe br_netfilter

## 등록한 가상 컴퓨터를 클러스터로 묶기위한 설정
m : master
w : worker node
vim /etc/hosts

# ping 가는 것 확인
ping m-k8s

# DNS 설정
cat <<EOF > /etc/resolv.conf
nameserver 1.1.1.1 #cloudflare DNS
nameserver 8.8.8.8 #Google DNS
EOF

# OCI로 내보내기 위해 가상머신 OS 종료
shutdown -h now

OCI로 내보내기 위해 기존에 virtual box로 실행중이던 cent OS를 중지하였다.

# OCI로 내보내기
# 가상 시스템 등록


3. 쿠버네티스 설치 및 클러스터 설정

# 쿠버네티스 설치
yum install kubectl-1.18.4 -y
yum install kubelet-1.18.4 -y
yum install kubeadm-1.18.4 -y

systemctl enable --now kubelet
# 가상 OS를 여러개 실행, 여러 컴퓨터를 실행하는 효과
해당 기능을 통해 3개의 컴퓨터를 클러스터로 묶어 사용하였다.

 

# 클러스터 실행을 위해 cpu를 늘린다.

# ip를 변경하기 위해 접근
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
192.168.56.11

systemctl restart network 

# hostname 
hostnamectl set-hostname [    ]
# 클러스터 구축
kubeadm

# 토큰을 통해 Master 노드 join
sudo kubeadm init --token 123456.1234567890123456 --token-ttl 0 \
--pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=192.168.56.10

# 추가설정
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 활동 객체 설정과 최신 적용 설정을 업데이트
kubectl apply -f \
https://raw.githubusercontent.com/sysnet4admin/IaC/master/manifests/172.16_net_calico.yaml

# 연결 된 노드 확인
kubectl get nodes

# 파드 확인
kubectl get pods -n kube-system


4. 56일차 후기

최근엔 AWS 같은 Public Cloud 환경을 많이 지원하지만, 온프레미스 식으로 서버 환경을 구축하기 위해서 사용하는 방법 중 하나인 centOS를 사용해 보았다.

 

AWS에서 몇 가지 버튼만으로 설정할 수 있는 내용을 직접 구성하는게 쉽지 않다는 생각이 들었고, 이후 이를 쿠버네티스로 활용하기 위해 쿠버네티스 설치를 진행하였다.

'Bootcamp > MSA' 카테고리의 다른 글

[MSA] 11. Kubernates Pod  (0) 2023.10.24
[MSA] 10. OS, 회복성 패턴, Kubernates 설정  (0) 2023.10.23
[MSA] 8. Config Server, Eureka Server  (0) 2023.10.19
[MSA] 7. Docker 활용, ConfigServer  (0) 2023.10.13
[MSA] 6. Docker 활용, SQL 예제  (0) 2023.10.12