0. 개요
- 1개의 마스터와 2개의 워커로 구성된 쿠버네티스 클러스터를 구축하는 것이 목표
- 환경
- Host OS: Window11
- Hyper-v OS: Rocky-9.1-x86_64-minimal.iso
1. Hyper-v 설정
1) Hyper-V 켜기
- 실행 창 켜기:
Windows Key + R
- 명령어 입력:
OptionalFeatures
Hyper-V 켜기
- 재부팅
2) Hyper-V Network Adapter 생성
Public Network
로컬 PC를 브릿지로 사용하여 외부랑 통신하기 위한 Public Network 스위치 구축
- Hyper-v 관리자 열어서 네트워크 생성
- pc 이름 우클릭 → 가상스위치 관리자
1
![Untitled](/assets/img/2023-03-29-post230329/Untitled%201.png)
새 가상 네트워크 스위치 → 외부 → 가상 스위치 만들기
가상 스위치 설정: 연결 형식 → 외부 네트워크 → 연결되어 있는 네트워크 선택 →
확인
[경고] 보류 중인 변경 내용은 네트워크 연결을 방해할 수 있습니다 →
예
- 주의: 네트워크가 한 번 끊기고 다시 연결됨. 새로 생성된 네트워크 디바이스에 DNS 설정을 다시 해줘야 함.
2. VM 생성
1) 배포 이미지 다운로드
- Rocky-9.1-x86_64-minimal.iso
2) Hyper-v 관리자에서 가상 컴퓨터 생성
가상 컴퓨터 이름 설정
1세대는 legacy 모델 이므로 2세대 선택
메모리 할당 (주의! : 동적메모리 체크 해제)
- Default Switch를 선택
- Default Switch는 폐쇄망 구축 시 사용할 예정. gateway 역할을 하는 하나의 노드만 외부망으로 연결하고 나머지 노드는 Default Switch의 내부망으로 통신함
본 글에서는 스터디를 위하여 편의상 모든 노드에 외부망을 연결함
가상 하드 디스크 만들기
OS ISO 파일을 마운트 하고 다음을 클릭하여 진행
마침
k8s-worker-node도 위와 동일한 방법으로 생성
3) 생성된 VM 설정 변경
프로세서 개수 변경
외부 통신을 위해 public network 추가
검사점 유형 변경
보안 부팅 사용 안함
실행
3. 서버 설정
각 노드에서 설정
1) 계정 생성 및 sudoer 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost ~]# useradd woobin
[root@localhost ~]# printf "%s:%s" "woobin" "woobin" | chpasswd
Changing password for user woobin.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# cat /etc/passwd | grep woobin
woobin:x:500:500::/home/woobin:/bin/bash
[root@localhost ~]# touch /etc/sudoers.d/woobin
[root@localhost ~]# echo 'woobin ALL=NOPASSWD:ALL' >> /etc/sudoers.d/woobin
[root@localhost ~]# cat /etc/sudoers.d/woobin
woobin ALL=NOPASSWD:ALL
exit
localhost login: woobin
사용자명 ALL=NOPASSWD: ALL
→ 여기서NOPASSWD:
를 빼면 sudo 실행시 자신의 패스워드를 입력해야만 함사용자명 ALL=NOPASSWD: 명령어1, 명령어2
→ 지정한 명령어들만 sudo 사용가능- 계정 삭제 시, userdel -r ${user}
- -r 없이 userdel userid만 하게 되면 같은 아이디의 유저를 생성하게 될 경우 Creating mailbox file: File exists 에러를 만날 수 있다.
2) 필수 패키지 설치
1
2
3
4
5
6
7
8
9
sudo dnf -y update
sudo dnf install -y epel-release
sudo dnf install -y openssh-server NetworkManager vim jq net-tools
# sshd 상태 확인
sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running)
3) Hostname 변경
1
sudo hostnamectl set-hostname <VM 이름>
4) 네트워크 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 현재 network 연결 확인
nmcli
CONNECTION_NAME='eth1'
PUBLIC_IP='192.168.25.220' # 192.168.25.220-192.168.25.222
# network 삭제
nmcli con delete ${CONNECTION_NAME}
# network 추가
nmcli con add con-name ${CONNECTION_NAME} autoconnect yes \
ipv4.address ${NETWORK_IP}/20 \
ipv4.gateway 192.168.20.1 \
ipv4.dns 168.126.63.1,168.126.63.2 \
ipv4.method manual \
type ethernet \
ifname eth1
# 변경 사항 반영
nmcli con up eth1
exit
이제부터 터미널 클라이언트(윈도우 터미널, putty, 모바엑스텀 등)로 ssh 접속하여 작업하면 편리하다.