반응형

인프라 36

[ istio ] Install

개요 istio 설치 방법은 2가지가 있다. - istioctl CLI 명령어 설치 방법 (추천) - istio-operator.yaml 설치 방법 istio 설치 메뉴얼 : https://istio.io/latest/docs/setup/getting-started/#bookinfo 1. istioctl 설치 istioctl CLI 명령어를 설치합니다. curl -sL https://istio.io/downloadIstioctl | sh - cp ~/.istioctl/bin/istioctl ~/bin istioctl version MAC OS istioctl 명령어 설치 brew install istioctl istioctl version client version: 1.15.2 control plane..

[ istio ] istio 이란?

개요 istio는 MSA(마이크로서비스)간 데이터 공유를 제어하는 오픈 소스 서비스 메쉬 플랫폼이다. istio 기능 - MSA 서비스간 통신(트래픽 라우팅, 부하 분산 등) - 보안 (인증, 인가, 암호화 등) - 모니터링 - 로깅 istio은 다양한 기능을 제공하지만 기술 습득의 많은 시간이 필요합니다. istio 공식 홈페이지 : https://istio.io/latest/about/service-mesh/#what-is-istio [ istio 아키텍처 ] https://istio.io/latest/docs/ops/deployment/architecture/ [ istio 아키텍처 설명 ] 구분 설명 data plane 데이터 플레인은 사이드카로 배포된 istio-proxy(envoy)들로 구성된..

[ EKS ] karpenter

개요 karpenter 이란 ? karpenter은 WorkerNode(노드)의 수를 조절하는 기능이다 - Watching : 예약 불가능한 (Pending) pod를 감시한다. - Provisioning : Pending pod의 요구사항에 맞는 노드를 배포하고 배포된 노드에 pod를 스케쥴링 해준다. - Removing : 노드가 더 이상 필요하지 않을 때 노드 제거한다. - AWS 환경만 지원 ClusterAutoscaler(CA) 차이점 - ClusterAutoscaler은 ASG를 사용하기 때문에 nodegroup을 구성/관리 해야하고, 노드 증설/축소 시 많은 단계가 필요해서 속도가 느리다. - ClusterAutoscaler은 예약 불가능한 pod를 감시하고, AWS 리소스를 생성 요청하기 ..

[ EKS ] ClusterAutoscaler (CA)

개요ClusterAutoScaler 이란 ? ClusterAutoScaler은 WorkerNode의 수를 조절하는 기능이다.HPA가 POD의 Resource 사용량을 감지하다가 일정 값 이상을 사용하면 POD 개수를 늘려준다.HPA가 POD를 계속 늘리다가 WorkerNode의 Resource가 부족해서 POD가 배포되지 않고 Pending 상태로 빠진다.CA는 resource 부족으로 Pending 상태의 POD를 감지해서 WorkerNode를 증설해준다.특이사항 : 같은 역할하는 오픈소스 Karpenter 참조. [ 선행 작업 (Required) ]AWS Infra 구성EKS Cluster 설치IAM OIDC 생성ASG(WorkerNode)에 Tag Add 필수TAG Key : https://k8s...

[ EKS ] VPA

개요 VerticalPodAutoscaler VPA POD Request, Limit의 resource를 조절하는 역할 POD의 CPU, Memory 예약을 자동으로 조절하여 어플리케이션 크기를 적절히 조정할 수 있다. 클러스터 리소스 사용률 개선하고 다른 POD들이 CPU, Memory를 자원을 확보 할 수 있다. POD를 자동으로 재배포해서 CPU, Memory 값을 적용한다. 메뉴얼 링크 : https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/vertical-pod-autoscaler.html

[ EKS ] HPA

HPA(HorizontalPodAutoscaler) 이란? POD의 개수(REPLICAS)를 리소스의 CPU 사용률에 따라 POD를 자동으로 조절해주는 기능입니다. 메뉴얼 링크 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/horizontal-pod-autoscaler.html https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ [ 선행 작업 - Required ] EKS Cluster 설치 metrics-server 설치 https://dongwook35.tistory.com/54 HPA 테스트 1. Apache 배포 kubectl apply -f https://k8s...

[ EKS ] Secret, ConfigMap 설정

개요Secret과 Configmap 차이점Secret은 보안과 관련된 값을 저장하는 기능이다.패스워드, Oauth토큰, ssh key, 등Secret에 데이터를 저장할 때 Base64 인코딩해서 넣어야한다.ConfigMap은 기밀 데이터가 아닌 일반 데이터 및 환경변수등을 저장하는 기능이다. ConfigMap 설정 1. ConfigMap 생성config 파일과, credentials 파일 생성하는 ConfigMapvi configmap.yamlapiVersion: v1data: config: | [default] region=ap-southeast-1 output=text credentials: | [default] aws_access_key_id = AKIxxxxxxxx..

[ EKS ] ConfigMap, aws-auth 설정

개요 configmap 이란 ? secret은 key-value 쌍에 기밀 데이터를 저장하고, configmap은 환경변수, 일반 데이터를 저장하는데 사용하는 API 개체입니다. ex) nginx.conf 내용을 변경하려면 nginx 도커이미지를 다시 빌딩하는 것이 아니라, configmap으로 nginx.conf를 수정할 수 있다. aws-auth 이란? aws-auth은 EKS에 접근 권한을 설정하는 유저 환경변수를 저장하는 곳이다. [ EKS 권한 에러 ] EKS 권한이 없으면 EKS에서 아래와 같은 에러가 발생합니다. 에러 현재 사용자 또는 역할이 이 EKS cluster에 있는 Kubernetes 객체에 액세스할 수 없습니다. 이는 현재 사용자 또는 역할에 클러스터 리소스를 설명할 Kuberne..

[ EKS ] Limit, Request 설정

개요 Limit 설정하는 이유 Limit를 설정하지 않으면 pod가 리소스를 제한 없이 사용이 가능하다. POD가 WokerNode의 CPU 리소스를 모두 사용할 경우, CPU Throttle걸려서 다른 POD들도 느려진다. CPU Throttle이 발생하면, livenessProbe 상태 체크 응답이 느려지면 pod들이 restart 될 수 있다. Request 설정하는 이유 POD가 실행에 필요한 최소사양을 말한다. 최소사양을 지원하는 WokerNode를 찾아서 배포한다. 찾지못하면 pod은 pending 상태로 빠진다. 1. Node, pod 상태 보기 [ app-ng ] kubectl describe no ip-10-223-84-128.ap-southeast-1.compute.internal ku..

[ EKS ] drain, cordon

개요 cordon으로 node에 pod가 배포되지 않도록 설정할 수 있다. drain 으로 node에 배포된 모든 pod를 다른 node으로 옮기는 역할을 한다. (gracefully terminate) ex) cordon kubernetes를 사용하다가 보면 해당 Node에 POD들을 배포(스케줄링)되지 않도록 설정하거나, 특정 POD를 다른 Node으로 옮길 때 cordon 명령어가 필요하다. Node에 배포되지 않도록 설정하는 방법은 cordon, taint 2가지 방법이 있다. cordon은 일시적으로 해당 Node에 배포(스케줄링)되지 않도록 설정하는 방법이다. Taint은 모든 POD가 배포되지 않도록 설정하는 것이 아니라, Key=value 라벨 설정을해서 toleration 옵션으로 특정 ..

반응형