Hetzner
- Hetzner로의 이전은 주로 비용 절감을 위한 것임. Hetzner의 가격은 세계적으로 경쟁력이 있음.
- Hetzner는 가상 머신과 베어 메탈 머신을 제공하며, AWS에 비해 제한적이지만 가격으로 보완함.
- Hetzner로 이전하면서 인프라 비용을 75% 이상 절감함.
Kubernetes on Hetzner
셀프 매니징 Kubernetes
- DigitalOcean에서 Kubernetes를 운영했으며, Hetzner에서도 셀프 매니징 방식으로 운영함.
- Hetzner는 관리형 Kubernetes 제어 플레인을 제공하지 않으므로 직접 관리해야 함.
- Terraform과 Puppet을 사용하여 노드를 관리하고 구성함.
노드 역할
- 노드 명명 규칙을 사용하여 클러스터 내 역할을 간단하게 유지함:
control-plane
, worker
, database
.
- 역할 추가는 간단하지만 자원 사용의 효율성을 저해할 수 있음.
노드 구축
- Terraform을 사용하여 클러스터를 부트스트랩함.
- Hetzner는 관리형 방화벽과 네트워킹을 제공하며, Terraform으로 쉽게 구성 가능함.
- 서버는 Terraform으로 완전히 관리되며, 역할별 모듈을 작성하여 서버 추가를 간단하게 함.
네트워킹
- Tailscale VPN을 사용하여 노드에 대한 관리 연결을 수행함.
- Tailscale은 NAT 홀 펀칭을 제공하여 포트를 닫아도 안전하게 연결 가능함.
- Hetzner의 관리형 방화벽과 Ubuntu의 UFW를 사용하여 포트를 차단함.
- Calico를 사용하여 컨테이너 네트워킹 인터페이스를 구성함.
스토리지
- Hetzner는 nVME SSD와 SSD 기반의 블록 스토리지를 제공함.
- Hetzner의 볼륨은 스냅샷 기능이 없으므로, 데이터 백업은 수동으로 수행해야 함.
- 데이터베이스 노드에서는 Local Persistence Volume Static Provisioner를 사용하여 로컬 볼륨을 사전 프로비저닝함.
백업
- Hetzner는 볼륨 백업을 제공하지 않지만 전체 서버 백업을 제공함.
- VMware의 Velero를 사용하여 네임스페이스와 PVC를 백업함.
- Postgres의 경우 pgBackRest를 사용함.
추가 기능
- SealedSecrets를 사용하여 비밀 관리.
- Node Exporter, Prometheus, Grafana, Loki를 사용하여 클러스터 모니터링.
- Alertmanager를 사용하여 Slack과의 알림 통합.
Hetzner에서 Kubernetes 운영에 대한 생각
- Hetzner로의 이전은 약 1주일이 소요되었으며, 추가 테스트 및 튜닝에 4주가 걸림.
- Hetzner의 가격은 합리적이며, 다른 제공업체에 비해 낮게 유지될 것이라 믿음.
- Hetzner의 IP 품질 문제와 고객 서비스에 대한 제한 사항이 있음.
- Hetzner는 빠르게 새로운 기능을 출시하지만, 수익성이 낮은 서비스는 빠르게 중단할 수 있음.
- 중앙 유럽 데이터센터 위치는 독일의 Falkenstein, Nuremberg, 핀란드의 Helsinki에 있음.
요약
- 이 전환은 원활하게 진행되었으며, 인프라 비용을 75% 이상 절감하고 클러스터의 컴퓨팅 자원을 두 배로 늘림.
- Hetzner는 비용 절감이 필요한 경우 매우 유리한 선택임.
- Hetzner의 오픈 소스 컨트롤러는 로드 밸런서 관리와 지속적인 볼륨 연결을 용이하게 함.