반응형

Kubernetes 33

Kubernetes Kube-proxy의 IPVS 모드

안녕하세요?이번 글에서는 Kube-proxy의 IPVS 모드에 대해서 알아보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS(Kubernetes Advanced Network Study) 5주차 과제로 작성되었습니다.Kube-proxy 모드 중 IPVS 모드에 대해서IPVS란?지난 글 에서도 봤듯이,Kube-proxy는 클러스터 내부에서 서비스 간의 네트워크 요청을 적절한 Pod로 라우팅하는 역할을 합니다.이 라우팅 방식에는 세 가지 모드가 있으며, 그 중 하나가 IPVS 모드입니다. IPVS(Internet Protocol Virtual Server)는 리눅스 커널 레벨에서 제공하는 고성능 (소프트웨어) 로드 밸런서로, 클러스터 내에서 트래픽을 처리하는 방식입니다. 리눅스 커널 모듈로 동작하며,..

Kubernetes 2024.10.03

Kubernetes Kube-proxy의 iptables proxy mode, ClusterIP 심화 탐구

안녕하세요? Kubernetes Service인 ClusterIP 구조를 Kube-proxy의 mode와 엮어서 평소보다 좀 더 깊게 파보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS(Kubernetes Advanced Network Study) 4주차 과제로 작성되었습니다.환경 구성클러스터 배포이전에 했던 것과 같이 kind로 클러스터를 배포합니다.kind manifest에서 아래 조건들을 확인합니다.pod의 서브넷, service 서브넷에 유의합니다.네트워킹 부분을 보면 podSubnet, serviceSunet에 대한 명시가 되어있습니다. networking:podSubnet: 10.10.0.0/16serviceSubnet: 10.200.1.0/24cat kind-svc-1w.yamlk..

Kubernetes 2024.09.28

Calico CNI의 구조를 파악하고 통신 테스트하기

들어가며안녕하세요?Calico CNI의 구조를 파악하고 Pod들간의 통신을 테스트한 글을 써보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS(Kubernetes Advanced Network Study) 3주차 과제로 작성되었습니다. Calico CNI에 대하여Calico의 구조Calico는 쿠버네티스에서서 동작하는 CNI (Container Network Interface) 입니다.Calico 를 설명하는 그림으로 배웠지만 스스로 이해를 쉽게 하기 위해서 구조를 그려봤습니다.Calico를 CNI로서 설치하면 이런 구조로 통신이 가능해지는 것 같습니다.Calico CNI를 설치하면 Calico-node Pod가 배포됩니다.여기에서 실행되는 Felix, BIRD, Confd라는 3가지 프로세스를 ..

Kubernetes 2024.09.17

Pod내 container들의 namespace 정보와 Pause 컨테이너의 역할 알아보기

들어가며안녕하세요?Pod내 container들의 namespace 정보와 Pause 컨테이너의 역할 에 대해서 공부한 내용을 정리해보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS(Kubernetes Advanced Network Study) 2주차 과제로 작성되었습니다. Pod와 Pause containerPod 는 1개 이상의 컨테이너를 가질 수 있습니다 : 예로는 Sidecar container 패턴이 있습니다.Pod 내에 실행되는 컨테이너들은 반드시 동일한 노드에 할당되며 동일한 생명 주기를 갖습니다 : Pod 삭제 시, Pod 내 모든 컨테이너가 삭제됩니다.Pod IP - Pod 는 노드 IP 와 별개로 클러스터 내에서 접근 가능한 IP를 할당 받으며, 다른 노드에 위치한 Pod 도 N..

Kubernetes 2024.09.08

Container Runtime과 CRI, 그리고 Containerd 알아보기

들어가며 안녕하세요?Container Runtime과 CRI, Containerd 에 대해서 공부한 내용을 정리해보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS(Kubernetes Advanced Network Study) 2주차 과제로 작성되었습니다. Container RuntimeContainer Runtime이 뭔가요? CRI를 알아보기 전에 Container Runtime 부터 알아보겠습니다.여기저기 나온 그림들을 합쳐서 어떤 식으로 Kubernetes에서 container를 만들어 내는지에 대해 아래와 같은 구조를 그려봤습니다.High level runtime, Low level runtime 이라는 단어가 등장합니다.  Low Level Container Runtime 이 뭔가요?지..

Kubernetes 2024.09.08

Kind와 OrbStack를 사용해서 쉽게 Local에서 Kubernetes 사용하기

들어가며안녕하세요?Kind 라는 도구와 Orbstack를 함께 사용해본 후기를 써보겠습니다.이 글은 CloudNeta팀 가시다님의 KANS (Kubernetes Advanced Network Study) 2주차 스터디의 과제로 작성하였습니다.Kind가 뭔가요?Kind를 이용하면 로컬에서 Kubernetes를 쉽고 간단하게 올릴 수 있습니다.Macbook M1 Pro를 사용하는 제 환경에서도 아주 편리하게 할 수 있습니다.Kind 공식문서에서는 이렇게 소개하고 있습니다.kind is a tool for running local Kubernetes clusters using Docker container “nodes”.kind was primarily designed for testing Kubernetes..

Kubernetes 2024.09.05

Container 격리 기술 이해하기

들어가며이번에 멋진 가시다님이 운영하시는 CloudNeta 팀의 스터디에 1년만에 다시 참여하게 되었습니다.이번 주제는 쿠버네티스 네트워크 매운맛입니다.이 KANS (Kubernetes Advanced Network Study)의 1주차 과제로서 학습한 내용을 정리해보려고 합니다.심화 이해를 하려고 하다보면 항상 먼 옛날에 잊혀진 기초가 발목을 잡으니복습을 하면서 다시 한번 전체 내용을 되짚어 보겠습니다.Container 격리를 추상적으로 이해하기가상화와 Container 환경에 대한 도식화 한 이해저는 멋진 널널한 개발자님의 강의 내용를 자주 보는데,가상화에 대한 쉬운 설명이 있어서 일부 그림으로 갖고 왔습니다.출처영상은 이곳입니다널널한 개발자님은 아래와 같은 간단한 도식 형태로 설명을 하시는데 즉각적..

Kubernetes 2024.08.31

GitOps : Tekton, ArgoCD 로 CI/CD 하기

Tekton, ArgoCD 를 결합한 CI/CD, GitOps 구현 예제를 작성해보겠다. 간단한 FastAPI 를 배포하는 예제이다. 구조예제를 위한 평범한 GitOps 구조를 그려봤다.FastAPI app에 추가 변경사항을 반영해서 Repo를 업데이트하고나서 Tekton PipelineRun 으로 Trigger를 한다. 그러면 Tekton Pipeline에 정의된 순서대로 Task 3개가 동작을 시작한다. App repo를 clone 해와서 build 하고 DockerHub에 push한다. 이 과정에서 나온 image tag를 GitOps repo에 업데이트 한다. Slack으로 완료 메시지를 보낸다.ArgoCD가 에 있던 GitOps 대상 파일의 변경을 감지한다. 수동으로 deploy를 누르면 대상 ..

Kubernetes 2023.03.24

[스터디] Kubernetes Container Networking 정리

PKOS2주차의 주제는 Networking 이다. 그 중에서도 Container networking 에 대해 정리해보려고 한다. Kubernetes networking의 고려사항 이 문서를 보면 어떤 고민들을 갖고 쿠버네티스의 네트워킹 모델이 등장했는지를 알 수 있다. https://kubernetes.io/ko/docs/concepts/cluster-administration/networking/ 💡 쿠버네티스는 애플리케이션 간에 머신을 공유하는 것이 핵심입니다. 일반적으로 머신을 공유하려면 두 애플리케이션이 동일한 포트를 사용하려고 시도하지 않도록 해야 합니다. 여러 개발자가 포트를 조정하는 것은 대규모로 수행하기가 매우 어렵고 사용자가 제어할 수 없는 클러스터 수준의 문제에 노출될 수 있습니다. ..

Kubernetes 2023.03.18

Kubernetes cluster에 Locust를 올려서 분산 부하 테스트한 후기

TL; DR helm repo add deliveryhero https://charts.deliveryhero.io/ helm install deliveryhero/locust kubectl create configmap my-loadtest-locustfile --from-file path/to/your/main.py helm install locust deliveryhero/locust \ --set loadtest.name=my-loadtest \ --set loadtest.locust_locustfile_configmap=my-loadtest-locustfile 배경 Locust를 이용한 부하 테스트를 자주해야 하고 그 범위가 다양하다면 worker 수를 scalable 하게 다루고 싶어질 수 있..

Kubernetes 2023.01.08
반응형