본문 바로가기
반응형

Infra & Cloud20

[Istio] Batch Job에서 불가능한 Side-car 패턴(Envoy proxy)의 한계를 극복해보자 (Kubernetes, Pod, Container, CronJob) 참고 자료 - https://stackoverflow.com/questions/72645650/terminate-istio-proxy-after-cronjob-completion - https://github.com/wafflestudio/waffle-world/blob/main/apps/snutt-dev/snutt-core/snutt-core.yaml - https://www.howtogeek.com/devops/how-to-clean-up-old-kubernetes-jobs/ - https://kubernetes.io/docs/concepts/workloads/controllers/job/#clean-up-finished-jobs-automatically 1. 문제 정의 apiVersion: batc.. 2022. 12. 26.
[Kubernetes] NetworkPolicy를 통해 Pod끼리의 트래픽을 통제해보자. (Ingress/Egress, from/to, namespaceSelector, podSelector, port) [ NetworkPolicy ] 1. Ingress vs Egress 네트워크 트래픽은 외부로부터 유입되는 Ingress(inbound)와 내부로부터 외부로 나가는 Egress(outbound)로 구분됩니다. 우리가 공부하고 있는 쿠버네티스는 기본적으로 non-isolated 네트워크이므로 클러스터 내부 Pod끼리의 트래픽 흐름은 자유롭습니다. 하지만 Namespace(네임스페이스)로 단일 클러스터의 리소스 격리 매커니즘을 사용하여 논리적인 가상 클러스터를 만드는 것처럼, 일부 환경에서는 다른 네임스페이스의 애플리케이션을 적절히 격리하거나 트래픽 제어를 할 필요가 있습니다. Ingress라는 이름의 API 오브젝트도 있으나, HTTP/HTTPS로 요청하는 주소를 구분하여 애플리케이션 서비스에 라우팅할 수.. 2022. 12. 14.
[Kubernetes] Authentication/Authentication(인증/인가) 프로세스 및 User/Role 생성(User, CSR, RBAC, RoleBinding) 1. 쿠버네티스에서의 User 개념 쿠버네티스에서는 User(human)와 ServiceAccount(machine) 두 종류의 사용자가 존재합니다. User에는 클러스터 관리자 및 사용자(일반 개발자)가 있으며, ServiceAccount는 Prometheus, Jenkins 등의 Pod 단위로 동작하는 컨테이너들이 API를 사용하기 위해 권한을 부여받은 machine을 뜻합니다. 쿠버네티스에는 우리가 일반적으로 이해하고 있는 User Account과 매칭되는 개념의 객체가 존재하지 않습니다. 즉, 일반적인 방식인 API Call을 통해서는 클러스터에 '지금 사용자가입하니깐 DB 같은데 등록해놔라~'라고 등록할 수 없다는 말입니다. 대신, 클러스터의 인증 기관(CA)이 서명한 유효한 인증서를 제시하는 .. 2022. 12. 13.
[Kubernetes] Volume: Pod의 Container 데이터는 어떻게 저장될까? (Volume, PersistentVolume, PersistentVolumeClaim) 1. Volume Kubernetes(쿠버네티스) 환경에서 Container(컨테이너)는 Pod(파드)에 감싸져서 동작합니다. 이때 Container에서 만들어진 데이터는 Docker(도커) 파일 시스템으로서 컨테이너 이미지에서만 제공됩니다. 즉, 컨테이너가 삭제되고 재시작하면 기존에 사용하던 파일 시스템은 새로 만들어진 컨테이너에서는 접근할 수 없습니다. 만약 컨테이너가 지워지더라도 파일 시스템을 유지하고 싶다면 어떻게 하면 좋을까요? 위 상황에 대비하여 Kubernetes에는 Volume(볼륨) 이라는 API Object가 존재합니다. Volume은 Pod와 마찬가지로 라이프 사이클을 갖는 디스크 스토리지로, 하나의 Pod 내부에 컨테이너가 여러 개라 있더라도 Pod(.yaml)에서 정의한 Volum.. 2022. 12. 11.
반응형