데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      [AWS EKS-연재4] Kubernetes 의 Resources 설정을 위한 VPA 및 Goldilocks

      Thomas 22.03.23
      2,078 5 0

      AWS EKS 에 상용을 위한 Kubernetes 서비스 설정 시리즈

      1. eksctl을 사용한 AWS EKS 생성

      2. AWS EKS 에 Istio 설치 및 설정

      3. AWS EKS 에서 Istio 와 Application Load Balancer 연결

      4. Kubernetes 의 Resources 설정을 위한 VPA 및 Goldilocks 

      5. AWS EKS 의 Cluster Autoscaler 설정

      6. Loki를 이용한 손쉬운 Kubernetes Logging

      7. Kubernetes/Istio 를 위한 Datadog 설정

      8. Argo CD 설치 및 설정


       

      Kubernetes (AWS EKS) 의 Autoscaler

      Kubernetes 의 Autoscaler 를 사용하기 위해서는 우선

      1. Deployment 의 Resource request, limit을 모두 설정해야 한다.
      2. Horizontal Pod Autoscaler (HPA) 를 설정한다.
      3. AWS 의 Cluster Autoscaler (CA) 를 설정한다.

      여기서 Resource의 request, limit 설정을 위해 Vertical Pod Autoscaler 및 Goldilocks를 활용하고 이를 통해 request, limit 을 설정하는데 참고 할 수 있다.


       

      VPA 및 Goldilocks의 역할

      사실 VPA는 Kubernetes 의 Autoscaler 중 하나로 Horizontal 하게 Pod/ Node를 늘리는 HPA와 달리 Vertical 하게 스펙을 높이는 방법이다. 그런데 VPA controller stack은 recommendation engine 을 포함하고 있고, 가이드라인을 제공하기 위해 현재 resource 사용량을 계속 수집한다. 결국 보통 실제 VPA를 사용한 Autoscale을 사용 하지는 않고, recommendation engine 만 사용하도록 설정하여 request, limit을 정하고 HPA, CA를 통해 Autoscale을 한다.

      여기서 Goldilocks 의 역할은 불편하게 kubectl 을 통해 필요한 서비스의 VPA recommendation 을 확인하는 대신 쉽게 Web UI를 통해 이를 확인 할 수 있게 도와준다.


       

      Kube Metrics Server 설치

      우선 지표 수집을 위해 Kubernetes 의 metrics-server를 설치해야 한다.

      kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
      

      제대로 적용되었는지 확인한다.

      kubectl get deployment metrics-server -n kube-system
      

       

      VPA 및 Goldilocks 설치

      우리는 full VPA install 이 필요하지 않고 recommender 만 필요하다. 아래와 같이 설치하면 VPA recommender와 Goldilocks를 설치한다.

      $ helm repo add fairwinds-stable https://charts.fairwinds.com/stable
      $ helm install --set updater.enabled=false vpa fairwinds-stable/vpa --namespace vpa --create-namespace
      $ helm install goldilocks fairwinds-stable/goldilocks --namespace goldilocks --create-namespace
      

      Goldilocks 의 chart를 통해 VPA를 설치하면 쉽게 원하는 recommendation engine 만을 설치할 수 있다. https://github.com/FairwindsOps/charts/tree/master/stable/vpa#components 참고

       

      VPA recommender를 사용할 namespace를 지정한다.

      $ kubectl label ns default goldilocks.fairwinds.com/enabled=true
      

       

      Goldilocks 확인

      kubernetes port forwarding 을 통해 Goldilocks 에 접속한다.

      $ kubectl -n goldilocks port-forward svc/goldilocks-dashboard 8080:80
      

      kubernetes port forwarding을 remote 에서 하는 경우 localhost를 통해 Goldilocks를 접근하기 위해 local 에서 Local Port Forwarding을 해야한다.

      ssh -L 8080:127.0.0.1:8080 ec2-~~.compute.amazonaws.com
      

      http://localhost:8080 을 열어본다.

      서비스가 배포되지 않은 상황에서는 아무것도 없을것이다. 서비스를 올리고 사용하면서 확인하면 각 서비스의 설정과 recommendation 을 확인할 수 있다. 하지만... 실제 사용해본 결과 참고는 할 수 있지만 이 수치가 절대적인 값이 될 수는 없다. Language와 서비스의 성격에 따라 실제 운영하면서 맞추어 나가는 방법이 좋은거 같다.

       

       

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      Thomas 님의 최신 블로그

      더보기