안녕하십니까,환경구축관련시리즈설명글작성을시작했습니다맛보기글클리앙 이전에 Lubuntu 기반으로 Synology VMM에 CodeServer 및 VNC를 띄워 아이패드 등으로 원격 작업하는 시리즈를 올린 적 있는 테크믈리에입니다. 혹시 해당 강좌 기억하시는 분이 있을 지는 모르겠지만.. 연구실 석사 졸업 등의 이유로 방치하게 되어 VNC 관련 코드의 오류 제보도 확인 못 했지만 이번에 내용 수정해두었으니 관심 있으신 분들은 봐주시면 감사할 거 같네요 ㅋㅋ
이번 시리즈의 경우에는 이전 연구실 및 현재 스타트업에서 혼자 K8S 환경 구축 및 서비스 올리는 방법을 독학하면서 공부한 내용 및 겪었던 문제의 해결 방법을 공유해보고자 작성하게 되었습니다. 대상 독자층은 K8S에 관심이 있으나 Ubuntu 환경 등에 익숙하지 않아 환경 구축에 어려움을 겪는 분들이나 혹은 K8S/Docker/RKE에서 Nvidia GPU 세팅, LoadBalancer 및 Reverse Proxy를 활용하여 서비스를 노출하는 방법에서 어려움을 겪는 분들입니다. 또한, 겸사겸사 시리즈가 완성된 이후 LDAP를 통하여 Ubuntu 로그인 / KubeFlow / Rancher / Harbor 등의 서비스를 묶어 계정을 관리하는 방법도 작성하고자 하니 많은 관심 부탁드립니다 ㅎ
목차
0. 우분투 환경 구축
1. Docker 설치 및 K8S를 위한 준비
2. Nvidia GPU가 달린 노드를 위한 기초 세팅
3. Kubeadm을 통한 K8S 환경 구축 방법
4. Rancher를 통한 K8S 환경 구축 방법
4-1. RKE1 (Docker) 환경에서 Nvidia GPU 사용 방법
4-2. RKE2 (Containerd) 환경에서 Nvidia GPU 사용 방법
5. HTTPS 없이 Harbor 환경 구축하기
6. Nginx Proxy Manager를 통한 HTTPS 환경 구축
7. Reverse Proxy 상황에서의 Harbor 환경 구축
8. Longhorn, NFS 등을 통한 Storageclass 사용법
9. KubeFlow를 통한 MLOps 환경 구축
9-1. KubeFlow를 위한 개인 Docker 이미지 생성 방법
10. MetalLB를 활용한 LoadBalancer 서비스 구축
서론
이번에 작성하는 시리즈글은 본인이 연구실 및 회사에서 K8S 환경을 구축하기 위하여 공부했던 내용들에 관하여 정리한 내용으로 이뤄져 있다. 기본적으로 우분투를 다룰 줄 아는 사람을 대상으로 글을 작성하지만, 혹시나 궁금증 혹은 어쩔 수 없이 우분투를 못 다루지만 K8S를 다뤄보고 싶은 사람을 위하여 우분투 설치방법부터 시작하여 꽤나 기초적인 내용도 최대한 다뤄보고자 한다.
이번 첫 글에서는 본인이 추천하는 우분투 빌드의 설치 방법, 편리한 터미널 사용을 위한 터미널 세팅 방법, K8S 환경을 구축하기 위해 권장되는 프로그램의 설치 방법 등을 안내한다.
Lubuntu 설치 방법
LINK
이번 시리즈에서 사용할 우분투 빌드는 Lubuntu이다. Lubuntu는 Ubuntu와 같은 커널을 사용하지만 데스크탑 환경으로 Gnome 대신 LxQT를 사용한 빌드다. 윈도우 10까지의 UI에 익숙한 사람이라면 쉽게 익숙해질 수 있는 UI를 제공하며, 불필요한 추가 프로그램이 거의 없어 설치 용량도 4.5GB에 불과할 정도로 적으면서 40~50만원대의 시놀로지 VMM에서도 무난히 돌릴 정도로 가볍다는 것이 장점이다.
물론, K8S 환경 구축을 하게 되는 경우 어지간하면 모니터 없이 모든 작업을 원격으로 진행하게 될 것이니 만큼, 우분투 서버가 더 나은 선택일 수 있지만 VNC 환경을 쉽게 구축하면서 우분투 서버만큼 가볍게 돌릴 수 있다는 것은 Lubuntu만의 큰 장점이다.
Lubuntu 다운로드
다운로드는 상단의 링크에서 하면 되고, 글 작성일 기준으로 22.04.3 LTS 버전을 추천한다.
윈도우의 경우, 추가로 필요한 프로그램은 Rufus이고 맥이나 리눅스의 경우에는 balenaEtcher를 사용하는 것을 추천한다.
남는 USB 하나에 OS에 맞는 프로그램을 통하여 Lubuntu를 구워서 설치할 컴퓨터에 꽂아 설치하도록 하자.
당연한 이야기이지만, 해당 과정을 위해서는 모니터가 필요하다.
LINK
LINK
LINK
설치 과정은 매우 쉽기 때문에 사진만으로 내용을 대체하도록 하겠다.
Lubuntu를 서버로 활용하기 위한 기초 세팅
당연하지만, Lubuntu는 기본적으로 데스크탑 환경인만큼 설치 직후 모니터를 뽑는다고 하나의 원격 서버로 사용할 수 없다. 때문에, 모니터를 뽑기 전에 서버로 사용하기 위한 모든 작업을 끝내도록 하자.
우선은 우분투의 APT 저장소를 국내에 있는 미러 서버로 변경하여주도록 하자.
LINK
시스템 도구 - QTerminal을 실행하여 아래 명령어를 실행하자.
sudosed -i 's/kr.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.listsudoapt-get update
그 다음으로는 우분투를 사용하는데 있어 기본적으로 필요한 프로그램 및 SSH 등을 깔아주도록 하자
sudoapt-get install -y build-essential curl wget ssh git
기본적으로 SSH 포트는 22번 포트이지만, 만약 다른 포트를 사용하고 싶다면 /etc/ssh/sshd_config에서 Port 항목을 주석 해제한 다음 22를 다른 값으로 변경하여주자. 그 다음엔 아래 명령어를 통하여 ssh 서버를 실행하여 주자.
sudoservice ssh restart
그 다음으로 할 작업은, 한국어로 설치한 사람들을 위한 경로명 영어로 변경하기이다. 우분투에서 출력이 한글로 나와주는 건 반갑지만, 경로가 한글이면 여러모로 곤란해지기 마련이다. 이 때, 반드시 모니터 연결된 상황에서 아래 명령어를 입력하면 경로명을 영어로 바꿔주는 프롬프트가 나타난다.
sudoapt-get install xdg-user-dirs-gtkLANG=C xdg-user-dirs-gtk-update
마지막으로, 고정 IP를 사용하기 위한 방법을 소개 한다.
LINK
Lubuntu의 오른쪽 하단에 네트워크 어댑터를 우클릭하면 Edit connections..라는 메뉴가 나타난다.
LINK
이후 나타나는 화면에서 IPv4 Settings로 가면 상단과 같은 화면이 나온다. 여기서 Method는 Manual, DNS servers는 8.8.8.8, 8.8.4.4를 기입하여 주도록 한다. Addresses의 경우, Netmask는 255.255.255.0이나 24, Gateway에는 공유기의 내부 IP 주소 (보통 192.168.0.1나 192.168.1.1)를 입력한 다음 할당하고자 하는 고정 IP를 Address에 적어주자.
현재, K8S가 세팅된 서버에서 찍은 사진이라 Active Connection이 많지만 이 글을 따라 설치한 직후라면 유선연결 하나만 있을 것이다. LINK
그 다음, 컴퓨터를 재부팅하거나 네트워크 어댑터를 이번엔 좌클릭하여 나온 창에서 변경하고자 하는 네트워크 어댑터를 Active connections에서 눌러 껐다가 Known connections에서 눌러 켜주면 해당 내용이 반영된다.
Oh-My-ZSH를 통한 편한 Terminal 환경 구축
자, 이제부터는 모니터 없이 원격 접속하여 사용할 준비가 모두 끝났다. 윈도우의 경우에는 MobaXterm, 맥의 경우에는 iTerm2를 사용하여 Lubuntu에 원격 접속할 것을 추천한다.
sudoapt-get updatesudoapt install zshchsh -s $(which zsh)
원격 접속하여 상단의 명령어를 입력하여 ZSH를 설치한 다음 exit하여 SSH 세션을 종료하고 다시 접속하면 아래와 같은 화면이 나온다.
LINK
2를 선택하여 주도록 하자.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightinggit clone https://github.com/zsh-users/zsh-autosuggestions ${ ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestionsgit clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
상단의 명령어를 입력하면 Oh-My-ZSH를 설치한 다음, 편리한 툴들을 같이 설치하여 줄 것이다. 하지만 설치만 할 뿐 활성화는 해주지 않기 때문에 우리가 직접 툴들을 활성화시켜야 한다.
~/.zshrc 파일을 열어 plugins = (git) 내용을 찾아 아래와 같이 수정하도록 한다.
plugins=(gitsudocolored-man-pageszsh-syntax-highlightingzsh-autosuggestionsfzf)
파일 수정이 완료된 다음에는 다음 명령어를 통하여 변경사항을 적용한다.
source ~/.zshrc
마침글
이번 글에서는 간단하게 Lubuntu를 설치하고 원격 환경을 구성한 다음 Oh-My-ZSH를 설치하는 내용을 다뤄보았다.
다음 글에서는 K8S 환경 구축에 필수적인 Docker 및 NTP를 설치하는 방법에 관하여 다루도록 하겠다.
번외로, 원격 데스크톱 환경이 필요한 사람이라면 다음 글을 참고해보자
Synology VMM 우분투 구축기 3. VNC 서버 구축
https://scrap.kakaocdn.net/dn/fWpwH/hyTFblV0Wz/3gt2157KHG4ZCoflp5T8M1/img.png?width=679&height=283&face=0_0_679_283,https://scrap.kakaocdn.net/dn/cRwnrX/hyTFjxwhir/EhXPkUh7rYsFgq4kgl1Zb1/img.png?width=679&height=283&face=0_0_679_283,https://scrap.kakaocdn.net/dn/TA61y/hyTFnfBgS0/iBIoAKgVorGEsIs2QXHE0k/img.png?width=1920&height=1428&face=0_0_1920_1428');">제 블로그의 경우 단 1개의 광고도 붙이지 않고 순수하게 관심 목적으로 작성되는 만큼 많은 관심 부탁드립니다 ㅎㅎ