DevOps/Kubernetes
[EKS] alb-ingress-controller path 기반 라우팅 404 에러
경로에 따라서 라우팅을 할 수 있도록 ALB Ingress를 작성하고 싶었습니다. 하지만 www.example.com/nginx 를 할 때마다 계속 404 에러가 났습니다. (jenkins 포함) 왜 에러가 났는지 포스팅하겠습니다. 해당 Ingress 파일 내용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress namespace: kube-system annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing ..
[ECS] Fargate 사용해보기
사전 설치 aws cli docker Fargate 실행 순서 ECR 레포지터리 생성하고 애플리케이션 이미지 Push 합니다 ECS에서 작업 정의를 합니다 클러스터를 구성합니다 1. ECR 레포지터리 생성하고 이미지 Push 먼저 이미지를 올릴 레포지터리를 생성합니다. 레포지터리 이름 형식은 / 이며, 소문자만 가능합니다. 사용자가 Docker 컨테이너 이미지를 손쉽게 저장, 관리 및 배포할 수 있게 해주는 완전관리형 Docker 컨테이너 레지스트리입니다. 쉽게 얘기하면 Fargate를 포함한 아마존의 컨테이너 서비스에서 사용하기 위한 도커 이미지 저장소입니다. ※ 레포지터리를 퍼블릭으로 생성하니까 접속하는 과정에서 자꾸 아래와 같은 에러가 발생했습니다. 그래서 프라이빗으로 다시 생성했습니다 ;; 이유는..
[EKS] alb-ingress-controller 사용해보기
주의 사항 2022.08.10 수정 해당 블로그에서 설치하는 AWS ALB Ingress Controller는 v1.1 버전으로 deprecated 상태입니다. 최신 버전인 AWS Load Balancer Controller v2.4를 설치하는 것이 권장됩니다. https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/ 테스트 순서 EKS 클러스터 생성합니다 worker node 역할에 추가로 정책을 붙입니다 alb-ingress-controller 배포합니다 ingress, deployment, service 배포합니다 host에 따라 웹페이지가 바뀌는지 확인합니다 1. EKS 클러스터 생성 1 2 3 4 5 6 eksctl create ..
[EKS] nginx-ingress-controller, NLB 사용해보기
테스트 목표 Nginx-ingress-controller 사용하여 AWS NLB 생성합니다 ingress 규칙 사용하여 호스트 foo.bar.com에서 /foo는 nginx-app이 배포된 pod로 요청하고, /bar는 apache-app이 배포된 pod로 요청합니다 service 생성합니다 hostPath 사용하여 node와 pod 간 volume 생성합니다 결과 확인 1. eksctl create cluster 1 2 3 4 eksctl create cluster --name --version 1.18 --region ap-northeast-2 \ --nodegroup-name --nodes 2 \ --ssh-access --ssh-public-key --node-type t3.medium --man..
쿠버네티스(2) - 컨트롤러 ReplicaSet, Deployments
실습환경: 마스터 1개 노드 2개 쿠버네티스 환경을 VM으로 구현함 ReplicaSet 프로덕션에서 Naked Pod를 사용하지 않는 이유는 팟이 고장 났을 때 스스로 살려내지 못하기 때문이다. Replica Set은 팟 상위의 개념으로 몇개의 팟이 항상 동작함을 보장 줌으로써 고가용성을 제공한다. 팟이 크래시가 되면 Replica Set은 새로운 팟을 만들고 원하는 상태로 돌려 놓는다. 2개의 레플리카가 클러스터에서 항상 동작하도록 설정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # replicaset.yml apiVersion: apps/v1 kind: ReplicaSet # 배포할 오브젝트 종류 metadata: # 배포할 오브젝트의 정보 ..
쿠버네티스(1) - Pod 배포하는 2가지 방법
쿠버네티스란? 도커 환경에서 우리가 다룰수 있는 가장 작은 단위는 컨테이너이다. 쿠버네티스에서는 Pod으로 작업을 한다. 팟은 하나 이상의 컨테이너로 구성된다. 쿠버네티스에서 팟을 배포하지 하지않고서는 어떤 컨테이너도 배포할 수 없다. 컨테이너 운영환경에서, 컨테이너들을 적절하게 매니징하는 여러가지 솔루션이 있다 예를 들어, 서비스 요청이 많아지는 경우 이에 대한 부하를 줄이기 위해 노드 수를 동적으로 늘린다 스케쥴링: 컨테이너별 자원 최적화, 적절한 위치에 배포 정상/비정상 상태 체크 및 재기동 컨테이너 리소스 모니터링 컨테이너 동적으로 삭제 관리 command line 사용 'kubectl run'에 옵션을 지정하면 파드를 디플로이먼트 컨트롤러의 제어하에 실행하는 것이 가능하다. 하지만, 파드를 단독..