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 --..
EKS란Elastic Kubernetes Service는 AWS 자체 Kubernetes 서비스로 컨트롤 플레인(Master Node)를 설치, 운영 및 유지 관리할 필요 없이 Kubernetes를 사용할 수 있는 관리형 서비스여러 AWS 가용 영역에 걸쳐 Kubernetes 컨트롤 플레인을 실행하고 크기를 조정하여 높은 가용성을 보장오픈 소스 Kubernetes 소프트웨어의 최신 버전을 실행하므로 Kubernetes 커뮤니티에서 모든 기존 플러그 인과 도구를 사용할 수 있음지원 버전 : 보통 5~6개의 마이너 버전 지원(현재 1.29~1.32)평균 3개월마다 새 버전 제공, 처음 14개월 지원, 추가 12개월 연장 지원(비용 추가) EKS 아키텍처 (컨트롤 플레인 / 데이터 플레인)EKS 컨트롤 플레인..
XSHELL 로그인 스크립트 클라우드상에서 서비스를 구성하는 경우, VM을 Private Zone 서브넷에 구성하는 경우가 많다.이런 경우, 인터넷 통신이 되지 않기 때문에 VM에 SSH 접근을 하는 방법은 SSL VPN을 사용하는 경우가 아니면, Public Zone 서브넷에 VM를 하나 생성하고 해당 VM을 통하여 내부 통신으로 SSH 접근하는 방법이 있다. 보통 이런 경우를 Bastion VM이라 한다. 1대에 Bastion VM에서 여러 대의 Private 서브넷에 생성 된 VM에 SSH 접근하는 경우, XSHELL 툴에서 편리하게 사용 할 수 있는 방법을 소개한다. XSHELL 설정 현재 사용하는 XSHELL 버전은 7/Free for Home/School 버전을 사용해서 설명한다.기본적으로 B..
Terraform 주요 구성요소 / 리소스 블록 리소스: 선언된 항목을 생성하는 동작 수행리소스 선언 : 리소스 유형(프로바이더이름_제공리소스유형), 동일한 유형에 대한 식별자 역할로 고유한 이름, 구성 인수들이 이름 뒤에 중괄호 내에 선언됨resource "" "" { = }resource "local_file" "abc" { content = "123" filename = "${path.module}/abc.txt"}리소스에서 사용되는 유형들은 프로바이더에 종속성을 갖기 때문에 별도로 프로바이더 블록을 지정하지 않아도 init 수행 시 해당 프로바이더(최신버전)를 설치현재 작업 디렉토리 내 .terrform 디렉토리에 프로바이더 설치# 프로바이더 블록을 지정하지 않아도 리소스 블록에 프로바이..