반응형
Synology의 VM을 Master로 하는 Kubernetes 환경을 구성하고자 한다.
이렇게 하고자 하는 목적은
- VM인 만큼 Snapshot을 통한 OS 백업이 간편하여 Master 노드를 안정적으로 운영
- Persistent Volume을 NAS로 구성을 하여 데이터의 안정성을 확보
- Synology를 게이트웨이 역할을 하게 수행하여 서비스에 대한 외부 접근시 보안성을 강화
위와 같은 이유로 아래와 같은 설정으로 Kubernetes 환경을 구성하였다.



Ubuntu 20.04.03 server 버전 설치 후 다음의 패키지 설치
sudo apt install ssh
sudo apt install net-tools
Docker는 최신버전으로 설치
# 기존 설치된 docker가 없으면 아래 명령어는 생략해도 됨
sudo apt-get remove docker docker-engine docker.io containerd runc
# ubuntu package 최신 정보 받아오기
sudo apt-get update
# docker 설치를 위한 기본 패키지 설치
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# apt로 내려 받을 수 있게 docker registry 설정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# docker 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# docker 명령어를 편하게 사용하기 위해 sudo 권한 부여 (shell 재시작 필요)
sudo usermod -aG docker $USER
Kubernetes 설치
# 설치하기전 환경 구성
sudo swapoff -a
sudo sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# kubernetes registry 등록
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# kubernetes 설치
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Kubernetes Master 설정전 확인 사항
# cgroup driver 확인하기
sudo docker info | grep -i cgroup
# 만약 cgroup driver가 cgroupfs이면 다음 명령어 수행하여 해당 문구 수정
sudo vi /usr/lib/systemd/system/docker.service
# <Before>
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd
# vi 편집 후 systemctl 초기화 수행
sudo systemctl daemon-reload
sudo systemctl restart docker
Master Node 설정하기
# master node 초기화하기 (시간이 좀 걸림)
sudo kubeadm init
# 만약 설정 도중 꼬인게 있다면 초기화 하는 명령은 다음과 같다
sudo kubeadm reset
# 정상적으로 수행되면 아래의 문구를 만나야 한다.
Your Kubernetes control-plane has initialized successfully!
# 일반 유저로 다음의 명령어를 수행한다.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 정상적으로 설정되었는지 확인하기 위해 master 노드의 상태를 조회한다.
kubectl get node
----------------------------------------------------------------------
NAME STATUS ROLES AGE VERSION
devopsmaster NotReady control-plane,master 4m17s v1.23.5
----------------------------------------------------------------------
여기까지 Synology의 VM을 위한 Kubernetes Master Node 구성이 모두 끝났다.
지금까지 깔끔한 구성을 하였으니 이 VM에 대한 스냅샷을 설정한다. (이건 귀찮으면 안해도 된다)



다음 포스팅에서는 이 VM에 Slave Node 로서 접근하는 내용을 정리할 예정이다.
반응형
'인프라 관리 > ▷ Docker & Kubernetes' 카테고리의 다른 글
Synology NAS를 이용하여 NFS 기반 PV(Persistent Volume) 사용 준비 (0) | 2022.04.14 |
---|---|
Kubernetes를 위한 Desktop App - Lens (0) | 2022.04.14 |
Kubernetes dashboard 설치 (0) | 2022.04.14 |
Kubernetes GUI 도구 조사 (0) | 2022.04.08 |
Kubernetes Slave Node 구성하기 (0) | 2022.04.08 |