반응형

Infra/Kubernetes & EKS 8

쿠버네티스 Deployment yaml 파일 작성 및 명령어 예제 정리

Kubernetes(K8s)에서 애플리케이션 배포 및 관리를 자동화하는데 필수적인deployment의 yaml 파일을 작성하는 방법과 이용하는 명령어를예제들을 중심으로 간략하게 정리해보도록 하겠습니다.  Deployment 이점 / 사용하는 이유k8s에서 pod를 수동으로 배포하는 것도 얼마든지 가능하지만,실무에서는 deployment를 이용한 배포를 많이 활용합니다. 이에는 다음과 같은 이점이 있습니다.pod가 실행 중 오류가 발생하더라도 지정된 개수의 pod를 유지할 수 있도록 관리해줍니다.애플리케이션 업데이트 시 안정적으로 진행할 수 있는 기능을 제공합니다.새로운 버전에 오류가 생긴 경우, 이전 버전으로 롤백이 용이합니다.  Deployment yaml 파일 예제기본적인 deployment를 다루는..

쿠버네티스 Node/Pod Affinity와 Taint-Tolerations 개념 정리

kubernetes(k8s) 에서 많이 사용되지만 혼동되는 개념인Affinity와 Taint-Tolerations에 대해서 정리해보도록 하겠습니다.  0. 언제 사용되는 개념인가요?해당 개념들은 Pod를 Node에 배정하는 스케줄링을 진행할 때,조건을 제어하는 용도로 사용됩니다.  1. Node Affinity사용 목적Pod를 특정한 조건을 만족하는 Node에 배정하고 싶을 때 사용합니다.  종류- 필수 조건 (requiredDuringSchedulingIgnoredDuringExecution):반드시 만족해야 하는 조건입니다.해당 조건을 만족하지 않으면 Pod는 해당 노드에 스케줄링되지 않습니다.- 선호 조건 (preferredDuringSchedulingIgnoredDuringExecution):만족..

쿠버네티스 kubectl 주요 명령어 정리

kubernetes(k8s) 클러스터를 다루기 위한 명령줄 도구인 kubectl의기초적인 명령어 목록들에 대하여 간략하게 정리를 해보도록 하겠습니다.  1. 클러스터 / 노드 정보 관련# 클러스터 정보 확인kubectl cluster-info# 노드 정보 확인kubectl get nodes  2. 네임스페이스 관련# 네임스페이스 리스트 확인kubectl get namespaceskubectl get ns# 네임스페이스 생성kubectl create ns # 네임스페이스 삭제kubectl delete ns   3. Pod 관련# 파드 리스트 확인(default namespace 기준)kubectl get podskubectl get pokubectl get po -o wide # 상세 정보 포함# 모든 네..

[EKS] Grafana 사용을 위한 Loki + Promtail 설정 방법

EKS 환경 내 Grafana에서 로그 모니터링을 하려면 Loki와 Promtail을 세팅하여야 각 pod에서 로그가 정상적으로 수집될 수 있습니다. 이번 글에서는 Loki와 Promtail을 EKS 내에서 세팅하는 방법을 살펴보도록 하겠습니다. (Loki는 저장소, Promtail은 로그를 담아주는 역할입니다.) 1. Loki 설치 1. 먼저, Loki 작동을 위해서는 ebs-csi-addon을 설치해야 합니다. 설치 명령어는 다음과 같습니다. cluster_name=my-eks-cluster-name eksctl create addon --name aws-ebs-csi-driver --cluster $cluster_name --attach-policy-arn arn:aws:iam::aws:policy..

[EKS] ArgoCD 설치 및 ingress 설정 방법

EKS 클러스터 내에서 helm을 통하여 ArgoCD를 셋업하고, 설치된 ArgoCD에 ingress를 설정하여 특정 웹사이트 주소로 호스팅 준비를 하는 방법을 간략하게 정리하여 다루어보도록 하겠습니다. Prerequisite: helm 설치 ArgoCD 설치를 위해서는 helm이 쿠버네티스 환경 내에 설치되어 있어야 합니다. helm 설치 및 기본적인 사용 방법에 대해서는 아래의 글에 정리해두었으니, 필요하신 분들은 참고해보세요. helm 소개 및 기초 명령어 예시 정리 helm이란? 쿠버네티스 환경에서 패키지 관리자 역할로, 복잡한 쿠버네티스 yaml 파일을 세세히 작성하지 않아도 기본적인 세팅을 도와주고 애플리케이션 설치, 업그레이드, 관리가 매우 용이하게 jimmy-ai.tistory.com Ar..

AWS EKS 클러스터 생성 방법 정리(eksctl 사용)

EKS 클러스터를 eksctl 명령어를 통하여 셋업하는 방법을 간략하게 정리해보도록 하겠습니다. AWS console 페이지에서도 EKS를 직접 생성할 수 있지만, eksctl을 활용하는 경우 쿠버네티스 업데이트 내역과의 호환성이 더 좋아 명령어를 통하여 EKS 클러스터를 생성하는 방법을 권장드립니다. 1. AWS CLI 인증 우선, 사용할 AWS 계정의 CLI 인증이 되어 있어야 합니다. 만일, STS 인증을 사용할 경우 작업 자동화 관련 글이 있으니 참고해보시면 좋습니다. AWS STS 인증 과정 자동화 방법(리눅스 기준) AWS에서 보안 강화를 위하여 MFA를 적용한 STS 인증을 다음과 같이 사용하는 경우가 있습니다. aws sts get-session-token --serial-number --..

helm 소개 및 기초 명령어 예시 정리

helm이란? 쿠버네티스 환경에서 패키지 관리자 역할로, 복잡한 쿠버네티스 yaml 파일을 세세히 작성하지 않아도 기본적인 세팅을 도와주고 애플리케이션 설치, 업그레이드, 관리가 매우 용이하게 해줍니다. pip install로 파이썬 모듈을 쉽게 설치할 수 있는 것과 유사한 원리로 생각하면 됩니다. 여기서는 '모듈' 대신 '차트'라는 표현을 주로 사용합니다. helm 설치 아래의 공식 사이트의 설명을 따라하면 쉽게 설치가 가능합니다. https://helm.sh/ko/docs/intro/install/ 헬름 설치하기 헬름 설치하고 작동하는 방법 배우기. helm.sh helm search repo helm search repo로 설치 가능한 차트를 검색할 수 있습니다. 예를 들어, nginx와 관련된 r..

AWS EKS 그라파나(Grafana) 접속 세팅 방법

AWS EKS에서 그라파나 사이트를 띄울 수 있는 pod를 띄우고 사이트에 접속할 수 있도록 설정하는 방법에 대하여 간략하게 정리해보도록 하겠습니다. Step 1. 그라파나 도커 이미지 다운로드 및 ECR에 업로드 로컬 시스템에 Docker가 설치되어 있다고 가정하겠습니다. 먼저, Grafana 공식 도커 이미지를 다운로드해야 하는데, 다음 명령어로 쉽게 가능합니다. docker pull grafana/grafana 해당 로컬 환경에서 AWS 인증을 하고, ECR 레포지터리를 생성합니다. (여기서는 grafana-repo라는 이름의 레포지터리를 가정하겠습니다.) aws ecr create-repository --repository-name grafana-repo 이제 도커 이미지 태깅 및 push를 진행..

반응형