Ansible이란?IT 자동화를 위한 오픈소스 도구로, 서버 구성 관리 (Configuration Management), 애플리케이션 배포 (Application Deployment), 프로비저닝 등을 쉽게 수행할 수 있도록 도와준다. 특징과 장점Agentless: 별도의 클라이언트 설치 없이 SSH 또는 WinRM을 통해 실행YAML 기반: 사용하기 쉬운 선언형 Playbook 제공멀티플랫폼 지원: Linux, Windows, macOS 등 다양한 환경에서 사용 가능모듈 기반 구조: 다양한 모듈을 활용하여 확장 가능Idempotent(멱등성): 동일한 작업을 여러 번 실행해도 같은 결과를 보장한다. Ansible 설치 및 환경 설정나는 Ubuntu 22.0.4, VMware 환경에서 설치했다. C..
젠킨스(Jenkins)는 아주 간단히 말하자면 CI/CD 자동화 도구다.그래서 젠킨스를 설명하기에 앞서 CI/CD를 알고 가야한다. CI/CD란?소프트웨어 개발 프로세스의 자동화를 의미한다.개발자가 코드를 변경할 때마다 자동으로 빌드, 테스트, 배포까지 진행이 가능하다. 1. CI (Continuous Integration, 지속적 통합)CI는 코드 변경을 통합하고, 자동으로 빌드 & 테스트하는 프로세스 핵심 과정1. 코드 푸시개발자가 새로운 기능을 추가하고 Github 등에 코드를 푸시 2. 자동 빌드CI 서버가 코드를 자동으로 빌드 3. 자동 테스트유닛 테스트, 통합 테스트 실행 4. 결과 확인빌드나 테스트가 실패하면 개발자에게 알림 필요한 이유여러 개발자가 같은 프로젝트에서 작업할 때, 코드 ..
Service Mesh란?마이크로서비스 아키텍처에서 서비스 간의 통신을 관리하고 최적화하는 인프라 계층. 필요한 이유마이크로서비스 아키텍처에서는 여러 개의 서비스가 서로 통신하면서 하나의 애플리케이션을 구성한다.하지만 이런 서비스 간 통신을 직접 관리하면 복잡성이 증가한다. 예시트래픽 제어: A 서비스가 B 서비스로 요청을 보낼 때, 부하 분산이나 리트라이 기능이 필요보안: 서비스 간 통신을 암호화하고, 특정 요청을 인가해야 함.모니터링: 어느 서비스가 느린지, 오류율이 높은지 로깅 및 트레이싱이 필요함. 서비스메쉬를 사용하면 위 문제들을 애플리케이션 코드 수정 없이 해결할 수 있다! 핵심 기능 1. 서비스 간 통신 관리서비스 메쉬는 각 서비스 간의 요청과 응답을 처리하는 프록시를 배치하여, 마이크로서..
ConfigMap이란? 애플리케이션의 설정 정보를 환경변수나 설정 파일 형태로 관리할 수 있도록하는 쿠버네티스 리소스이다. 피드를 생성하면서 컨테이너에 입력해줘야하는 설정값이 있는 경우가 있다.이때 같은 이미지를 사용하더라도 설정에 따라서 애플리케이션이 다르게 동작할 수 있는데 이럴때마다 이미지를 만들면 효율적이지 못하다.이럴땐 환경변수를 이용해서 파드를 생성하면서 설정값을 입력해줄 수 있다.또한 환경변수를 사용하여 전달할 수도 있지만 설정이 여러가지가 있으면 파드의 설정과 함께 작성하기에 복잡해질 수 있다.그래서 파드의 yml과 설정 내용의 yml을 분리하기 위해 사용한다. 설정1. ConfigMap 생성 예제apiVersion: v1kind: ConfigMapmetadata: name: cm-dev..
쿠버네티스 환경 구축2.1 설치 환경개발 용도: Minikube, Docker for Windows서비스 테스트 및 운영: kubespray, kubeadm, EKS, GKE2.2 Ubuntu 22.04에 설치가상머신 3대 준비 (CPU 2, MEM 4GB)1) 호스트 이름 설정vi /etc/hostname# master, worker01, worker02 로 설정 후 재부팅2) containerd 설치apt -y install containerd3) 가상 네트워크 설정cat > /etc/sysctl.d/99-k8s-cri.conf 4) Swap 비활성화swapoff -avi /etc/fstab # swap.img 항목 주석 처리5) GRUB 설정vi /etc/default/grub# GRUB_CMDL..
쿠버네티스의 개념을 정리해본 글입니다.1. Kubernetes란?Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장할 수 있게 도와주는 오케스트레이션 도구입니다.Docker는 컨테이너 개수가 많아지면 개별 컨테이너를 직접 관리하는 것이 어렵고 복잡해지는데, Kubernetes는 여러 컨테이너를 한꺼번에 관리하고, 자동으로 배포/확장/복구까지 해줍니다.2. 오케스트레이션이란?여러 가지 작업이나 프로세스를 자동으로 조율하고, 순서대로 실행하거나 동시에 처리하여 목표를 달성하는 방식을 의미합니다.쿠버네티스에서는 컨테이너화된 애플리케이션을 자동으로 배포하고 관리하기 때문에 오케스트레이션 시스템이라고 할 수 있습니다.3. Kubernetes 핵심 개념클러스터 (Cluster): 여러 개의..