본문 바로가기

전체 글720

[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.
[KANS] 2주차 - K8S Flannel CNI & Pause 정리 Kind그림 출처: https://kind.sigs.k8s.io/ kubernetes in docker의 약자로컬환경에서 테스트용도로 사용하며 docker 기반으로 Kubernetes를 설치함docker 컨테이너 안에서 docker를 사용해서 Kubernetes 실행에 필요한 각 컴포넌트들을 컨테이너로 실행멀티 클러스터에 대한 테스트를 해보기 좋음아래 명령으로 설치 및 실행# Install Kindbrew install kindkind --version# Install kubectlbrew install kubernetes-clikubectl version --client=true# Install Helmbrew install helmhelm version# Install Wireshark : 캡처된 패.. 2024. 9. 7.