ARM 서버에 Kubernetes 클러스터 구축하기 (8) - 실전 보안 (RBAC, 네트워크 정책, Pod 보안)
개요 지금까지 Part 1~7에서 K8s 클러스터 구축, 모니터링, 무중단 업그레이드를 다뤘습니다. 이제 실제로 운영할 때 반드시 필요한 보안을 구현해봅시다. 보안 없는 K8s는 불안전한 서버와 같습니다. 특히 다음 세 가지가 필수입니다: ...
개요 지금까지 Part 1~7에서 K8s 클러스터 구축, 모니터링, 무중단 업그레이드를 다뤘습니다. 이제 실제로 운영할 때 반드시 필요한 보안을 구현해봅시다. 보안 없는 K8s는 불안전한 서버와 같습니다. 특히 다음 세 가지가 필수입니다: ...
ARM 서버 Kubernetes Part 7: 클러스터 무중단 업그레이드 Part 6에서는 애플리케이션 Pod을 무중단으로 업그레이드했다. 하지만 클러스터 자체(kubelet, kubeadm)를 업그레이드할 때는 어떻게 해야 할까? ...
ARM 서버 Kubernetes Part 6: 무중단 업그레이드 Part 5에서 K8s 클러스터를 v1.29.15 → v1.35.1로 업그레이드했지만, kubelet 플래그 호환성 문제로 일시적으로 NotReady 상태가 발생했다. 결과적으로 무중단이 아니었다. ...
ARM 서버 Kubernetes Part 4: 외부 접근 환경 구성 오늘은 KVM 가상머신 위에 구성된 K8s 클러스터에 외부 접근 환경을 만드는 작업을 했다. WiFi 환경이라 브리지 네트워킹이 안 되는 제약이 있었고, OpenVPN + MetalLB + Ingress 조합으로 해결했다. ...
들어가며 이전 글에서 3노드 Kubernetes 클러스터를 완성했습니다. 이번 글에서는 클러스터의 상태를 모니터링하기 위한 Prometheus + Grafana 모니터링 스택을 구축하는 과정을 다룹니다. 구축 목표 ✅ Prometheus: 메트릭 수집 및 저장 ✅ Grafana: 메트릭 시각화 및 대시보드 ✅ PersistentVolume: 데이터 영구 보존 ✅ NodePort: 외부 접근 가능 아키텍처 개요 ┌─────────────────────────────────────────────────────┐ │ Kubernetes Cluster (3 nodes) │ ├─────────────────────────────────────────────────────┤ │ Master: k8s-master (<마스터_노드_IP>) │ │ Workers: k8s-worker1, k8s-worker2 │ ├─────────────────────────────────────────────────────┤ │ Monitoring Namespace │ ├─────────────────────────────────────────────────────┤ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Prometheus │ │ Grafana │ │ │ │ Port 9090 │─────────│ Port 3000 │ │ │ │ Storage: 10Gi│ │ Storage: 10Gi│ │ │ └──────────────┘ └──────────────┘ │ ├─────────────────────────────────────────────────────┤ │ Services │ ├─────────────────────────────────────────────────────┤ │ Prometheus: NodePort 32664 (9090) │ │ Grafana: NodePort 31211 (3000) │ └─────────────────────────────────────────────────────┘ 사전 준비 1. 클러스터 상태 확인 1 2 3 4 5 6 7 8 9 10 11 # 마스터 노드에 SSH 접속 ssh ubuntu@<마스터_노드_IP> # 클러스터 상태 확인 kubectl get nodes -o wide # 예상 출력 NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 27h v1.29.15 k8s-worker1 Ready <none> 27h v1.29.15 k8s-worker2 Ready <none> 27h v1.29.15 2. 필요한 도구 설치 1 2 3 4 5 6 # kubectl (이미 설치됨) kubectl version --client # Helm 설치 (패키지 관리자) curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash helm version Namespace 생성 모니터링 관련 리소스를 전용 namespace에 배치합니다. ...
들어가며 이전 글에서 VNC와 KVM 환경을 구축했습니다. 이번 글에서는 실제로 VM 3개를 생성하고 Kubernetes 클러스터를 설치하는 과정을 다룹니다. 문제 발견: macvlan의 한계 Part 1에서 WiFi 브릿지를 위해 macvlan을 설정했지만, 실제 VM에서 apt 업데이트가 불가능한 문제가 발생했습니다. ...
들어가며 Kubernetes 클러스터를 학습하기 위해 ARM 서버에 KVM 가상화 환경을 구축했습니다. 이 글에서는 첫 번째 단계로 VNC 서버와 KVM 패키지 설치, 그리고 WiFi 브릿지 네트워크 설정까지 다룹니다. ...