Kubernetes 47

[ Kans 3 Study - 5w ] 2. MetalLB

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. MetalLB(BareMetalLoadBalancer) 온프레미스 환경에서 표준 프로토콜을 사용해 Loadbalancer 서비스를 구현쿠버네티스의 데몬셋으로 스피커 파드를 생성해 External IP를 전파External IP는 노드의 IP 대신 외부에서 접속 가능 → 노드 IP가 노출되지 않아 보안성 향상스피커 파드는 External IP 전파를 위해 ARP 혹은 BGP를 사용MetalLB는 ARP를 사용하는 Layer2 모드나 BGP를 사용하는 BGP 모드 중 하나를 선택해 동작퍼블릭 클라우드 환경에서는 동작하지 않는다. - 링크 일부 CNI와 연동불가 - 링크 예시) Calico IPIP(BGP)와 Me..

Kubernetes 2024.10.05

[ Kans 3 Study - 5w ] 1. LoadBalancer

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. 실습 환경 : K8S v1.31.0 , CNI(Kindnet, Direct Routing mode) , IPTABLES proxy mode노드(실제로는 컨테이너) 네트워크 대역 : 172.18.0.0/16 파드 사용 네트워크 대역 : 10.10.0.0/16 ⇒ 각각 10.10.1.0/24, 10.10.2.0/24, 10.10.3.0/24, 10.10.4.0/24서비스 사용 네트워크 대역 : 10.200.1.0/24 #cat kind-svc-2w.yamlkind: ClusterapiVersion: kind.x-k8s.io/v1alpha4featureGates: "InPlacePodVerticalScaling..

Kubernetes 2024.10.05

[ Kans 3 Study - 4w ] 2. Service - NodePort

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다.  NodePort [  통신 흐름  ]요약 : 외부 클라이언트가 '노드IP:NodePort' 접속 시 해당 노드의 iptables 룰에 의해서 SNAT/DNAT 되어 목적지 파드와 통신 후 리턴 트래픽은 최초 인입 노드를 경유해서 외부로 되돌아감외부에서 클러스터의 '서비스(NodePort)' 로 접근 가능 → 이후에는 Cluster IP 통신과 동일!모드 노드(마스터 포함)에 iptables rule 이 설정되므로, 모든 노드에 NodePort 로 접속 시 iptables rule 에 의해서 분산 접속이 됨Node 의 모든 Loca IP(Local host Interface IP : loopback 포함) 사..

Kubernetes 2024.09.29

[ Kans 3 Study - 4w ] 1. Service - ClusterIP

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. [  서비스 타입  ] Cluster Type : 서비스(Cluster Type) 연결 : K8S 클러스터 내부에서만 접속동일한 애플리케이션의 다수의 파드의 접속을 용이하게 하기 위한 서비스에 접속고정 접속(호출) 방법을 제공 : 흔히 말하는 ‘고정 VirtualIP’ 와 ‘Domain주소’ 생성  NodePort Type : 서비스(NodePort Type) 연결 : 외부 클라이언트가 서비스를 통해서 클러스터 내부의 파드로 접속서비스(NodePort Type)의 일부 단점을 보완한 서비스(LoadBalancer Type) 도 있다!LoadBalancer Type : Nodeport 타입의 확장판이라고 할 수..

Kubernetes 2024.09.22

[ Kans 3 Study - 4w ] 실습 환경 구성

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다.  wsl / kind 설치# Ubuntu 배포 관련 Vagrantfile, init_cfg.sh 파일 다운로드curl -O https://raw.githubusercontent.com/gasida/KANS/main/kind/Vagrantfilecurl -O https://raw.githubusercontent.com/gasida/KANS/main/kind/init_cfg.sh# vagrant 로 ubuntu 가상머신 1대 프로비저닝vagrant up... # 설치 스크립트 init_cfg.sh 실행되어 다소 시간 소요# vagrant 상태 확인vagrant status# Ubuntu SSH 접속vagrant ..

Kubernetes 2024.09.22

[ Kans 3 Study - 3w ] 4. Calico 네트워크 모드

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다.   Calico Mode  [ IP-in-IP: 기본값; encapsulated ]파드 간 통신이 노드와 노드 구간에서는 IPIP 인캡슐레이션을 통해서 이루어진다.다른 노드 간의 파드 통신은 tunl0 인터페이스를 통해 IP 헤더에 감싸져서 상대측 노드로 도달 후 tunl0 인터페이스에서 Outer 헤더를 제거하고 내부의 파드와 통신다른 노드의 파드 대역은 BGP로 전달 받아 호스트 라우팅 테이블에 업데이트됨Azure 네트워크에서는 IPIP 통신이 불가능하여 IPIP 모드 대신 VXLAN 모드 사용멀티 캐스트, 브로드캐스트, IP-IP 캡슐화 패킷 및 GRE(일반 라우팅 캡슐화) 패킷은 Azure VNet 내..

Kubernetes 2024.09.22

[ Kans 3 Study - 3w ] 3. Calico 기본 통신 이해

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. 파드 ↔ 파드 간 통신 [ 최종 통신 흐름 ]결론 : 동일 노드 내의 파드 간 통신은 내부에서 직접 통신됨iptables FORWARD Rule 에 정책(허용) 사용calice# 인터페이스에 proxy arp 설정으로 파드에서 바라보는 게이트웨이의 MAC 정보를 파드가 전달 받음동일 노드 내에 파드 간 통신에서는 tunnel 인터페이스는 미 관여참고 링크 : Proxy ARP - 링크 [오리뎅이의 LAN 통신 이야기 - 5] Proxy ARP가 없다면?안녕하세요? 오리뎅이입니다.   지난 시간까지 삼 테이블(Routing Table, ARP Table, MAC T...blog.naver.com  [ 파드 배포..

Kubernetes 2024.09.21

[ Kans 3 Study - 3w ] 2. Calico Component

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. 1. Calico CNI 알아보기 [ Calico Component ] 칼리코는 쿠버네티스 플랫폼을 포함해 다양한 플랫폼에서 워크로드의 네트워크 통신과 네트워크 보안 기능을 제공한다.쿠버네티스 CNI 를 준수하여, 파드를 위한 네트워크 통신 환경을 마련해준다. Calico components - Docs  1. Calico datastore칼리코 동작과 관련된 설정 정보(네트워크, 네트워크 정책 설정 등)가 calico datasore에 저장한다.- 저장소는 쿠버네티스 api 저장소(default) 혹은 etcd를 선택할 수 있다.2. felixcalico datastore로부터 가져온 설정 정보에 맞게 ho..

Kubernetes 2024.09.21

[ Kans 3 Study - 3w ] 1. Calico CNI & Mode 실습 환경 설정

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다.   Calico 실습을 위한 K8S 배포   AWS 환경에서는 k8s-rtr 은 없고, AWS 내부 라우터가 대신 라우팅을 처리합니다. 실습 환경 : K8S v1.30.X, 노드 OS(Ubuntu 22.04 LTS) , CNI(Calico v3.28.1, IPIP, NAT enable) , IPTABLES proxy mode # YAML 파일 다운로드curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/kans/kans-3w.yaml# CloudFormation 스택 배포# aws cloudformation deploy --t..

Kubernetes 2024.09.20

[ Kans 3 Study - 2w ] 5. Flannel CNI

CloudNetaStudy - Kubernets Networtk 3기 실습 스터디 게시글입니다. [ 요약 ] 쿠버네티스는 네트워크 모델의 요건을 만족하는 CNI 플러그인이 있고, 대표적으로 'Calico, Cilium 등'이 있습니다. - K8S 버전은 1.30.4 : CNI 는 flannel(v0.25.6) kind & Flannel 배포 - Docs Blog Github : Windows 사용자 → bridge 플러그인 바이러니 파일은 intel cpu PC에서 생성 후 첨부하기#cat kind-cni.yamlkind: ClusterapiVersion: kind.x-k8s.io/v1alpha4nodes:- role: control-plane labels: mynode: control-plan..

Kubernetes 2024.09.08