[Kubernetes] Amazon EMR on EKS 운영을 위한 기본 지식
이 게시글은 학습을 위해 정리한 내용이므로 잘못된 내용이 있을 수 있습니다. 잘못된 정보가 있다면 댓글로 남겨주세요. 수정하겠습니다. 용어 정리스파크 애플리케이션 : 컴파일된 JAR나 라이브러리 파일을 의미. submit하는 시점에 로컬 머신에서 코드가 실행되어 클러스터 드라이버 노드에 요청함드라이버 프로세스 : SparkContext를 생성하고, 자신이...
View Article[Kubernetes] Amazon EKS를 사용하는 사례 정리
EKS + NLB + Istio카카오 페이 사례기존에 Gateway 역할로 nginx를 사용하다가 istio의 Gateway를 사용하기로 결정 트래픽이 증가할 경우 nginx 서버를 증설해야하고, 관리 부담이 있었음istio의 경우 envoy가 트래픽 처리를 하고, 유연하게 확장될 수 있기 때문에 운영 부담이 줄어듦카카오페이에서 3년간 istio 운영 경험이...
View Article[Kubernetes] Airflow on EKS의 DAG 파일 관리
Airflow 사용 준비Airflow on EKS를 사용하기 위해 Helm을 사용하여 Kubernetes 클러스터에 Arflow를 배포합니다. install 명령을 실행하기 전에 먼저 Kubernetes 네임스페이스를 생성한 후 필요한 파일들을 만들어보겠습니다.kubectl create ns airflow Airflow에 사용되는 DAG 파일들은 Git,...
View Article[Ansible 101 Study] Ansible Playbook 모듈 활용해보기 - 기초
2024년 첫 스터디이면서 믿고 참여하는 가시다님의 Ansible 스터디가 시작됐다. 1주차라서 기본 이론과 간단한 실습을 진행했고, 몇가지 도전 과제들을 기록해보려고 한다. 먼저 Ansible을 사용하기 위해서는 대상 서버들에 SSH로 접속이 가능해야하고 Python 설치가 되어 있어야 한다. 이 대상 서버들은 Inventory라는 이름으로 사전에...
View Article[Ansible] Role 기초
Role정의 : 플레이북 내용을 기능 단위로 나누어 공통 부품으로 관리/재사용하기 위한 구조롤을 사용하면 사용자들이 잘 만들어놓은 Playbook의 조합을 가져다가 활용할 수 있음앤서블 갤럭시를 통해 템플릿을 공유하고 다운받을 수 있음이미 많은 사용자가 사용 중이고, 보안적으로 검증된 Playbook들을 파라미터 변경만으로 손쉽게 가져다 사용할 수 있기...
View Article[Kubernetes] Overlay 파일시스템으로 이미지 중복 제거
이 글은 if(kakao)2022에서 발표된 "이게 돼요? 도커 없이 컨테이너 만들기"발표 내용 중 이미지 중복 내용을 참고해서 정리했습니다. 컨테이너 환경의 파일시스템은 격리를 위해 prviot_root해서 완전히 독립된 root 파일 시스템을 갖게 되기 때문에 필요한 코드나 라이브러리를 패키징해서 관리할 수 있다는 장점이 있습니다. 하지만 OS는 동일한...
View Article[KANS] 1주차 - 컨테이너 격리 & 네트워크 및 보안
프로세스 개념컨테이너는 독립된 리눅스 환경을 보장 받는 프로세스https://docs.docker.com/get-started/docker-overview/#docker-architectureDocker를 설치하면 호스트에 Docker daemon이 설치되고, 클라이언트가 docker 명령을 실행하면 Docker daemon이 컨테이너를 실행함. 만약...
View Article[KANS] 2주차 - K8S Flannel CNI & Pause 정리
Kind그림 출처: https://kind.sigs.k8s.io/ kubernetes in docker의 약자로컬환경에서 테스트용도로 사용하며 docker 기반으로 Kubernetes를 설치함docker 컨테이너 안에서 docker를 사용해서 Kubernetes 실행에 필요한 각 컴포넌트들을 컨테이너로 실행멀티 클러스터에 대한 테스트를 해보기 좋음아래...
View Article[KANS] 3주차 - Calico CNI & Mode 정리
Calico OverviewCalico 관련된 설정을 하게되면 calico datastore에 모든 정보가 저장됨. 이 정보를 기반으로 calico-node Pod가 동작함calicoctl로 Calico 관련 설정들에 대한 CRUD를 할 수 있음calico-node Pod는 데몬셋으로 동작함 데몬셋 Pod는 호스트의 네트워크 인터페이스를 공유해서...
View Article[KANS] 4주차 - Service (ClusterIP, NodePort)
개요Service는 쿠버네티스에서 동작하는 애플리케이션을 내/외부에서 유연하게 접속하기 위한 역할을 하며 ClusterIP, NodePort, LoadBalancer Type을 지원Service 동작에 중요한 부분을 차지하는 것이 kube-proxy 인데 kube-proxy의 ConfigMap을 보면 기본으로 iptables를 사용하는 것으로 설정되어 있음...
View Article[KANS] 5주차 - LoadBalancer(MetalLB, IPVS)
로드밸런서 타입 개요쿠버네티스 클러스터 내 Pod로 외부에서 접속하기 위해서는 요청을 수신하기 위한 expose 설정을 해야하는데 방법 중 하나가 LoadBalancer 타입을 지정하는 것기본적으로 쿠버네티스는 로드밸런서 컴포턴트를 직접적으로 제공하지 않음 public cloud를 사용하는 경우에는 CSP에서 제공하는 자체 로드밸런서를 사용온프레미스에서는...
View Article[KANS] 6주차 - Ingress, Gateway API
Ingress 개요Ingress를 이해하기 위해서는 Service의 각 유형들에 대한 이해도가 있어야 함Ingress는 클러스터 외부에서 클러스터 내부 서비스로 트래픽을 전달할 수 있도록 제공하고, Service와 달리 HTTP 및 HTTPS를 사용할 수 있도록 하는 Kubernetes의 오브젝트Ingress는 다양한 환경과 요구사항에 맞춰 구현될 수 있어야...
View Article[KANS] 8주차 - Cilium CNI
eBPF를 왜 사용할까?iptables의 단점을 보완하기 위함같은 NetworkPolicy를 할당받는 Pod가 무수히 많다면 Pod 수 만큼 iptables rule에 해당 NetworkPolicy가 반영되기 때문에 개수가 많아지고, 결과적으로 성능 저하로 이어짐contrack 테이블의 지속적으로 유지 관리해야함iptables의 규칙에 일치할 때까지 모든...
View Article[Istio 스터디] 1주차 - Istio 소개, 첫걸음
서비스 메시 소개클라우드가 확산되면서 애플리케이션 설계에 있어서도 고려할 사항들이 변화하고 있음 컨테이너화 된 애플리케이션들은 언제든 삭제되고 재생성될 수 있음네트워크는 신뢰할 수 없으므로 더 크고 더 분산된 시스템을 구축할 때는 네트워크에 대해 재시도, 타임아웃, 서킷 브레이커와 같은 네트워크 복원력이나 관찰가능성, 애플리케이션 계층은 보안 등을...
View Article[Istio 스터디] 2주차 - Envoy, Istio Gateway
Envoy의 중요성Envoy는 Istio 서비스 메시(Service Mesh)의 데이터 플레인으로서 핵심적인 역할을 담당Kubernetes가 컨테이너 오케스트레이션 플랫폼이듯이, Istio 서비스 메시를 제대로 이해하고 운영하기 위해서는 Envoy에 대한 깊은 이해가 필수적Istio가 제공하는 다양한 기능(트래픽 라우팅, TLS 터미네이션 등)은 모두...
View Article[Istio 스터디] 3주차 - Traffic control, Resilience
(참고) 배포와 릴리즈의 차이배포(Deployment): 새 버전의 애플리케이션을 인프라에 올리는 것릴리즈(Release): 실제 프로덕션 환경의 트래픽을 새 버전으로 전달하는 것배포 전략블루-그린 배포: 새 버전을 완전히 배포한 후 한 번에 전환카나리 배포: 일부 트래픽만 새 버전으로 점진적 전환다크 런치: 특정 사용자(예: 내부 QA 팀)만 새 버전에...
View Article[istio study] 4주차 - Observability
관찰 가능성(Observability)의 개념관찰 가능성이란 외부의 신호와 특성(시그널링)을 통해 내부 애플리케이션의 상태를 이해하고 추론할 수 있게 하는 시스템 특성시스템의 외부에서 내부 상태를 파악할 수 있는 능력을 의미Istio의 관찰 가능성 기능은 마이크로서비스 아키텍처의 복잡성을 관리하는 데 큰 도움을 주며, 데이터 플레인과 컨트롤 플레인에서...
View Article[istio 스터디] 5주차 - 마이크로서비스 통신 보안
애플리케이션 네트워크 보안의 필요성네트워크 보안에서는 인증, 인가, 전송 데이터 암호화와 같은 요소들이 중요함 인증은 사용자나 서비스의 신원을 확인하는 과정인가는 인증된 사용자나 서비스가 특정 리소스나 작업에 접근할 수 있는 권한이 있는지 확인하는 절차 Istio에서는 서비스 간 인증과 최종 사용자 인증이라는 두 가지 유형의 인증이 존재함 서비스 간 인증은...
View Article[istio 스터디] 6주차 - 운영 및 트러블슈팅
이번 주차 스터디에서 다룰 내용 :데이터 플레인 관련 문제 확인 및 처리 방법워크로드 설정 오류 시 원인 파악 과정과 절차로그, 텔레메트리(Telemetry) 등의 확인 기법Istiod 컨트롤 플레인 파드 최적화성능 최적화를 위한 방법들실습 시 주의 사항 :11장에서는 컨트롤 플레인 튜닝 실습을 위해 약 200개 이상의 더미 서비스를 생성해야 하는데, 초기에...
View Article