Cilium CNI란?eBPF(Berkeley Packet Filter)를 기반으로 Pod Network 환경 + 보안 을 제공하는 CNI Plugin이다.eBPF를 기반으로 고성능의 네트워크 처리를 제공하고, 다양한 기능을 제공한다. Cilium 주요 특징eBPF 기반 기술 : Cilium은 리눅스 커널의 eBPF 기술을 활용한다. eBPF는 커널 내에서 안전하게 프로그램을 실행할 수 있게 해주는 기술인데, 이를 통해 Cilium에서 커널 단의 빠른 처리를 통한 높은 성능을 제공한다.마이크로서비스 지원 : Cilium은 L3/L4 레벨뿐만 아니라 L7 레벨의 네트워크 정책을 지원한다.네트워크 정책 : Kubernetes Network Policy를 지원하며, 추가적으로 CiliumNetworkPoli..
Ingress란?Kubernetes 클러스터 내부의 서비스에 외부에서 접근할 수 있도록 HTTP 및 HTTPS 트래픽을 라우팅하는 API 객체이다.인그레스는 도메인 기반, 경로 기반 라우팅을 지원하며, SSL/TLS 종료, 가상 호스팅 등 다양한 기능을 제공한다.Ingress Controller란?Ingress 리소스를 감시하고, 실제 트래픽을 관리하는 컴포넌트이다. Ingress Controller는 Ingress 리소스에 정의된 규칙을 바탕으로 외부 트래픽을 클러스터 내부의 서비스로 라우팅한다. 구분 Ingress Ingress Controller 정의트래픽 라우팅 규칙을 정의하는 쿠버네티스 API 객체인그레스 리소스를 감시하고 실제 트래픽을 라우팅하는 컴포넌트역할외부 트래픽이 클러스터 내부 서비스..
Kubernetes 서비스란?Kubernetes에서 서비스란 아래와 같이 정의된다.In Kubernetes, a Service is a method for exposing a network application that is running as one or more Pods in your cluster.The Service API, part of Kubernetes, is an abstraction to help you expose groups of Pods over a network. Each Service object defines a logical set of endpoints (usually these endpoints are Pods) along with a policy about how to ..
컨테이너에 대한 사전 정보를 알아봤으니, 실제 K8S(Kubernetes)에서의 네트워크를 알아보자.스터디를 위한 구성스터디를 위한 K8S 구성은 AWS에 구성하였으며, 아래와 같다.root@k8s-m:~# kubectl get node -owideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIMEk8s-m NotReady control-plane 57s v1.30.5 192.168.10.10 Ubuntu 22.04.5 LTS 6.5.0-1024-aws contai..
Pod란?Pod란 Kubernetes의 기본 단위로, 하나 이상의 컨테이너를 포함하는 컨테이너의 집합이다.이런 Pod는 여러 컨테이너가 함께 배치되어 서로 네트워크와 스토리지 자원을 공유하는 격리된 환경을 제공하는데,이런 점으로 볼 때 K8S 환경에서 Pod하나는 하나의 어플리케이션의 기본 배포 단위로 보기도 한다.(물론 다른 식으로 Pod간 통신이나 여러 동작들이 있을 수 있다.)https://kubernetes.io/docs/concepts/workloads/pods/ Pod는 아래의 속성을 가진다고 할 수 있다.컨테이너 그룹: 하나의 Pod 내에는 여러 컨테이너가 포함될 수 있다.Pod 내에서 실행되는 모든 컨테이너는 동일한 노드에서 실행되며, Pod의 생명 주기를 공유한다. 즉, Pod가 삭제되면..
Kubernetes란?앞서 알아본 컨테이너를 시스템 차원에서 자동으로 관리해주기 위한 오픈소스 플랫폼이다.워낙 유명하기도 하고 이전에 많이 테스트해보기도 했기 때문에 간단한 정리와 추후에 시간을 내서 더 공부하기 위한 Deep Dive 자료만 추가로 정리한다.Kubernetes의 역할https://kubernetes.io/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-it-do OverviewKubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarativ..
[24단계 실습으로 정복하는 쿠버네티스] 책으로 스터디를 진행하였다. Prometheus란? Prometheus는 시스템과 서비스를 모니터링하기 위한 도구로, Pull 방식의 모니터링 시스템과 경보 알람을 제공한다. 모니터링할 대상에 exproter라는 Agent가 설치되고 해당 Agent에서 다양한 모니터링 정보(Metric)을 수집해 놓으면 Prometheus Server에서 해당 데이터를 가져가는 방식을 취한다. - 일반적으로는 Pull 방식을 취해 데이터를 수집하지만, Pushgateway를 통해서 짧은 수명의 작업(어플리케이션 등)은 Push 방식을 지원하는 것으로 확인된다. - PromQL(Prometheus Query Language)이라는 질의언어를 제공한다. (일반적인 SQL은 아니지만 ..