
DevSecOps 파이프라인을 Kubernetes(Kind) 기반 구축 가이드. AWS/GCP/Azure 또는 온프레미스 환경에 맞게 변형 가능. 1. 인프라 아키텍처 개요graph TD A[Developer] -->|Git Push| B(GitHub/GitLab) B -->|Webhook| C[Jenkins CI] C -->|Build & Scan| D[Docker Registry] C -->|Security Scan| E[SonarQube/Trivy] D -->|Pull Image| F[ArgoCD] F -->|Deploy| G[Kubernetes] G -->|Monitoring| H[Prometheus+Grafana] H -->|Alert| ..
Canary 배포 Jenkins Pipeline 코드와 상세 프로세스를 단계별 설명1. Jenkins Pipelinepipeline { agent any environment { // Helm & Kubernetes HELM_CHART_DIR = "helm-chart" NAMESPACE = "production" DOCKER_IMAGE = "my-registry.com/my-app:${env.BUILD_NUMBER}" // ArgoCD ARGOCD_SERVER = "argocd.example.com" ARGOCD_APP_NAME = "my-app-canary" ..
Helm, ArgoCD, Istio를 활용한 Canary 배포 프로세스와 Jenkins Pipeline 코드Canary 배포 시나리오 흐름1. 사전 구성: Helm 차트 구성 + Istio VirtualService 설정2. 파이프라인 실행: Jenkins가 Canary 배포 트리거3. 점진적 롤아웃: 10% → 30% → 100% 트래픽 전환 4. 모니터링: Prometheus 메트릭 기반 자동 롤백 5. 완료: Canary 정상 작동 시 Stable 버전으로 전환 1. 사전 구성Helm 차트 구조my-app-chart/ ├── templates/ │ ├── deployment.yaml # 안정화 버전 (stable) │ ├── canary-deployment.yaml # Cana..
표준화된 패키징(Helm), 유연한 설정 관리(Kustomize), 자동화된 배포(ArgoCD)Kubernetes 애플리케이션을 배포하는 Jenkins Pipeline 스크립트 예제## 사전 준비 사항- Jenkins에 설치된 플러그인: Helm+Kubernetes+ArgoCD- 인프라 구성: - Helm 레지스트리 서버 - ArgoCD 서버 및 대상 Kubernetes 클러스터 연결 - Git 저장소에 `helm-chart`, `kustomize/overlays` 디렉터리 구조 필요## 실행 시나리오1. 개발자가 코드를 `main` 브랜치에 푸시 → Jenkins 파이프라인 트리거. 2. Helm으로 패키징 → Kustomize로 환경별 설정 적용 → ArgoCD가 배포 실행. 3. Arg..

1. Jenkins 환경실행환경 : windows Docker Desktop Jenkins (ip: 192.168.56.1:8081)jenkins plugin 설치: Github Integration Plugin(Jenkins 대시보드에서 Manage Jenkins > Manage Plugins로 이동해 GitHub 플러그인을 검색하고 설치)jenkins 작업 설정: (새로운 작업을 생성하거나, 기존 작업 편집). Source Code Management 섹션에서 GitHub 저장소 URL을 입력합니다 (예: https://github.com/username/repository.git). . Build Triggers 섹션에서 GitHub hook trigger for GITScm polling 옵션을 ..
1. Cluster: kubernetes2. CICD: jenkins3. deploy: tomcat 1-1. k8s cluster 생성하기 (control-plan: 1 , worker: 2)VERSION: v1.27.2OS-IMAGE: Rocky Linux 8.8 (Green Obsidian)KERNEL-VERSION: 477.10.1.el8_8.x86_64CONTAINER-RUNTIME: containerd://1.6.21# Vagrantfile (https://cafe.naver.com/kubeops/473)==================================================NodeCnt = 2Vagrant.configure("2") do |config| config.vm..
GitHub에 코드 푸시Jenkins가 GitHub Webhook을 받아 빌드 실행Docker 이미지 빌드 및 Harbor에 PushArgoCD가 자동으로 새로운 이미지 배포1. GitHub Webhook 설정GitHub에서 Settings → Webhooks에서 Jenkins의 Webhook을 추가해.URL 예시:http://your-jenkins-server:8080/github-webhook/2. Jenkinsfile 작성Jenkins가 빌드하고 Harbor에 이미지를 Push하는 Jenkinsfile을 루트 디렉토리에 추가해.pipeline { agent any environment { HARBOR_URL = "harbor.example.com" IMAGE_NA..
Kubernetes 클러스터의 default 네임스페이스에 있는 모든 자원을 삭제하는 과정은 주의가 필요합니다. 실수로 중요한 시스템 자원을 삭제하지 않도록 반드시 현재 네임스페이스와 삭제 대상을 재확인해야 합니다.과정 개요:현재 네임스페이스 확인: 현재 작업 중인 네임스페이스가 default인지 확인합니다.default 네임스페이스 자원 목록 확인: 삭제할 자원들을 미리 확인합니다.자원 삭제: kubectl delete 명령어를 사용하여 자원을 삭제합니다.삭제 확인: 자원이 정상적으로 삭제되었는지 확인합니다.(선택) 네임스페이스 삭제 및 재생성: default 네임스페이스 자체를 삭제하고 다시 생성할 수 있습니다. (권장하지 않음)단계별 명령어와 설명:1. 현재 네임스페이스 확인:kubectl conf..