목록DevOps (42)
KJH
App of Apps 패턴은 ArgoCD에서 여러 애플리케이션을 계층적으로 관리할 수 있는 구조이다.루트 폴더에 Application.yaml들의 집합체로 구성이 되어 있다. gitops-repo에 apps 폴더가 있어야 한다.# 루트 애플리케이션 예시apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: root-app namespace: argocdspec: project: default source: repoURL: https://github.com/your-org/gitops-repo.git targetRevision: HEAD path: apps destination: server: https://kube..

GPU 메트릭을 상세히 수집하고 모니터링하기 위해 사용하는 Exporter이다. 운영 환경에서는 드라이버 오류나 하드웨어 이슈가 종종 발생한다.하지만 대부분 소프트웨어 레이어부터 점검하는 경우가 많아, 문제의 본질에 도달하기까지 시간이 지체되는 일이 생긴다.레이어를 간소화 할 수 있도록 Exporter를 구성해보자.아래는 nvidia에서 알려주는 상태 enum이다. Exporter를 구성하면 nvidia_smi_command_exit_code로 쿼리 가능하다. https://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf0 - 성공 (Success)2 - 잘못된 인자나 플래그가 전달됨 (Invalid argument or fla..

ngrinder는 websocket을 지원안하는 듯 하여 jmeter로 선정순정 jmeter도 지원을 안해줘서 plugin을 설치해야 함https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeterDownload Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) ..

사전 작업원본 repo의 main을 Fork 해서 개인 repo로 저장이 되었을때 진행 가능. 원본 리포지토리 클론git clone https://github.com/runatlantis/atlantis.gitcd atlantis 태그 기준 브랜치 생성git checkout tags/v0.33.0 -b v0.33.0 GitHub 포크 리포지토리로 remote 변경※ 반드시 workflow scope 포함된 PAT 사용git remote set-url origin https://:@github.com//atlantis.git 브랜치 푸시 (태그와 겹쳐 있으므로 refs로 명시)git push -u origin refs/heads/v0.33.0

시스템 작업을 로컬에서 CLI를 통해 하는 것은 심장 떨리는 일이며 비록 간단한 작업이라도 apply, destroy는 주저하게 된다. 0%의 휴먼에러를 만들 순 없지만 최소화 하는 노력을 하는 방향이 맞는 듯 하다. https://www.runatlantis.io/ AtlantisAtlantisTerraform Pull Request Automation Running Terraform Workflows with Easewww.runatlantis.io설치는 기본형으로 하되 repoConfig에 workflow만 수정하면 된다. 구조설정 방법아래는 Sample Config이다.terraform Git Repo를 id에 맞게 수정을 하고, branch를 지정한다.id와 workflow를 매핑하고, 아래..

OCSP (Online Certificate Status Protocol) 는 이 인증서가 지금 유효한지 실시간으로 확인하는 프로토콜이다기존엔 CRL (Certificate Revocation List) 라는 방식으로 "폐기된 인증서 목록"을 통째로 내려받아서 확인했는데"통째로"이니 파일 크기가 커서 느리고, 실시간성은 부족했다.그래서 나온게 OCSP이고 인증서 하나하나에 대해 "지금 유효하냐?"고 물어보는 방식이다. OCSP Stapling라는 방식이 있다.OCSP를 매번 클라이언트가 직접 Certificate Authority(인증기관)에 물어보면 느리니까, 서버가 미리 OCSP 응답을 받아서 클라이언트에게 주는 방식이다.워크플로우클라이언트는 대상 도메인의 DNS를 쿼리합니다.클라이언트는 대상 IP를..

Docker로 서비스 운영을 한다면 안정성이나 배포를 위해 이중화는 필수인데 싱글로도 운영할 수 있게 nginx를 앞단에 두어 A/S 구조로 구성을 했다. blue, green 방식도 있지만, 운영서버가 blue인지 green인지 즉각 알 수는 없기에 A/S구조로 해서 항상 active를 운영서버로 쓰도록 하는게 편할거 같았다. (여기서 standby가 기술적 구조와는 상이하지만..)(필요하다면 유사시에 스위칭하는 스케줄러를 돌리는것도 가능한 구조이긴 함..) nginx 설정nginx와 A/S가 사용할 network을 미리 만든다.compose에 만들면 종속적이게 되므로 따로 만들고, compose에서 external로 붙이는게 좋았다.NETWORK_NAME="bridge_network"SUBNET="1..
AWS에선 VPC로 불리는 개념이 Azure에선 VNet입니다.하나의 VNet은 여러개의 Subnet을 가질 수 있고, Peer는 양방향으로 설정 해줘야 하며 VNet간 Peer를 위해선 대역이 겹쳐선 안됩니다. Peering 설정에는 4가지가 있는데 옵션에 딸린 설명만 봐선 단번에 와닫진 않길래 정리를 해놓고 기억하고자 합니다. 가상 네트워크 피어링 설정1. 'A-vnet'에서 'B-vnet'에 액세스 허용 ㅁ2. 'A-vnet'에서 'B-vnet'이(가) 전달한 트래픽 수신 허용 ㅁ3. 'A-vnet' 게이트웨이 또는 경로 서버가 트래픽을 'B-vnet'에게 전달하도록 허용 ㅁ4. 'A-vnet'이(가) 'B-vnet'의 원격 게이트웨이 또는 경로 서버를 사용하도록 설정 ㅁ 'A- VNet'에서 '..