728x90
728x90
CSI(Container Storage Interface)란, Kubernetes와 같은 CO(컨테이너 오케스트레이션 시스템)의 컨테이너화된 워크로드에, 임의의 블록 및 파일 스토리지 시스템을 노출하기 위한 표준 인터페이스이다. Amazon EBS CSI Driver를 사용하면 표준 Kubernetes 인터페이스를 사용하여, AWS에서 EKS 및 자체 관리형 Kubernetes 클러스터 모두에서 실행되는 애플리케이션에 대해 블록 스토리지를 간단하게 구성하고 사용할 수 있다. Amazon EBS CSI Driver에서는Amazon EKS 클러스터가 영구 볼륨을 위해 Amazon EBS 볼륨의 수명 주기(LifeCycle)를 관리할 수 있게 해준다. 클러스터를 처음 생성할 때는 Amazon EBS CSI D..
EFK stack은 Elasticsearch, Fluent bit(Fluentd), Kibana 3개의 플랫폼 조합을 뜻하며, 클러스터 환경에서 로그의 수집, 검색, 시각화를 가능하게 한다. 그림을 보면 알 수 있듯이, 각 클러스터에 fluent bit가 daemonset으로 log를 수집한다. elasticsearch는 fluent bit가 수집한 로그를 저장하며, 요청에 따라 검색을 한다. 마지막으로 유저가 용이하게 사용할 수 있도록 kibana로 시각화 한다. FluentBit Log는 /var/log(시스템 로그)또는 /var/log/container(파드 로그) 또는 /var/log/pods(파드 로그)에 저장된다. (이때 /var/log/container에서 /var/log/pods로 심볼릭 ..
HELM 공식 문서: https://helm.sh/docs/ 쿠버네티스 패키지 매니저 용어 Helm Charts: 차트, 패키지 Repository: 차트 저장소 Release: 쿠버네티스 오브젝트 리소스 (패키지 → 클러스터에 생성한 인스턴스) Helm 저장소는 다양하게 존재한다. gRPC 로 클라이언트와 서버가 통신한다. Tiller 에 의해 다운받은 패키지를 API server 를 통해 설치를 한다. v3 에서 Tiller 를 없앴다. 보안상 문제가 생길 수도 있기 때문, 그래서 v3 에서는 클라이언트가 바론 API server 에 직접 접근하는 방식을 사용한다. helm 설치(debian/ubuntu 계열) curl https://baltocdn.com/helm/signing.asc | gpg -..
인증 공식 문서: https://kubernetes.io/docs/reference/access-authn-authz/authentication/ 쿠버네티스의 사용자 Service Account(SA): 쿠버네티스가 관리하는 SA 사용자 사용자가 사용하지 않는다. Pod 가 사용하는 계정이다. Normal User: 일반 사용자(쿠버네티스가 관리하지 않는다.) 사용자가 사용하는 계정이다. Pod 는 사용하지 않는다. 인증 방법: x509 인증서 static token Bearer Token http 헤더에 인증 정보가 있는 토큰을 담아서 보낸다. Service Account Token JSON Web Token: JWT OpenID Connect(OIDC) 외부 인증 표준화 인터페이스 okta 인증 서버..
Pod Shedulling 공식 문서: https://kubernetes.io/ko/docs/concepts/scheduling-eviction/assign-pod-node/, https://kubernetes.io/ko/docs/concepts/scheduling-eviction/kube-scheduler/ 쿠버네티스에서 스케줄링 은 Kubelet이 파드를 실행할 수 있도록 파드가 노드에 적합한지 확인하는 것을 말한다. 스케줄러는 노드가 할당되지 않은 새로 생성된 파드를 감시한다. 스케줄러가 발견한 모든 파드에 대해 스케줄러는 해당 파드가 실행될 최상의 노드를 찾는 책임을 진다. 스케줄러는 아래 설명된 스케줄링 원칙을 고려하여 이 배치 결정을 하게 된다. 파드가 특정 노드에 배치되는 이유를 이해하려고 ..
Auto Sacling Resource Request & Limit 공식 문서: https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/ 요청: request 제한: limit 요청 ≤ 제한 QoS(서비스 품질) Class: BestEffort: 품질이 가장 안좋음, 리소스를 아예 할당받지 못할 수도 있다. 리소스가 없는 상태에서 파드가 생성되야 하는 경우 BestEffort Pod 가 먼저 삭제된다. Burstable: 중간 Guranteed: 품질이 가장 좋음, 가장 베스트 요청/제한이 설정되어 있지 않으면: QoS 요청 < 제한: Burstable 요청 == 제한: Guranteed pod.spec.contai..