Infra
-
Kubernetes 환경에서 gRPC 로드밸런싱Infra 2024. 11. 17. 14:44
gRPC는 HTTP/2 기반으로 동작을 하고 HTTP/2는 하나의 TCP 연결에서 여러개의 스트림을 처리하도록 설계되어 클라이언트와 서버간의 연결이 오래 유지되는 Long lived connection 방식을 사용합니다.이러한 특성으로 인해 Kubernetes의 Connection Based 로드밸런싱이 gRPC에서는 정상적으로 동작하지 않게 되고 모든 요청이 동일한 파드에 고정되게 됩니다.Connection based 로드밸런싱이란?쿠버네티스의 기본 로드밸런싱 정책으로 L4 레이어에서 동작하며 TCP 연결이 생성될 때 로드밸런서가 특정 파드에 연결을 할당하고 연결이 종료될 때 까지 해당 파드에 트래픽을 라우팅하는 방식입니다.동작 방식클라이언트가 Service의 IP(ClusterIP, NodePort,..
-
[Istio] External AuthorizationInfra 2024. 8. 4. 15:58
Istio Serive MeshIstio는 쿠버네티스 클러스터 내에서 서비스 간의 통신을 제어하고 관리하는 서비스 메쉬로 트래픽 관리, 보안, 정책 적용 및 모니터링을 제공하여 마이크로서비스의 복잡성을 관리하는 데 도움을 줍니다.External AuthorizationExternal Authorization은 Istio의 보안 기능중에 하나로 인증 서비스와 연동하여 요청에 대한 엑세스 제어를 할 수 있도록 중앙에서 관리 해줍니다.External Authorization은 Istio 데이터 플레인에서 트래픽을 처리하는 프록시인 Envoy Filter를 사용하여 구현됩니다. Envoy는 요청을 인증 서비스로 경유시키도록 하고 인증 서비스에 의해서 액세스 가능 여부를 결정하게 됩니다. 구성 요소Authori..
-
[Kubernetes] 쿠버네티스 클러스터 구조Infra 2024. 3. 31. 17:32
K8S 구조 쿠버네티스는 크게 클러스터 전체를 관리하는 컨트롤 플레인과 실제 구동되는 컨테이너가 배포되는 워커 노드로 나누어 집니다. 컨트롤 플레인 etcd 쿠버네티스 구성요소들의 상태 값, 설정등을 key-value 형태로 저장하는 데이터베이스 역할을 담당 kube-apiserver 쿠버네티스 클러스터의 내, 외부 상호 작용을 위해 API 통신을 담당하는 역할 Rest API 호출 또는 kubectl, kubeadm 과 같은 cli를 사용하여 api server에 접근할 수 있음 kube-scheduler 클러스터의 상태가 정상적인지 체크 각 노드의 CPU, 메모리 등의 자원 상태를 체크하여 신규 컨테이너 배치를 결정 kube-controller-manager 클러스터에 실제 실행을 명령하는 역할을 담..