일상 51

[k8s] 명령어 8개로 가장 빠르게 클러스터 생성하고 쿠버네티스 모니터링까지

Introduction 쿠버네티스는 뛰어난 기능을 제공하지만, 처음 시작하기는 조금 복잡할 수 있습니다. 하지만 Minikube를 이용하면 로컬 환경에서 손쉽게 쿠버네티스 클러스터를 만들 수 있습니다. 이번에는 단 아래의 8개의 명령어로 클러스터를 만들고, 가장 빠르게 모니터링까지 하는 방법에 대해 안내하겠습니다. 쿠버네티스를 처음 다뤄보는 분들에게는 Minikube가 정말 좋은 선택일 거예요. Minikube를 사용하면 로컬 환경에서 간단하게 쿠버네티스 클러스터를 만들 수 있답니다. 설치 전 요구 사항 Docker Desktop 설치 Docker Desktop은 Minikube에서 로컬 Kubernetes 클러스터를 실행하기 위해 필요합니다. 먼저 Docker Desktop을 설치해야 해요. 공식 Do..

DevOps/k8s 2024.02.16

[docker] Docker Swarm을 활용한 NFS Volume 생성과 서비스 배포

Introduction Docker Swarm을 활용하여 NFS(Network File System) Volume을 생성하고 서비스를 배포하는 방법에 대해 알아보겠습니다. 이를 통해 여러 Docker 노드 간에 데이터를 공유하고 분산된 서비스를 운영할 수 있습니다. NFS란? NFS(Network File System)은 리눅스와 유닉스 계열 운영체제에서 사용되는 분산 파일 시스템입니다. 파일 및 디렉토리를 네트워크를 통해 다른 컴퓨터에 공유할 수 있게 해주는 프로토콜입니다. Docker Swarm 이란? Docker Swarm은 Docker 컨테이너 오케스트레이션 도구 중 하나로, 여러 Docker 호스트를 하나의 가상화된 호스트로 관리하는 기능을 제공합니다. Swarm을 통해 여러 노드에 걸쳐 컨테이..

DevOps/docker 2024.02.01

Kubernetes 환경에 Prometheus와 Grafana를 설치하고 통합하기

Introduction 안녕하세요. 오늘은 Kubernetes 환경에 Prometheus 및 Grafana를 설치하고 통합하는 단계를 자세히 안내하겠습니다. 이를 통해 클러스터의 모니터링 및 시각화를 손쉽게 구성할 수 있습니다. Prometheus 설치 Prometheus를 설치하기 위해 Helm 차트를 사용합니다. #Helm Repo 추가 helm repo add prometheus-community #Helm을 사용하여 프로메테우스 설치 helm install prometheus prometheus-community/prometheus Pod 확인 설치가 완료되면 다음 명령어를 사용하여 프로메테우스 관련 Pod가 정상적으로 배포되었는지 확인합니다. kubectl get pods Prometheus 서..

DevOps/k8s 2024.01.24

[Network] traceroute을 사용한 네트워크 실습

내 컴퓨터에서 구글까지 9개의 네트워크 대역이 지나간걸 알 수 있다. 보통 10개에서 15개 안에서 전세계가 연결될 수 있다고 한다. 이렇게 여러 네트워크들이 연결되어있는 걸 WAN(Wide Area Acess) 이라고 한다. daeunkim@Daeunui-MacBookPro ~ % traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets 1 10.160.136.1 (10.160.136.1) 4.773 ms 4.382 ms 4.317 ms 2 * * * 3 100.70.61.181 (100.70.61.181) 7.073 ms 7.091 ms 7.885 ms 4 10.63.252.236 (10.63.252.236) 5...

네트워크와 CS 2024.01.04

[K8s] JSONPATH 활용하여 원하는 데이터 확인하기

JSONPath란? JSONPath는 JSON 데이터 구조 내에서 원하는 데이터를 식별하기 위한 경로 표현 방법입니다. 주로 Kubernetes나 다양한 API 응답에서 원하는 데이터를 추출하거나 쿼리하는 데 사용됩니다. JSONPath 패턴 $.store.book[0].title JSON 데이터 구조에서 store 객체 안의 book 배열의 첫 번째 요소의 title 값에 대한 경로 $..author 모든 author 키에 해당하는 값 반환 $.store.* store 객체 안의 모든 키와 값 반환 $.store..price store 객체 내부의 모든 price 키에 해당하는 값 반환 $.store.book[?(@.price < 10)] : **price**가 10 미만인 책에 해당하는 값들을 반환합..

DevOps/k8s 2023.11.16

[K8s]LivenessProbe 실습할 때 생길 수 있는 트러블 슈팅

간단한 Flask 어플리케이션을 Docker 이미지로 만들고, 이를 Kubernetes에서 실행하면서 LivenessProbe를 설정하는 예제입니다. Flask 어플리케이션 코드 (app.py): pythonCopy code from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello, Kubernetes!" if __name__ == '__main__': app.run(host='0.0.0.0', port=8080) Docker 이미지 빌드 (Dockerfile): DockerfileCopy code FROM python:3.9-slim WORKDIR /app COPY requirements.txt /ap..

DevOps/k8s 2023.07.27

[K8s] Kubernetes LivenessProbe와 ReadinessProbe와 어플리케이션 안정성 강화하기

LivenessProbe왜 필요한지? 어플리케이션을 운영하는 과정에서 어플리케이션의 상태를 지속적으로 모니터링하고, 어플리케이션의 비정상 동작을 빠르게 감지하여 안정적인 서비스를 제공하는 것은 매우 중요합니다. 어플리케이션이 장애 상태에 빠지면 서비스 중단 및 고객 불만을 초래할 수 있기 때문에, 이러한 문제를 사전에 예방하고 빠르게 대응하기 위해 Kubernetes의 LivenessProbe와 Spring Boot Actuator를 사용합니다. 특징 어플리케이션의 생존 여부를 체크하는데 사용됩니다. 주기적으로 어플리케이션의 상태를 확인하고, 응답이 오지 않거나 오류가 발생한 경우 해당 POD를 재시작합니다. 어플리케이션이 예상되는 문제 또는 무한 루프, 데드락 등으로 인해 정상적으로 동작하지 않을 때 ..

DevOps/k8s 2023.07.27

[AWS] VPC(Virtual Private Cloud)를 활용한 네트워크 구성 및 보안 설정 W. TERRAFORM 예제

AWS VPC는 클라우드 환경에서 가상 네트워크를 구축하고 관리할 수 있는 서비스이다. 이를 통해 사용자는 가상의 프라이빗 클라우드를 생성하고, 리소스를 격리하며 네트워크 구성을 세밀하게 제어할 수 있다. 이번 글에서는 AWS VPC의 구성 요소와 주요 개념과 실제 예시를 통해 자세히 살펴보도록하자. Internet Gateway in AWS 인터넷 게이트웨이는 AWS(Virtual Private Cloud) VPC 환경에서 인터넷과의 통신을 가능하게 하는 서비스이다. VPC 내부의 리소스가 인터넷과 통신하기 위해서는 인터넷 게이트웨이가 필요하다. 이를 통해 VPC 내부의 인스턴스들은 인터넷으로 향하는 트래픽을 주고받을 수 있다. VPC 연결: VPC와 인터넷 게이트웨이 간의 연결은 하나의 VPC에 하나..

DevOps/aws 2023.07.13

[Terraform] Terraform 시작하기 feat. EC2 기본 Code

Terraform 시작하기테라폼은 다양한 클라우드를 제공하고 있는 AWS, Azure, Google Cloud 리소스를 코드를 통해 온프레미스 시스템을 지원하며, 여러 리소스(가상 머신, 네트워크, 데이터베이스)를 프로비저닝할 수 있다. 테라폼 설치테라폼은 공식 웹사이트(https://www.terraform.io/downloads.html) 다운로드할 수 있다.압축 파일을 압축 해제한 후, 실행 파일을 실행 가능한 경로에 배치한다.설치가 성공적으로 완료되었는지 확인하기 위해 terraform version 명령을 실행하여 테라폼 버전을 확인한다. 테라폼 기본 개념테라폼 코드: 테라폼을 사용하여 인프라를 관리하기 위해 작성하는 코드로 HCL(HashiCorp Configuration Language)이라..

DevOps/terraform 2023.07.13