쿠버네티스 5

유용한 PromQL 목록들

Prometheus는 PromQL(Prometheus Query Language)라는 쿼리문을 제공한다. Prometheus나 Grafana에서 요청된 쿼리 결과는 사용자가 가공할 수 있는 형태로 전달되고, 이 요청은 http api형태로 전달된다. 종종 Grafana에서 볼 수 있는 수많은 대시보드들은 전부 이 PromQL과 Grafana에서 제공하는 추가 문법들로 이루어진다. 이번 포스팅은 sysdig에서 소개한 Top 10 PromQL example for monitoring Kubernetes라는 포스팅에 나와있는 쿼리들을 소개하고 분석하는 시간을 가지려 한다. 1. namespace별 Pod 수 sum by (namespace) (kube_pod_info) kube_pod_info 쿼리는 쿠버네..

Cloud/Monitoring 2021.09.13

tekton에 대해서 알아보자

tekton은 Cloud 기반 CI/CD 툴로, Kubernetes 위에 설치된다. Jenkins 나 CircleCI 같은 툴과는 달리 Kubernetes 기반으로 나온 툴이기 때문에 대부분의 기능들이 Kubernetes 기반으로 동작한다. 당연히 각 Workflow들은 Pod 기반으로 동작한다. 개발 중인 Application이 Kubernetes에 올라가는 것을 전제로 한다면 여러가지로 실 환경에 가깝게 구성해볼 수 있다는 장점이 있다. Prerequisites (https://tekton.dev/docs/getting-started/) - A Kubernetes cluster version 1.15 or higher for Tekton Pipelines v0.11.0 or higher, or a K..

Cloud/CI CD 2021.09.05

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

Calico vs Cillium 성능 비교 링크

itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-updated-april-2019-4a9886efe9c4 Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: April 2019) This article is an update of my previous benchmark, now running on Kubernetes 1.14 with CNI version up-to-date in April 2019. itnext.io 요약 - Install 측면에서는 Cillium이 낫다 Perform 측면에서는 Bar..

카테고리 없음 2020.11.28

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