본문 바로가기

반응형

분류 전체보기

(152)
[Github Action] Self hosted runner에서 Gradle, Docker image cache #2 - EFS 활용 #1 편에서는 아주 간단하게 EBS, PVC를 활용하여 캐싱을 수행하였다. https://nyyang.tistory.com/163 [Github Action] Self hosted runner에서 Gradle, Docker image cache #1 - EBS, PVC로 캐시하기 Github hosted runner에서는 다양한 actions에서 caching 전략을 제공하기 때문에 단순 actions를 사용하는 것만으로 손쉽게 캐싱을 수행할 수 있다. 캐싱은 docker image caching도 아주 쉽게 수행할 수 있다. 이 nyyang.tistory.com 1. 개요 #1 편에서는 아주 간단하게 EBS, PVC를 활용하여 캐싱을 수행하였다. 하지만 프로젝트가 많아질 경우 PVC가 Available..
[Github Action] Self hosted runner에서 Gradle, Docker image cache #1 - EBS, PVC로 캐시하기 Github hosted runner에서는 다양한 actions에서 caching 전략을 제공하기 때문에 단순 actions를 사용하는 것만으로 손쉽게 캐싱을 수행할 수 있다. 캐싱은 docker image caching도 아주 쉽게 수행할 수 있다. 이는 buildx에서 --cache-from과 --cache-to의 type 중 gha(github action)란 type을 제공하는데, 아주쉽게 구현 가능하다. gradle cache 또한 제공하는 actions를 쓰면 된다. 하지만 github hosted runner를 쓰면 다양한 단점이 존재한다. 1. 개발한 코드가 클라우드 상에 배포된다. 2. runner가 argocd 등의 명령어를 수행하기 위해 argocd가 public 망에 존재해야 한다...
[EKS] CoreDNS 운영 시 소소한 팁 (Rcode, ndots) 1. 개요 필자의 회사는 모니터링 서비스로 Datadog을 이용하고 있는데 CoreDNS 쪽에서 특이사항을 발견했다. 바로 rcode 중 nxdomain 수치가 높다는 점이였다. nxdomain는 non-existing domain name의 약자로 domain name이 존재하지 않다는 뜻이다. 즉, CoreDNS 에서 질의를 했을 때 domain name이 존재하지 않는 메트릭이 다소 발생한다는 뜻이다. 2. 원인 원인은 다음과 같다. bash-4.2# cat /etc/resolv.conf search testdemoapp-dev.svc.cluster.local svc.cluster.local cluster.local ap-northeast-2.compute.internal nameserver 172..
[Istio] EKS에서 Okta와 AWS ALB, Istio를 활용하여 인증, 인가 처리하기 1. 개요 Application 단에서 Okta 인증 로직을 구현하는 것보다 AWS ALB 혹은 Istio를 통해 구현하게 된다면 로직을 상당히 줄일 수 있을 것이라 생각하였다. Okta + AWS ALB + Istio를 구현하기 위해서는 다음의 지식들이 필요하다. [Okta] - JWT / OIDC / OAuth2.0 / SAML - ClientID, ClientSecret - Endpoints (Userinfo, Ahthorize, Token, ..) - Org Authorization Server , Custom Authorization Server [AWS] - AWS Listener Authentication (OIDC) - x-amzn-oidc-accesstoken, x-amzn-oidc-id..
[EKS] 아주 가벼운 Loki + Grafana + Promtail 로그 시스템 구성 본 글은 Loki Stack을 활용하여 설치하는 내용이다. 만약 Loki를 로그 시스템으로 도입하기 위해 필요한 내용들을 참고하고 싶다면 아래 글을 읽어보면 좋을 것 같다. (아래 글은 설치 및 구성 방법에 대한 내용을 소개하지 않는다.) https://nyyang.tistory.com/167 [EKS] 로그 시스템 Loki 도입을 위한 몇가지 운영 팁 Loki로 로그 시스템을 구성해서 쓴지 어느덧 3개월이 넘어간다. Loki를 맨 처음에는 Loki Stack(Grafana, Promtail, Loki)로 구성해서 모놀리식 형태로 쓸 수 있지만 쓰다보면 다양한 문제점들이 발견된다. 1. nyyang.tistory.com 1. 개요 ELK 스택이 부담스럽다면 Loki Stack(Promtail + Loki..
[Istio] EKS 환경에서 Istio로 여러개의 ALB, NLB 모두 사용하기 1. 개요 현업에서 외부 트래픽 인입을 받아내기 위해 Istio를 사용중인데, default 설정을 사용하면 CLB가 설치된다. EKS로 쿠버네티스를 운영중인 환경에서 Istio로 ALB, NLB를 각 환경에 맞게 사용하고 싶을 경우에 어떻게 해야 할까? ## 전제 조건 ## - AWS Load Balancer Controller 설치 AWS Load Balancer Controller는 Kubernetes에서 YAML 파일을 배포하는 것 만으로 AWS Load Balancer Controller 파드가 이를 감지하여 AWS API를 사용하여 요청한 대로 Load Balancer를 설치 및 구성해주는 오픈소스이다. 해당 AWS Load Balancer Controller가 설치되어 있지 않다면 내장 설치..
[Datadog] EKS에서 운영중인 SpringBoot HikarpCP 모니터링 (Auto Discovery) 1. 개요 보통 HikariCP를 모니터링 하기 위해서는 JConsole과 같은 Java 애플리케이션 모니터링 툴을 통해 진행해야 하지만, 다소 불편하다고 느낄 수 있다. MBean(Managed Bean)이란, 애플리케이션 혹은 리소스의 상태를 모니터링할 수 있는 Java 객체이다. HikariCP에서 제공하는 MBean을 통해 다음의 정보를 확인할 수 있다. Idle connections의 수 Active connections(현재 사용하고 있는)의 수 모든 connection의 수 connection을 기다리고 있는 thread의 수 그렇다면 SpringBoot 애플리케이션에서 Datadog에서 JMX MBean을 이용하여 HikariCP 모니터링을 어떻게 할 수 있을까? 전체적으로 다음의 과정이 ..
[EKS 애드온 #2] Cluster Autoscaler Helm으로 설치하기 Cluster Autoscaler는 Cluster의 NodeGroup을 자동으로 스케일링 해주는 오픈소스 Addons이다. 본 문서는 설치까지만 안내할 뿐 자세한 사용법에 대해서는 안내하지 않는다. Github : https://github.com/kubernetes/autoscaler Cluster Autoscaler IAM Role 설정 data "aws_iam_policy_document" "cluster-autoscaler" { statement { sid = "" effect = "Allow" resources = ["*"] actions = [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances",..

반응형