본문 바로가기

전체 글721

[KANS] 6주차 - Ingress, Gateway API Ingress 개요Ingress를 이해하기 위해서는 Service의 각 유형들에 대한 이해도가 있어야 함Ingress는 클러스터 외부에서 클러스터 내부 서비스로 트래픽을 전달할 수 있도록 제공하고, Service와 달리 HTTP 및 HTTPS를 사용할 수 있도록 하는 Kubernetes의 오브젝트 Ingress는 다양한 환경과 요구사항에 맞춰 구현될 수 있어야 하고, SSL 인증서 관리, 고급 로드 밸런싱 알고리즘, 웹 애플리케이션 방화벽 등의 기능을 제공할 수 있어야 하기 때문에 Service 처럼 Built-in으로 제공되지 않고 별도로 설치해야함Ingress의 실제 동작 구현은 인그레스 컨트롤러가 처리함 (대표적으로 Nginx, Kong, AWS Loadbalancer Controller 등이 있음.. 2024. 10. 13.
[KANS] 5주차 - LoadBalancer(MetalLB, IPVS) 로드밸런서 타입 개요쿠버네티스 클러스터 내 Pod로 외부에서 접속하기 위해서는 요청을 수신하기 위한 expose 설정을 해야하는데 방법 중 하나가 LoadBalancer 타입을 지정하는 것기본적으로 쿠버네티스는 로드밸런서 컴포턴트를 직접적으로 제공하지 않음public cloud를 사용하는 경우에는 CSP에서 제공하는 자체 로드밸런서를 사용온프레미스에서는 주로 MetalLB를 사용함 (MetalLB는 소프트웨어로 동작함)일반적으로 다수의 워커 노드로 트래픽을 분산하기 위해서 앞단에 로드밸런서를 두고, 로드밸런서가 수신한 요청을 대상 노드에 전달하면 수신받은 노드는 기존의 ClusterIP 타입의 동작과 동일하게 iptables rule을 통해 대상 Pod로 트래픽을 전달함이 때는 노드의 포트로 수신한 트래.. 2024. 10. 6.
[KANS] 4주차 - Service (ClusterIP, NodePort) 개요Service는 쿠버네티스에서 동작하는 애플리케이션을 내/외부에서 유연하게 접속하기 위한 역할을 하며 ClusterIP, NodePort, LoadBalancer Type을 지원Service 동작에 중요한 부분을 차지하는 것이 kube-proxy 인데 kube-proxy의 ConfigMap을 보면 기본으로 iptables를 사용하는 것으로 설정되어 있음참고로 Amazon EKS는 kube-proxy의 ConfigMap이 간소화되어 설정되어 있고, 기본값이 iptables이기 때문에 굳이 명시되어 있지 않음Pod는 재생성 되면 매번 IP가 변경되기 때문에 클라이언트 입장에서는 매번 IP가 바뀌면 문제가 되기 때문에 Service 개념이 필요함고정 Virtual IP를 할당하고 Domain 주소를 생성해.. 2024. 9. 28.
[KANS] 3주차 - Calico CNI & Mode 정리 Calico OverviewCalico 관련된 설정을 하게되면 calico datastore에 모든 정보가 저장됨. 이 정보를 기반으로 calico-node Pod가 동작함calicoctl로 Calico 관련 설정들에 대한 CRUD를 할 수 있음calico-node Pod는 데몬셋으로 동작함데몬셋 Pod는 호스트의 네트워크 인터페이스를 공유해서 사용calico-node는 bird, felix, confd로 구성됨노드가 신규로 생성되면 각 노드의 bird 간에 마치 명함을 교환하는 것처럼 BGP 라우팅 프로토콜을 통해 상호 정보를 교환함 (정보를 동적으로 광고)Felix는 Bird를 통해 BGP로 받은 정보를 호스트의 라우팅 테이블에 반영하는 역할과 iptables의 규칙을 수정하는 역할을 함iptable.. 2024. 9. 21.