목록Kubernetes (20)
Study_note
보안은 운영환경에서 제일 중요한 요소 중 하나이다 하지만 쿠버네티스에서는 다양한 리소스와 노드 등에 대한 보안을 신경써야할 부분들이 많아 그 요소에 맞게 구축하는것은 생각보다 어렵다 이러한 보안적인 불편함을 해결하려 나온 툴들이 kubescape, polaris 이다. 직접 설치해보고 둘에 차이를 한번 느껴보려한다. kubescape 우선 kubescape 공식 git hub를 들어가면 해당 툴에 대해 이해할 수 있다. https://github.com/kubescape/kubescape GitHub - kubescape/kubescape: Kubescape is an open-source Kubernetes security platform for your IDE, CI/CD pipelines, and ..
업무를하다보면 어느 정도 자리가 잡힌 업체들은 가용성 - 보안성 이후에 비용을 최적화하려는 시도를 많이 봐왔다. 요즘은 FinOps라는 말이 생길정도로 비용 최적화는 비즈니스 가치를 극대화하는데 중요한 부분이다 --- FinOps는 엔지니어링, 재무, 기술, 비즈니스 팀이 데이터 중심 지출 결정에 협력할 수 있도록 지원함으로써 조직이 비즈니스 가치를 극대화할 수 있도록 지원하는 진화하는 클라우드 재무 관리 규범 이자 문화 이다. --- Kubecost Kubernetes에 대한 실시간 비용 가시성과 절감 인사이트를 제공 하는 오픈 소스 솔루션이다. Kubernetes와 같은 컨테이너 오케스트레이션의 채택이 많이 증가했지만 필요에 따라 확장 및 축소할 수 있는 컨테이너의 일시적인 특성으로 인해 복잡성이 더..
전 포스팅에서 이어지는 내용이다. 프로메테우스 스택을 통해 프로메테우스, 그라파나, 알림 매니저를 생성한 상태로 이번에는 로키를 생성해 테스트해본다. PLG 스택 (Promtail + Loki + Grafana) : 여러 파드의 로그들을 중앙 서버에 저장하고 이를 조회 Promtail 파드의 log data를 수집하여, loki에 보내어 log를 쌓게 한다. 데몬셋으로 실행되며, Collector가 출력하는 각 로그 데이터를 중앙 Loki 서버에 전달 Promtail 외에도 도커, FluentD 등 다른 로그집 에이전트 사용 할 수 있다 Loki Loki는 로그 데이터를 효율적으로 보관하도록 최적화된 데이터 저장소이며 로그 데이터의 효율적인 인덱싱한다 시계열 로그 데이터를 저장하는 DB Loki에 저장한..
전 포스팅에서 이어지는 내용이다. 프로메테우스 스택을 통해 프로메테우스, 그라파나, 알림 매니저를 생성한 상태로 이번에는 알럿 매니저를 테스트해본다. 얼럿매니저 프로메테우스의 임곗값 도달 시 경고 메시지를 얼럿매니저에 푸시 이벤트로 전달하고, 얼럿매지저는 이를 가공후 이메일/슬랙 등에 전달 Alerts 경고: 시스템 문제 시 프로메테우스가 전달한 경고 메시지 목록을 확인 Silences 일시 중지 : 계획 된 장애 작업 시 일정 기간 동안 경고 메시지를 받지 않을 때, 메시지별로 경고 메시지를 일시 중단 설정 Statue 상태 : 얼럿매니저 상세 설정 확인 프로메테우스에서도 alert이 있는데 아래와 같이 3개로 구분이 되면 Firing을 얼럿매니저에 전달한다. Inactive 비활성화 : prometh..
k8s에서는 기본적으로 kubelet에 있는 cAdvisor를 사용하여 메트릭을 수집한 후 Metrics-server를 통해 메트릭을 전달한다. Metrics-server 확인 : kubelet으로부터 수집한 리소스 메트릭을 수집 및 집계하는 클러스터 애드온 구성 요소 cAdvisor : kubelet에 포함된 컨테이너 메트릭을 수집, 집계, 노출하는 데몬 기본적으로 제공하는 Metrics-server를 제외하면 쿠버는 대체로 시계열 데이터를 관리하며 pull 방식의 Prometheus를 사용하여 메트릭을 전달한다 Prometheus란? Kubernetes에서 널리 사용되는 오픈 소스 모니터링 시스템 다양한 소스에서 메트릭을 수집하고 저장, 데이터를 분석하고 시각화하기 위한 강력한 쿼리 언어 제공 다차원..
그 전 포스팅에서는 멀티 클러스터 및 kubectx, context를 다뤘다. 여기서 kubectx 및 context 얘기를 많이 할거여서 참고하면 이해하기 좋다 추가로 contex, serviceaccount, role를 사용해서 특정 contex에서 지정한 namespace만 동작하고 다른 namespace에서는 요청을 거부시키는 방법을 해본다. 예로 아래 같이 쿠버네티스 내부 개발팀을 위한 계정을 만들고 권한을 제한 할 때가 자주 사용한다. Client의 쿠버네티스 요청은 kube-api를 통해 처리된다. 그 후 kube-api는 사용자 요청을 처리하기 전 Context를 확인하여 올바른 사용자가 맞는지 사용자의 신원을 확인하고(인증) 확인된 사용자에게 리소스에 액세스할 수 있는 권한을 부여됐는지(..