K8S Storage 성능측정1. kubestr도구를 사용하여 storage 성능 측정 노드그룹에 할당된 EBS 정보 확인gp3 / IOPS:3000 kubestr 설치# [운영서버 EC2] kubestr 툴 다운로드 - Linkwget https://github.com/kastenhq/kubestr/releases/download/v0.4.48/kubestr_0.4.48_Linux_amd64.tar.gztar xvfz kubestr_0.4.48_Linux_amd64.tar.gz && mv kubestr /usr/local/bin/ && chmod +x /usr/local/bin/kubestr# 스토리지클래스 점검kubestr -hkubestr# 모니터링watch 'kubectl get pod -ow..
CSIContainer Srotage Interface쿠버네티스에서는 다양한 스토리지 연계를 위해 CSI 인터페이스를 제공CSI 인터페이스 덕분에 쿠버네티스에서 쉽게 스토리지(EBS, EFS 등)를 사용할 수 있음쿠버네티스 CSI 인터페이스에 맞춰 개발된 AWS CSIEKS에서 EBS, EFS 등 AWS 스토리지를 다루려면 스토리지 별로 AWS CSI 드라이버를 설치해야 사용 가능참고: https://malwareanalysis.tistory.com/598 (악분님 블로그) K8S Storage1. 파드 내부의 데이터는 파드가 정지되면 모두 삭제됨(휘발성) → 즉, 파드가 모두 상태가 없는(Stateless) 애플리케이션이였음! : Temporary filesystem, Volume 파드 기본 및 em..
Amazon EKS로 클러스터 구성 시 일반적으로 고가용성을 위해서 모든 가용 영역(Availability Zone, AZ)에 워커 노드배치Pod들 또한 모든 AZ 에 배포되도록 설정하면 높은 가용성을 확보여러 AZ에 걸쳐 Pod 간 통신이 이루어지는데, 이를 Cross-AZ 통신이라고 합니다.Amazon VPC 내에서 Cross-AZ 통신이 발생하더라도 통신량에 비례하여 통신 비용이 발생Cross-AZ 통신이 많은 경우 예상치 못한 비용이 발생 할 수 있음대량의 Cross-AZ 통신으로 인한 비용을 절감하기 위한 기법 → Topology Aware Routing 실습을 위한 디플로이먼트&서비스 배포# 현재 노드 AZ 배포 확인kubectl get node --label-columns=topology.k..
AWS LoadBalancer Controller & Ingress클러스터 내부의 서비스(ClusterIP, NodePort, Loadbalancer)를 외부로 노출(HTTP/HTTPS) 실습 Pod 배포# 게임 파드와 Service, Ingress 배포cat 생성 확인kubectl get ingress,svc,ep,pod -n game-2048kubectl get-all -n game-2048kubectl get targetgroupbindings -n game-2048 ingress 확인# Ingress 확인kubectl describe ingress -n game-2048 ingress-2048kubectl get ingress -n game-2048 ingress-2048 -o jsonpath="..
Service & AWS LoadBalancer ControllerServicePod는 생성 및 삭제 될때 마다 내부 IP가 변경하는 특성이 있음.Service는 이러한 Pod에 탑재된 애플리케이션이 외부와 상호 통신이 가능하도록 하는 역할 수행Pod가 외부와 통신할 수 있도록 클러스터 내부에서 고정 IP를 갖는 Service를 이용할 수 있도록 함Deployment, Statefulset 처럼 같은 애플리케이션을 구동하도록 구성된 여러 파드들에게 단일 네트워크 진입점을 부여하는 역할ClusterIPNodePortLoadBalancerExternalNameLoadBalancer Controller일반적인 Service에서 Loadbalancer의 경우 로드벨런서를 거쳐 각 Node의 iptable 정책에..
노드에 파드 생성 갯수 제한사전준비 - kube-ops-view웹페이지를 통해 현재 워커 노드의 정보와 Pod의 상태 정보를 실시간으로 확인# kube-ops-viewhelm repo add geek-cookbook https://geek-cookbook.github.io/charts/helm install kube-ops-view geek-cookbook/kube-ops-view --version 1.2.2 --set service.main.type=LoadBalancer --set env.TZ="Asia/Seoul" --namespace kube-system# kube-ops-view 접속 URL 확인 (1.5 배율)kubectl get svc -n kube-system kube-ops-view -o..