반응형

분류 전체보기 103

[ 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 ] kubeconfig 설정

개요EKS에 접근할 때 kubeconfig 내용을 가지고 접근합니다.EKS 환경이 여러 개 있을경우 kubeconfig에서 환경변수 값을 변경해줘야합니다.EKS 접근할 때 권한은 2가지 방식으로 나뉩니다.1. AWS Credentials Key를 발급받아서  KEY 권한으로 접근하기2. RBAC (Role Base Access Control), 역할 기반 엑세스 제어으로 KeyLess 방식으로 접근하기 (추천)    요즘은 Credential Key 노출될 경우 해킹에 문제가 생기기 때문에 KeyLess 방식으로 키 없이 접근할 수 있도록 셋팅 1. AWS Credentials 설정aws credentials 설정devops 계정의 Access Key, Secret Keyaws configure --p..

[ 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 옵션으로 특정 ..

[ EKS ] affinity 설정

개요 affinity 이란? affinity은 pod를 특정 노드에 배포할 수 있도록 해줍니다. nodeSelector와 동일한 기능을 하지만 affinity가 디테일하게 다양한 옵션을 사용할 수 있다. nodeSelector와 affinity 차이점 nodeSelector - 지정한 labels("key : value")이 설정된 노드에 pod를 배포해준다. affinity - 지정한 labels("key : value")외 다양한 조건으로 노드에 pod를 배포해준다. ex) 하나의 노드에 같은 서비스의 pod가 중복으로 배포되지 않도록 설정해준다. ex) was pod은 DB pod가 올라간 노드에 배포되도록 설정한다. [ affinity 종류 ] node affinity 지정된 label을 가지고 ..

카테고리 없음 2023.04.03

[ EKS ] NodeSelector 설정

개요 NodeSelector 이란? 특정 노드에 pod가 배포되도록 설정할 수 있습니다. ex) application 서비스 pod은 application 노드에 배포되도록 설정 infra 서비스 pod은 infra 노드에 배포되도록 설정 infra 서비스 pod가 resource를 많이 사용해도 infra 노드에만 영향이 가고 application 노드에는 문제가 없다. SSD 장착된 application 노드에는 application pod만 올라가도록 배포할 수 있다. [ NodeSelector 설정 ] pod에 nodeselector 설정해서 특정 노드에만 배포되도록 설정 할 수 있다. pod 설정 nodeSelector 옵션 key : nodegroupname value : infra-ng "n..

[ EKS ] taint, toleration 설정

개요 taint 이란? taint 설정이 된 node은 POD 배포가 불가능하다. taint 역할은 cordon 처럼 모든 pod가 배포되지 않게 설정하는 것이 아니라, toleration 옵션을 이용해서 지정한 pod만 배포되도록 설정하는 옵션이다. ex) backed, front pod만 배포될 수 있도록 설정한다. NodeSelector 설정하지 않은 pod들이 랜덤한 node에 배포되는 것을 막는 역할이다. node에 문제가 생기거나, 셧다운 중일 때 해당 node에 배포되지 않도록 EKS가 자동으로 Taint를 설정한다 toleration 이란? taint 설정이 된 node에 배포 할 수 있도록 도와주는 옵션이다. [ taint 설정 방법 ] 1. taint 설정 기존에 배포된 pod들은 정상..

[ EKS ] EBS -> EFS 볼륨 변경

개요 EBS 볼륨을 사용하게 되면 가용 영역 제한으로 EC2 FailOver가 불가능하다. EBS -> EFS 볼륨 변경할 대상 리스트 작성 [ EBS볼륨을 사용하는 서비스 ] [ EBS볼륨에서 EFS볼륨으로 변경시 요금 변화 (Singapore 리전 기준) ] EBS 요금 : 1GB 당 월 $0.096 EFS 요금 : 1GB 당 월 $0.36 EFS 볼륨 요금 특이사항 EFS 볼륨은 S3와 동일하게 사용한 만큼 비용을 지불하는 것이다. EFS 볼륨으로 변경시 : 사용량에 따라서 비용을 지불하는 방식으로 비용이 크게 증가하지 않음. [ EBS볼륨에서 EFS볼륨으로 변경 대상 선정 ]

반응형