본문 바로가기

⌛ AWS 인프라 구성하기 (MiniProject)/✅ 장애내용 및 해결방안

(7)
Evicted pod 문제 해결하기 # 문제원인 - EFK 구성중 elasticsearch pod가 Evicted가 발생하여 elasticsearch pod가 내려가는 문제 발생 # 해결방법 (테스트) - 시도1. Nodegroup를 신규로 생성하여 t3.small인 인스턴스 타입을 한단계 올려보려고 함, 동시에 디스크 크기도 100기가 정도로 구성할 예정 - 시도2. 구글링... # 작업 시작 1. 노드그룹 추가를 통해 새로운 노드그룹을 생성 → t3.medium 2개정도로 구성된 새로운 노드그룹과 디스크 100gb 정도로 노드그룹을 생성한다. 2. 일단 기존의 nodegroup 1은 t3.small 3개의 인스턴스와 20gb로 구성이 되어 있음, 새로운 노드그룹과 리소스를 공유하므로~ 일단 하드웨어는 늘어난것임.(사실 t3.small ..
error: You must be logged in to the server (Unauthorized) 오류 발생시 해결 방안 # EKS 자동 빌드를 위해 Codebuild를 통해 배포하다가 error: You must be logged in to the server (Unauthorized) 해당 오류가 계속 발생 하여 해결 방안에 대해 정리한다. 1. 첫번째로, IAM 권한을 확인해야 한다. 아래와 같은 리스트 형태로 IAM 권한을 지정한다. - 초록색 테투리안에 있는 권한이 필수 권한이라고 볼 수 있다. 2. 권한 설정을 완료해도 만약 오류가 지속적으로 발생한다면, aws-auth.yaml 파일을 확인해 봐야한다. kubectl get configmaps aws-auth -n kube-system -o yaml > aws-auth.yaml 위의 명령어를 확인하여 정상적으로 적용이 되어 있는지 확인해야 한다. apiVersi..
EKS 장애발생 해결방안 (부하로 인한 클러스터 다운) # 장애발생 개념도 장애 사례 설명 1.개발자가 소스 코드를 수정하고 CodeCommit에 최종적으로 반영을 한다. 2. 수정된 소스코드가 CodeCommit에 반영되어, 최신 코드로 업데이트 된다. 3. 최종 반영된 소스코드는 Codebuild를 통해 ECR에 이미지 형태로 저장된다. 4. 이번 사례는 개발자가 최신 코드를 반영했을때 잘못된 코딩으로인해 EKS 클러스터 내에서 DB로의 커넥션이 무한으로 반복되는 무한루프 상태가 되었다. 결국에는 EKS 클러스터의 NodeGroup내에 존재하는 EC2 인스턴스 자체가 다운이 되는 문제가 발생 되었다. 장애 해결 방안 1. 원인파악이 최우선: 일단 서비스가 안되거나 리소스의 상태가 이상하다고 판단되면 가장 처음으로 해야하는일은 EKS 내의 NodeGroup..
finalizers 를 활용한 서비스 강제 제거 pod가 ContainerCreating 상태로 계속 살아나거나, 삭제가 안될때 아래 url로 이동하여 해결한다. 2022.09.07 - [⭐ Kubernetes & EKS/디플로이먼트 (Deployment)] - Deployment 삭제 방법 (ReplicaSet 삭제 안될때, 좀비 pod, pod가 삭제 안될때, pod가 계속 살아날때) Deployment 삭제 방법 (ReplicaSet 삭제 안될때, 좀비 pod, pod가 삭제 안될때, pod가 계속 살아날때) # 오류내용 - ReplicaSet이 삭제가 되지 않아 pod를 강제로 지워도 좀비처럼 다시 살아나는 문제 발생 # 해결방법 - Deployment 자체를 삭제 해야한다. - Deployment 를 삭제해야한다. 그러면 pod 및 Repli..
{"level":"error","ts":11111111111111,"logger":"setup","msg":"unable to create controller","controller":"Ingress","error":"the server could not find the requested resource"} # EKS 클러스터에서 아래와 같은 오류가 발생 함 Error from server (NotFound): pods "aws-load-balancer-controller-1111111111111-11111" not found $ kubectl logs --tail 1000 -f aws-load-balancer-controller-11111111111111-11111 -n kube-system {"level":"info","ts":11111111111.11111111,"msg":"version","GitVersion":"v2.2.1","GitCommit":"27803e3f8e3b637873f9bb59c56b78de01f65b79","BuildDate":"2021-06-25T17:18:28+0000"} {"l..
cert-manager 오류 발생 시 해결방법 # 오류 내용 I0614 07:55:48.788781 1 start.go:89] "starting" version="v1.0.2" revision="219b7934ac499c7818526597cf635a922bddd22e" I0614 07:55:50.591182 1 request.go:645] Throttling request took 1.046604902s, request: GET:https://10.100.0.1:443/apis/admissionregistration.k8s.io/v1?timeout=32s I0614 07:55:51.591233 1 request.go:645] Throttling request took 2.045774149s, request: GET:https://10.100.0.1:..
eks에서 502 Bad Gateway 발생 시 조치사항 # 일단 502 Bad Gateway는 뭐냐면 아래와 같다. 구글을 검색하면 아래와 같이 나온다. 502(불량 게이트웨이) 오류는 서버가 다른 서버로부터 올바른 요청을 받지 못했음을 의미하는 HTTP 상태 코드입니다. 그래서 가장먼저 eks에서 확인해봐야할 것은 port 이다. 포트를 확인하는 가장 좋은 방법은 모든 namespaces의 자원을 조회 하는게 좋다. 명령어는 아래와 같다. kubectl get ingress --all-namespaces 해당 명령어로 조회하면 ingress 전체를 조회하고 어떤 port번호로 통신하고 있는지 보여준다. 아래와 같이 80포트로 2개의 서비스가 올라가 있다면, 처음 80포트로 실행된 서비스가 정상적으로 실행이 될 것이고 나중에 80으로 실행된 서비스는 502 ..