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..
EKS 내 노드 간 Pod 통신 확인AWS CNI 특징으로 Node IP 대역과 Pod IP이 동일하여 직접 통신이 가능일반적인 K8S CNI의 경우 오버레이 통신파드간 통신 테스트 및 확인 : 별도의 NAT 동작 없이 통신# 파드 IP 변수 지정PODIP1=$(kubectl get pod -l app=netshoot-pod -o jsonpath='{.items[0].status.podIP}')PODIP2=$(kubectl get pod -l app=netshoot-pod -o jsonpath='{.items[1].status.podIP}')PODIP3=$(kubectl get pod -l app=netshoot-pod -o jsonpath='{.items[2].status.podIP}')# 파드1 Sh..
CNIContainer Network Inferface로 컨테이너 간 네트워크를 구성다양한 CNI가 존재( Flannel, Calico, Cilium, Weave Net, AWS VPC )AWS VPC CNINode와 Pod의 IP 대역이 같아 직접 통신이 가능하여 네트워크 통신의 최적화(성능, 지연)VPC 와 통합 : VPC Flow logs , VPC 라우팅 정책, 보안 그룹(Security group) 을 사용 가능함VPC ENI 에 미리 할당된 IP(=Local-IPAM Warm IP Pool)를 파드에서 사용할 수 있음Node Network 정보aws-node(cni)와 kube-proxy는 Node의 Root Net Namespace를 사용aws-node와 kube-proxy의 경우 Node의..
EKS Cluster EndpointAPI 서버 엔드포인트 엑세스 - Publickubectl-host → api-server [public 통신] api-server → kubelet [private 통신] kubelet / kube-proxy → api-server [public 통신] kubectl-host → api-server [public 통신]kebelet과 kube-proxy가 API(공인IP)와 통신 확인api-server → kubelet [private 통신]kubectl 명령으로 특정 파드에 접근 (경로) : 작업PC -> API Server -> kubelet -> pod #netshoot pod 실행 후, 해당 pod에서 uptime 명령어 실행kubectl run -it --..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.