분류 전체보기

· CICD
1. 개요최근 Github Action 포스팅 이후, 이번에는 GitLab CI/CD를 간단하게나마 사용해볼 기회가 생겨 정리글을 남기게 되었다. 이번 포스팅에서는 GitLab CI/CD의 기본적인 사용 방법을 간단히 소개하고, 실습을 통해 CI/CD 워크플로우 파일을 작성하고 실행하는 과정을 다뤄보겠다.2. GitLab CICD 란GitLab CI/CD는 GitLab에서 제공하는 강력한 DevOps 도구로, 프로젝트 내에서 코드 변경 사항을 자동으로 테스트, 빌드, 배포할 수 있도록 지원한다. GitLab CI/CD는 GitLab과 통합되어 동작하기 때문에, GitLab 리포지토리와 직접 연결되어 프로젝트 관리와 배포 프로세스를 단순화한다. 또한 Github Actions와 다르게 파이프라인을 작성하고..
· CICD
개요ArgoCD는 Kubernetes 리소스를 코드화하여 GitOps 방식으로 관리할 수 있는 도구이다. 그러나 정작 ArgoCD 자체를 프로비저닝 하거나 GitOps 환경을 구성하는 과정은 여전히 수작업이 필요하다. 이러한 불편함을 해소하기 위해 등장한 도구가 바로 ArgoCD Autopilot이다. 이를 통해 ArgoCD를 자동 프로비저닝하고 GitOps 환경까지 표준화된 구조로 구성할 수 있다.이번 포스팅에서는 ArgoCD Autopilot의 주요 기능과 사용법을 알아보자.ArgoCD Autopilot 소개ArgoCD Autopilot은 GitOps 기반 배포 도구인 ArgoCD를 간편하게 설치하고 관리할 수 있도록 설계된 도구로 Argo 프로젝트에 포함되어 있다. 단순히 ArgoCD 설치를 자동화..
· CICD
1. 개요Jenkins나 Tekton 같은 별도의 CI 도구만 사용해 왔고, Github Actions나 GitLab CI/CD와 같은 레포지토리 기반의 통합 CICD 도구는 존재만 알고 있었다. 이번 스터디를 통해 Github Actions 사용법에 간단히 알아보고, 이를 활용하여 CI/CD 파이프라인을 구성하는 방법을 살펴본다. GitHub Actions는 GitHub 사용자들에게 직관적이고 통합적인 CI/CD 환경을 제공하며, Github 페이지에서 Actions 탭을 통해 제공하기 때문에 GitHub Actions를 사용하면 코드 관리와 자동화를 한 플랫폼에서 수행할 수 있어, 팀 협업과 효율적인 소프트웨어 개발 프로세스를 구현할 수 있다.2. 주요 컴포넌트GitHub Actions는 아래와 ..
· CICD
jib 소개jib는 Google에서 제공하는 Maven/Gradle 플러그인으로, Dockerfile 없이 Java 애플리케이션을 컨테이너 화할 수 있는 도구이다.Jib(지브)라는 의미에 단어의 의미처럼 돛이 배의 방향을 조정하고 민첩성을 높이듯이, jib 플러그인은 Java 애플리케이션 컨테이너화에서 유연성과 속도를 제공한다는 점에서 이름의 상징성과 기능이 일치한다. 주요 특징은 다음과 같다. • Docker 환경 불필요: Docker 데몬 없이 컨테이너 이미지를 생성하고, 바로 Docker 레지스트리에 푸시할 수 있음• 최적화된 이미지 생성: Java 애플리케이션의 디펜던시, 리소스, 코드를 별도 레이어로 관리해 빌드 효율성 극대화.• 간단한 설정: Maven/Gradle 설정 파일에 몇 줄 추가로 ..
Amazon VPC CNIAmazon EKS에서는 Amazon VPC CNI 플러그인을 통해서 클러스터 간 네트워크 연결을 지원합니다.이전에 다루었던, 다른 네트워크 플러그인(Flannel, Calico, Cilium)과 구별되는 Amazone VPC CNI의 주요 특징은 다음과 같습니다.VPC 네트워크와의 통합Kubernetes의 파드가 AWS VPC의 네트워크 대역과 통합되어, VPC Flow logs, VPC 라우팅 정책, 보안그룹 등의 사용이 가능해집니다.ipamd를 통한 ENI 및 IP풀 관리ipamd가 ENI 및 IP 풀을 자동 관리하여 최적화된 네트워크 설정을 제공합니다.네트워크 성능 최적화노드와 파드가 같은 IP 대역을 사용하므로, 직접 통신이 가능해 네트워크 경로가 단순해지고 최적의 성능..
eBPF(extended Berkeley Packet Filter)eBPF는 샌드박스(Sandbox) 기술을 사용해서 커널에서 안전하게 사용자 프로그램을 실행할 수 있도록 하는 기술입니다. eBPF 프로그램은 JIT(Just-In-Time) 컴파일러에 의해 런타임에서 프로그램을 커널에 로드하고, 빠르게 동작시킬 수 있습니다. 또한 JIT 컴파일러를 거치기 전에, Verifier를 통해 검증되기 때문에, 프로그램이 커널에 손상을 주거나 시스템을 불안정하게 만들 가능성을 줄입니다.얼마 전, 크라우드 스트라이크 사태에서도, 윈도우의 업데이트 패치에서 커널을 잘못건드려 전 세계 시스템이 마비가 된 적이 있습니다. 이처럼 커널을 제어하는 것은 매우 어려운 일이며, 안전하고 빠른 프로그램을 만들 수 있는 eBPF가..
Istio 개요서비스 메쉬(Service Mesh)의 등장서비스 메쉬의 필요성은 컨테이너 기술의 발전과 함께 부각되었습니다. 서비스가 점점 더 작아지고, 그 개수는 늘어나면서 전체 시스템을 모니터링하는 일이 점점 어려워졌습니다. 특히 서비스 운영 중 발생하는 장애나 병목의 원인을 파악하기 힘든 상황이 자주 발생하게 되었습니다. 그래서 이러한 문제들을 해결하기 위해 서비스 메쉬가 등장했습니다.Istio란?Istio는 오픈 소스 서비스 메쉬 솔루션으로, 마이크로서비스 아키텍처에서 통신과 관련된 복잡성을 줄여주는 도구입니다. Istio는 데이터 플레인과 컨트롤 플레인으로 구성되어 있으며, 데이터 플레인은 각 서비스 간의 트래픽을 제어하고, 컨트롤 플레인은 정책 관리와 설정을 담당합니다. 이를 통해 Istio는..
Kubernetes IngressIngress쿠버네티스 인그레스(Ingress)는 클러스터 외부의 트래픽을 내부 서비스로 라우팅하는 중요한 API 객체입니다.클러스터 내의 서비스에 외부에서 접근하기 위해 NodePort나 LoadBalancer를 사용할 수 있지만, Ingress를 이용하면 더 효율적이고 유연하게 트래픽을 관리할 수 있습니다.Ingress는 경로 기반 및 호스트 기반의 라우팅 규칙을 설정할 수 있습니다.TLS 인증서를 활용해 HTTPS 트래픽을 처리할 수 있어 복잡한 웹 애플리케이션 환경에서도 효과적인 트래픽 관리가 가능합니다.https://kubernetes.io/docs/concepts/services-networking/ingress/Ingress-Controller인그레스 컨트롤러..
장성필(hackjap)
'분류 전체보기' 카테고리의 글 목록