본문 바로가기

반응형

⭐ Kubernetes & EKS/EKS

(23)
pod의 헬스체크 (Readiness Probe와 Liveness Probe) # pod와 연결된 서비스를 모니터링하기 - pod와 연결된 서비스를 모니터링하는 방법은 2가지가 있다. - Readiness Probe와 Liveness Probe 이다. 1. Readiness Probe : 애플리케이션의 정상여부 확인, 정상이라고 판단되면 서비스를 통해 트래픽을 수신 ex) 예를들어 애플리케이션이 동작할때 헬스체크 응답용 페이지를 생성해두고 HTTP로 그 페이지에 접속해 상태 코드가 200으로 돌아오면 서비스를 통해 접속하는 등의 방법을 사용할 수 있다. - 예제 파일을 통해 확인 (전체 리소스 파일 - Readiness Probe와 Liveness Probe의 내용을 중점적으로 보자.) apiVersion: apps/v1 kind: Deployment metadata: name: ..
컨테이너를 외부로 공개하기 위한 리소스 # 컨테이너를 외부로 공개하는 방법 - 파드를 서비스로 묶기 쿠버네티스에서는 서비스 리소스를 이용하여 파드 여러개를 묶어 하나의 DNS 이름으로 접속 할 수 있다. 또한 서비스를 이용하면 대상 리소스에서 정상적으로 동작하는 파드에만 요청을 할당할 수있다. 1. 서비스 리소스 타입 ClusterIP : 서비스에 대해 내부에서 유요한 IP 주소를 부여, 클러스터 외부에서 는 접속 불가 NodePort : 각 노드에서 해당 서비스를 접속하기 위해 포트를 열고 외부에서 접속 가능하도록 한다 LoadBalancer : Nodeport에서 열린 각각의 서비스 공개용 포트를 묶는 형태로 클러스터 외부에 로드밸런서를 구축한다. (EKS의 경우 기본으로 CLB가 생성되고 설정에 따라 NLB로 변경 가능하다. ALB는 사..
실수로 keypair 파일을 삭제 했을 경우 # EKS 실습을 하던중 실수로 키페어를 삭제했다. 더이상 EKS 및 오토스케일링 그룹에서 스케일 아웃과 스케일 인이 정상적으로 진행되지 않고, 오류를 내뱉고 있다. - 해결방법은 생각보다 매우 간단했다. 순간적으로 키페어가 없으니 초기 구성부터 다시 해야하나 싶은 생각 이었는데, 결론적으로는 해당 eksworkshop에 대한 키페어만 새로 생성해주면 되는 아주 간단한 작업 이었다. - EC2 대시보드에서 키페어를 클릭하자 - 우측상단 키페어 생성을 클릭하자 - 키페어의 이름과 간단한 설정을 한뒤 생성을 클릭하여 키페어를 생성한다. - 끝이다. 생성 후 오토스케일링 및 EKS 노드 생성도 원활히 진행되는 것을 확인 할 수 있다.
EKS 리소스 삭제(Delete) pod 전체 삭제 및 개별삭제 - 전체삭제 : kubectl delete pod --aa - 개별삭제 : kubectl delete pod [#podname] ec2-user:~/environment $ kubectl delete pod --all pod "deploy-jenkins-6996c6559c-fd6zh" deleted pod "deploy-jenkins-6996c6559c-g58xb" deleted pod "deploy-jenkins-6996c6559c-rzbll" deleted pod "hello-1633752000-snhmt" deleted pod "hello-1633752060-hwk68" deleted pod "hello-1633752120-2824n" deleted pod "hello..
EKS 점검사항 1) 쿠버네티스 pod 로그보기 명령어 : kubectl logs [#pod name], kubectl logs -f [#pod name] - kubectl get pod 명령어를 통해 pod NAME 을 확인할 수 있습니다. ec2-user:~/environment/yaml $ kubectl get pod NAME READY STATUS RESTARTS AGE deploy-jenkins-6996c6559c-2q9sl 1/1 Running 0 42m deploy-jenkins-6996c6559c-68d4w 1/1 Running 0 42m deploy-jenkins-6996c6559c-wrjnf 1/1 Running 0 42m nginx-ingress-1633598365-controller-9fd8986d..
EKS Deployment Manifest # YAML 형식의 리소스 매니페스트 kubectl run 명령어로 해당 서비스를 수행하는것도 문제가 되지 않는다. 허나, 관리 및 재사용 목적으로 서비스를 조금 더 유연하게 사용하고자 한다면 deployment를 활용하는것이 바람직하다. yaml 파일로 작성하고, 만약 버전의 변경이나 업데이트가 된다면 yaml내용만 수정하여 다시 배포하면 자동으로 변경된 내용이 적용되기 때문에 관리가 편리해진다. # 실행파일 생성 vim jenkins-deploy.yaml - 아래의 내용을 작성하고 저장하자. apiVersion: apps/v1 kind: Deployment metadata: name: deploy-jenkins labels: app: jenkins-test spec: replicas: 3 select..
EKS pod, nodes 의 자원 모니터링 (kubectl top) # (추가 오류사항) EKS 에서는 설치에 문제가 없었으나, Hyper-V에서 설치 시 문제가 발생 하였다. - 바로 아래의 에러 메세지 이다. no matches for kind "APIService" in version "apiregistration.k8s.io/v1beta1" - 삭제 명령어 실행 kubectl delete -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml - 실행 명령어 실행 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml..
EKS Liveness Probe, Readiness Probe, Startup Probe - 라이브니스 프로브 : 컨터이너 상태를 파악하고 문제가 있으면 다시 시작하는 기능 - 레디니스 프로브 : 포드가 준비된 상태인지 확인, 정상 서비스를 시작하는 기능, 포드가 정상적으로 준비되어 있지 않으면 로드 밸런싱을 하지 않음 - 스타트업 프로브 : 컨테이너가 시작될때 정상적으로 실행되는지 체크 후 라이브니스와 레드니스의 서비스가 진행된다. # 라이브니스 프로브 실습 내용을 yaml 파일로 생성하기 vim exec-liveness.yaml apiVersion: v1 kind: Pod metadata: labels: test: liveness name: liveness-exec spec: containers: - name: liveness image: k8s.gcr.io/busybox args: - ..

728x90
반응형