집에 남아있는 노트북에
쿠버네티스를 위한 서버를
구축하기 위한
기본 환경 세팅을
정리했습니다.
# 본딩(Bonding)
본딩(Windows -> Teaming)이란
하드웨어(PC, 서버, 노트북 등)에
네트워크 인터페이스(유선, 무선 랜카드 등)가
여러개 설치된 경우,
이 인터페이스들을
하나로 묶어
하나의 통신 채널로 사용하는 기능입니다.
- 높은 대역폭을 확보할 수 있고 네트워크 인터페이스, 케이블, 스위치 등의 장애에 대비할 수 있음
- 실무에서는 대역폭 확장의 용도 보다는 장애 대비용으로 많이 사용됨
+ 모드
본딩에는 총
6가지 모드가
존재하며,
스위치의 지원 여부, 설정 등
여러가지 이유로 인해
mode 0 이나 mode 1을
많이 사용하는 것 같습니다.
Mode 0: Round-robin(mode: balance-rr)
- 송신하는 패킷마다 사용하는 LAN 포트를 변경합니다.
- RR(RoundRobin) 방식 Load Balancing, 인터페이스의 라운드 로빈(active-active 대역폭 상승+Failover를 지원)
- 디바이스가 2개일 경우(랜 포트 두 개) 트래픽을 같이 사용할 수 있어 대역폭 분산시키는데 효과적입니다.
- [A NIC -> B NIC -> A NIC -> B NIC 순]으로 패킷을 분산시키는 방법을 사용합니다.
- 스위치에서 지원한다면 hashing 업이 load balancing 됩니다.
Mode 1: Active-backup(mode: active-backup)
- bond LAN port 중 한 개의 포트만 사용합니다.(하나의 슬레이브만 활성화와 같은 의미)
- LAN port 이상이나 고장이 생길 경우 대체됩니다.(나머지 슬레이브는 standby 상태)
- Failover전용 mode입니다.
- primary를 설정하지 않으면 failback 되지 않습니다.
- 스위치 지원은 필요 없습니다.
Mode 2: XOR(mode: balance-xor)
- mode 0과 비슷하지만, 목적지와 발신지의 MAC address XOR연산을 통해 사용할 LAN port 결정합니다.
- XOR 방식 / 수신 시에는 MAC address로 매핑합니다.
- 송신 시 1번 NIC를 사용합니다.
(NIC는 Network Interface Card로 흔히 랜카드나 랜 포트를 이야기합니다.)
Mode 3: Broadcast(mode: broadcast)
- 모든 bond LAN port를 사용하여 데이터 전송합니다.
(특별한 상황 외에는 사용가 빈도 극히 낮습니다.)
- Failover를 지원합니다.
- 스위치 지원은 필요 없습니다.
Mode 4: 802.3ad(Link Aggregation), LACP(mode: 802.3ad)
- IEEE 802.3ad 프로토콜을 이용하여 Aggregation을 작성합니다.
- 대역폭이 상승하고 부하가 분산됩니다.
- Failover를 지원합니다.
- 802.3ad Dynamic Link aggregation (동적 링크 집계)
- switch에 aggregation group을 생성해야 합니다.
- switch가 802.3ad를 지원해야 합니다.
- 같은 속도와 duplex 설정을 공유하는 aggregation group을 만들어야 합니다.
- 송/수신은 active aggregator 안에서 수행되고, 연결 대수에 상관없이 그룹화에 따라 회선의 정책이 변경되어 무단절 인터넷 연결을 가능하게 만드는 방식입니다.
Mode 5: TLB(mode: balance-tlb)
- 적응형 송신 부하분산
- 특별한 지원이 OS 자체적으로 구동가능한 방법으로 각 링크의 현재 로드에 따라 보내는 데이터는 분산되어 전송됩니다.
(로드밸런싱으로 송신 시 부하가 낮은 LAN port를 사용합니다.)
- 데이터의 수신은 현재 slave쪽으로만 가게되며 해당 slave가 fail시 다른 slave가 MAC주소를 넘겨받아 수신합니다.
- 데이터를 보낼 때에 드라이버가 MAC address를 링크의 것으로 바꿔 보내지만 받을 때에는 그냥 남겨둡니다.
- 스위치 지원은 필요 없습니다.
Mode 6: ALB(mode: balance-alb)
- 적응형 송수신 부하분산
- mode 4(802.3ad)를 스위치가 지원하지 않을 때 사용하면 됩니다.
- mode 5와 같이 동작하지만 데이터 수신 시에서 load-balancing을 하는데 두개의 링크에서 ARP negotiation을 통하여 동작합니다.
- 송수신시 부하가 낮은 NIC를 사용합니다.
- 스위치 지원은 필요 없습니다.
+ 설정
설치할 때 설정이 가능합니다.
이미 설치한 경우엔,
아래와 같이 설정하면 됩니다.
설정 참고
1. interface가 많은 이유
- 재부팅할 때마다 USB 랜카드의 이름이 계속 바뀜...
2. wlp2s0 인터페이스?
- 설치할 때 본딩을 했더니, 무선 인터페이스의 설정 파일이 따로 있음
(00-installer-config-wifi.yaml)
3. 고정 IP 세팅
# This is the network config written by 'subiquity'
# sudo vi /etc/netplan/00-installer-config.yaml
network:
bonds:
bond0:
addresses:
- 192.168.219.150/24
interfaces:
- enx6eb1029a8cae
- enx28ee5201ec23
- enxbecea79f2358
- wlp2s0
nameservers:
addresses:
- 1.214.68.2
search:
- 61.41.153.2
parameters:
mode: balance-rr
routes:
- to: default
via: 192.168.219.1
ethernets:
enx6eb1029a8cae: {}
enx28ee5201ec23: {}
enxbecea79f2358: {}
version: 2
설정 적용
$ sudo netplan apply
$ ip addr
# 숨겨진 와이파이 연결
와이파이의 SSID가 숨겨진 경우
연결하는 방법 입니다.
설정 참고
1. hidden: true
- 이 설정이 있어야 숨겨진 와이파이에 연결 됩니다.
2. dhcp4: false
- 본딩하는 경우 dhcp 기능을 꺼야 합니다.
# This is the network config written by 'subiquity'
# $ sudo vi /etc/netplan/00-installer-config-wifi.yaml
network:
version: 2
wifis:
wlp2s0: #<-- Wireless interface name
access-points:
Hidden Wifi ssid: #<-- 와이파이 이름
hidden: true #<-- 이 설정이 있어야 함
password: Hidden Wifi password #<-- 와이파이 비밀번호
dhcp4: false #<-- 본딩 때문에 false
# 노트북 덮개 절전모드 해제
서버를 노트북에 설치하다보니
덮개를 덮으면
절전모드로 들어가서
이 설정을 해제했습니다.
설정 참고
1. HandleLidSwitch=ignore
- Triggered when the lid is closed, except in the cases below.
(HandleLidSwitchDocked, HandleLidSwitchExternalPower)
- defulat: suspend
- options: poweroff, hibernate, ignore, lock
$ sudo systemctl restart systemd-logind