쿠버네티스 학습을 하고 있는데, 강의에서 실습 환경이 아래와 같았습니다.
아쉽게도 가상화 소프트웨어인 VirtualBox는 실리콘 맥 환경을 지원하지 않았고, 실리콘 맥 환경에 맞는 가상화 소프트웨어를 찾거나 AWS를 이용해 실습 환경을 구축해야 하는 상황이었습니다.
AWS EC2 인스턴스를 사용하면 이미지를 사용해 편하게 개발환경을 구축할 수 있지만,
1. '쿠버네티스 권장 사양을 맞추기 위해 소요되는 비용'
2. '가상 머신을 만들고 세팅하는 과정에서 얻는 지식'
때문에 맥 환경에서 가상 머신을 만들기로 결정하였습니다!
Rocky Linux 다운로드 페이지를 접속하면 아래와 같은 화면이 보이는데, 실리콘 맥 환경은 ARM64 아키텍처입니다.
아래 두번째 이미지에서 확인할 수 있듯 가장 일반적인 설치 ISO는 DVD ISO이므로 DVD ISO를 다운로드 받도록 합시다(추후 OS 설치시 GUI 빼고 설치 가능) 😀
원래 버추얼 박스를 통해서 가상머신을 만들 예정이었으나, 버추얼 박스 다운로드 페이지에서는 현재 실리콘 맥 OS 환경용 다운로드 링크가 없습니다(전에는 있었지만, 여러 가지 버그 터져서 아예 지원을 안 하기로 결정한듯...).
따라서, 실리콘 맥 환경에서 무료로 사용할 수 있는 가상화 소프트웨어 UTM을 선택하게 되었습니다.
UTM에서는 설치 경로를 두 가지(홈페이지: 무료, 앱 스토어: 유료) 제공하고 있는데, UTM의 설명 따르면 앱 스토어와 홈페이지 버전의 기능적 차이는 없습니다(앱 제작 후원금의 대가로 자동 업데이트 정도)!
UTM의 다운로드 페이지에서 무료 버전 UTM을 다운받고 설치해 봅시다!
UTM 앱을 실행하면 처음에 아래와 같은 화면을 만날 수 있어요!
가상 머신을 만드는 과정은 아래와 같습니다.
OS 이미지가 네이티브 CPU 아키텍처와 같고 속도가 빠르기 때문에 Virtualize를 선택하겠습니다.
Linux 선택
'탐색'을 눌러 받았던 Rocky Linux ISO 이미지를 선택해주세요!
메모리 할당 4GB(1024mb*4): 기본 값은 4gb이며, 저는 쿠버네티스 실습 환경에 마스터 노드 하나만 만들 것이기 때문에 권장 환경인 램 4기가로 설정했습니다. 사용 목적과 환경에 맞게 설정해주세요!
스토리지 32gb: 기본 값은 아래 사진처럼 64gb인데, 실습 환경에 사용할 목적이므로 스토리지를 32gb만 설정했습니다!
사용 목적에 맞게 설정해주세요!
공유 폴더: 설정 안 함(나중에 필요하면 ftp로 연결하면 되니까요!)
pc 이름 작성 및 저장
저장 후에는 아래와 같이 가상 머신이 생긴 것을 알 수 있는데요, 윈도우를 설치할 때처럼 OS 설치 파일만 들어있고 OS는 설치되지 않은 상태입니다.
따라서, 시작(재생) 버튼을 눌러 아래 과정을 통해 OS를 설치해줍시다~!
좀 기다리면 2번과 같은 화면이 표시됩니다.
이제 아래와 같은 설치 요약 화면에 나오게 되는데요~!
설치 요약에서 우리가 해야 할 건 네 가지입니다!
주소: 192.168.64.30
넷마스크: 255.255.255.0
게이트웨이: 192.168.64.1
우측 하단에 '설치 시작' 버튼이 활성화되고 설치가 완료되면 아래와 같이 재부팅하겠냐고 물어보는데, 재부팅하지 않고 좌측 상단에 전원 버튼을 눌러줍니다.
가상 머신이 종료가 되어 아래 화면처럼 나온다면!
하단에 CD/DVD를 눌러 '초기화'를 클릭해주세요~!
아래와 같은 화면이 나온다면, Rocky Linux가 성공적으로 설치된 겁니다.
cheers! 🎉🎉🎉
UTM에서 제공하는 터미널은 음.. 디자인이 사용하기 편하게 생기지 않았으며, 복붙도 기본적으로는 불가능합니다.
맥 터미널로 키를 사용하는 부분을 제외하고는 AWS EC2 인스턴스에 접속하는 방식과 같기 때문에 맥 터미널로 가상 머신을 사용하고 싶기도 했구요!
따라서, 맥 터미널로 가상 머신에 접속할 수 있게 설정하고 싶었습니다.
맥 터미널로 가상 머신에 접속하려면 아래와 같은 요소들을 신경써야 합니다.
1. 방화벽
2. ssh 서버 설치 및 포트 개방
아래 단계에 맞추어 방화벽 설정을 변경하고, ssh 포트를 열어보아요~!
$ yum -y install openssh-server
$ which sshd
# firewall-cmd: 방화벽 제어 명령
# --zone=public: 퍼블릭 존에
# --add-port=22/tcp: 22번 포트 추가
# --permanent: 재부팅 후에도 유지
$ firewall-cmd --zone=public --add-port=22/tcp --permanent
$ vi /etc/ssh/sshd_config
# ssh 상에서 root 유저 로그인 허용
PermitRootLogin yes
# 로그인 허용 시간 2분 (default)
LoginGraceTime 2m
# 6번 이상 인증 실패시 ssh 세션 종료
MaxAuthTries 6
# ssh 세션을 몇개 띄울 수 있냐(터미널 최대 10개까지 띄울 수 있음을 의미)인데,
# default 값이 10이니까 10으로 그대로 둠
MaxSessions 10
$ systemctl restart sshd
$ ssh 유저-이름@inet주소
$ yes
축하합니다! 이제, 맥 터미널로 Rocky Linux 가상 머신을 접속할 수 있게 되었습니다 🎉🎉🎉🎉🎉
음,, 사실 가상머신을 설치하는 목적 중 하나가 간편한 OS 설치, 제거인데, Rocky 리눅스를 설치한 후부터 맥 터미널과 연결하는 과정까지 너무 번거롭다고 느꼈어요!
마음 같아서는 베이그런트(vagrant)를 사용하고 싶지만, 아쉽게도 베이그런트는 UTM을 지원하지 않습니다.
시간이 허락한다면, 쉘 스크립트를 만들고 웹 상에 저장해 초기 설정 과정을 쉽게 만드는 포스트를 작성해 보겠습니다!