Cloud 7

Google Cloud Function에 대해서 알아보자

Google Cloud Platform에서는 여러가지 형태의 Serverless 서비스들을 지원하고 있다. 이번 포스팅에서는 그 중에서도 Google Cloud Function에 대해서 알아본다. Google Cloud Function은 Google Cloud Platform 이 제공하는 서비스 중에서 가장 AWS의 Lambda와 유사한 서비스다.실제로 검색해보면 Azure의 Function과 함께 종종 비교되는 글을 볼 수 있다. Spec적인 부분에 대해서는 어느정도 차이가 있으나 사용 방식에 대해서는 전부 비슷하다. 사용하기 프로젝트 Market Place의 서버리스 항목 중에서 Cloud Function을 선택한다. 사전에 만들어놓은 Function이 없다면 위와 같이 간단한 설명이 출력된다. 함수..

Cloud 2021.09.30

유용한 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

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