Cloud/Kubernetes 4

Admission Control

Kubernetes에서 kubelet, 혹은 kubectl을 통해 api server에 요청을 보내면 api server는 controller plane의 컴포넌트들과 상호작용을 완료한 후 요청에 대해 응답한다. 이 요청이 일어날 때, 아무 요청이나 받아들이면 클러스터는 금새 잘못된 요청, 악의적인 요청들로 인해 망가질 가능성이 있다. 따라서 요청 자체가 올바른 지 판단하는 과정이 필요하다. 이번 포스팅에서 api 요청이 "올바르다"고 판단하는 기준이 무엇일지 알아본다. API Request 과정 api server로 요청이 들어오게 되면 아래 3가지 절차에 의해서 이 요청을 확인한다. 1. 요청이 올바른 대상으로 부터 왔는가 (Verification) 2. 요청을 하는 대상에게 충분한 권한이 있는가 (..

Cloud/Kubernetes 2021.07.27

Kubernetes NetworkPolicy 란?

이번 포스팅은 아래 Docs의 내용을 간단하게 정리해보았다. kubernetes.io/docs/concepts/services-networking/network-policies/ Network Policies If you want to control traffic flow at the IP address or port level (OSI layer 3 or 4), then you might consider using Kubernetes NetworkPolicies for particular applications in your cluster. NetworkPolicies are an application-centric construct which allow y kubernetes.io NetworkPol..

Cloud/Kubernetes 2020.12.26

Istio를 알아보자 - 1. 기본 항목 구성

Istio가 몇가지 서비스 구성적인 문제나 성능 문제를 가지고는 있지만 CNCF 서비스 메시 항목 중에서 가장 유명하고 가장 잘 쓰이는 서비스 메시가 아닐까 한다(실제 클라우드 플랫폼들도 많이들 기본 지원하고 있기도 하고). 그러나 나름대로 자체 제공되는 항목들이나 Envoy와 연계되어 제공하는 기능들이 많기 때문에 , 이번 포스팅에서는 먼저 Istio 서비스 메시가 어떤 구성으로 되어 있는지 알아보고자 한다. Istio를 설치하게되면 기본적으로 Pilot, Citadel, Galley를 Control Plane에 두고 있다. 이 설정들을 반영해 실제 트래픽처리는 Istio proxy 에서 이루어지게 된다. 따라서 중요한 메인 설정들은 Pilot, Citadel, Galley에서 이루어지고, 이 세 컴포..

Cloud/Kubernetes 2020.12.13

Pod 라우팅과 ExternalTrafficPolicy 옵션

Pod를 expose할 때 Kubernetes의 Service를 통해 다른 Pod혹은 외부에서 접근할 수 있도록 설정할 수 있다. 더 정확히는 Service를 생성하면 해당하는 Pod들에 대한 endpoint가 자동으로 생성되어, connection이 가능해진다. 물론 없어도 연결이 아예 불가능한 것은 아니지만 쿠버네티스적 관점에서는 Service가 필요하다. 노드 외부에서의 연결이 들어온 상태이고 Service를 NodePort나 LB타입으로 설정한 경우는 어떨까? 기본 설정에서는 Service에 여러 개의 Pod가 연결되어 있다면 쿠버네티스의 kube-proxy에 의해 iptables가 설정될 것이고, 패킷은 iptables에 따라 랜덤하게 전달될 것이다. 하지만 만약 패킷이 특정 노드에 전달된 경우..

Cloud/Kubernetes 2020.11.23