1. ControlPlane vs Kubelet Identity 분리 이해1) Control Plane Identity역할: AKS 클러스터 자체를 관리하는 주체관리 대상:Azure 리소스 생성/관리 (Load Balancer, Public IP, Disk 등)Virtual Network 연동Azure DNS Zone 관리 (Private Cluster의 경우)Managed Identity 할당/관리2) Kubelet Identity역할: 각 노드의 kubelet 에이전트가 사용하는 Identity관리 대상:ACR에서 이미지 PullAzure Disk/File 마운트Key Vault 접근 (CSI Driver 사용 시)노드 레벨의 Azure 리소스 접근 2. SystemAssigned 사용 시 동작 방식..
분류 전체보기
이번 블로그에서는 테라폼을 이용한 Azure 고성능 컴퓨팅 인프라 환경을 구축해보는 연습을 진행하겠습니다. 고성능 컴퓨팅의 경우, CycleCloud를 이용해서 구축할 예정입니다.그리고 고성능 컴퓨팅에 맞는 파일 시스템 스토리지 구축에는 Lustre를 사용하도록 하겠습니다. 먼저, Cyclecloud와 Lustre가 간단히 어떤 역할을 하는지부터 설명드릴게요!CycleCloud란?Azure에서 HPC 클러스터를 손쉽게 만들고 관리하며 최적화할 수 있도록 도와주는 클러스터 오케스트레이션(Orchestration) 도구입니다. 계산 작업을 직접 수행하는 것이 아니라, 계산 작업을 수행할 수많은 가상 머신(계산 노드)들을 지휘하고 통제하는 역할을 합니다. CycleCloud는 Microsoft가 직접 인수..
인프라 코드로 관리하는 Teraform을 사용할때, 상황에따라 서로 다른 사용자 초기화 스크립트를 적용해야하는 경우가 있을 수 있습니다. 일반적으로는 하나의 스크립트만 사용하면 되지만, PROD, STAGE, DEV 요건에 따라 다양한 조건이 필요할 수 있습니다. 그렇기때문에 조건문을 분기 할 수 있는 방법이 궁금해졌습니다.if else라는 조건문은 선언형 코드인 테라폼에서 실행할 수 없습니다. 과연, 테라폼에서는 어떻게 조건 분기를 할 수 있을까요? 답은 다음과 같이 count를 이용해 삼항 연산자를 사용해서 구성할 수 있습니다.var.enable_new_user_data가 variables.tf 파일에서 false로 선언 되어있을 경우 , count = 1-var.enable_new_user_da..
테라폼은 선언형(Declarative) 언어입니다. 일반적인 프로그래밍 언어와 달리 선언형 언어이기때문에 for-loop나 if-statement 같은 로직을 직접 사용하기에는 어려움이 있습니다. 그럼 어떻게 반복문을 활용할 수 있을까요? 만약, 테라폼을 이용해서 가상 네트워크를 여러개 만들려고 하면 어떻게 만들 수 있을까요? 그리고 어떻게 조건문을 사용할 수 있을까요? 이러한, 궁금증을 해결하기 위해서 본 블로그를 작성하게 되었습니다. 다행히 테라폼은 이런 반복이나 조건부 작업을 처리할 수 있는 몇 가지 방법을 제공합니다. 반복문 (Loop)일반적인적으로 for-loop 반복문을 통해서 코드를 작성하게 되면 아래와 같이 진행 될 수 있을 것 같습니다. # 이 코드는 실제로 오류가 발생합니다.res..
Terraform으로 클라우드 인프라를 코드로 관리하는 것은 현대 DevOps의 핵심입니다. 하지만 인프라 코드가 복잡해지고 여러 환경(개발, 스테이징, 상용)에서 재사용될수록, 단순히 코드를 복사-붙여넣기 하는 방식으로는 한계에 부딪힙니다. 이때 GitHub을 활용한 Terraform 모듈 관리는 인프라 코드의 안정성, 재사용성, 그리고 효율성을 극대화하는 강력한 전략이 됩니다. 모듈 관리 필요성코드 재사용성 부족: 동일한 인프라 패턴(예: 웹 서버 클러스터)을 여러 환경에 배포할 때마다 코드를 복사-붙여넣기 하게 되어 코드 중복이 발생합니다.일관성 결여: 코드 중복은 환경별로 미묘한 차이가 생기기 쉽고, 이는 인프라 구성의 일관성을 해칩니다.유지보수 및 업데이트의 어려움: 특정 모듈의 버그를 수정하거..
Terraform 모듈은 인프라 코드를 재사용하고 관리하는 데 있어 핵심적인 도구입니다. 하지만 모듈을 단순히 코드를 묶어두는 폴더로만 생각해서는 안 됩니다. 진정으로 유연하고 확장 가능한 모듈을 설계하려면 몇 가지 중요한 원칙과 주의사항을 이해해야 합니다. 1. Terraform 모듈의 기본 개념Terraform 모듈은 폴더에 있는 구성 파일(.tf 파일)의 묶음입니다. 지금까지 우리가 작성했던 모든 Terraform 구성도 사실상 하나의 모듈이었지만, 직접 배포를 수행했기 때문에 "루트 모듈(Root Module)"이라고 불립니다. 모듈 생성의 첫걸음기존에 작성된 인프라 코드를 재사용 가능한 모듈로 변환하는 것은 매우 간단합니다.기존 리소스 회수: 먼저 terraform destroy 명령어를 통해 ..
클라우드 인프라를 코드로 관리하는 IaC(Infrastructure as Code) 시대에 Terraform은 필수적인 도구로 자리 잡았습니다. 하지만 실제 운영 환경의 인프라는 단순히 정적인 리소스들의 집합이 아닙니다. 데이터베이스 주소, VM의 IP, 서비스 엔드포인트 등 동적으로 결정되는 정보를 다른 리소스나 애플리케이션에 전달해야 하는 경우가 빈번합니다. 또한, 여러 팀이 각자의 인프라 스택을 관리할 때, 서로의 출력 값을 참조해야 하는 프로젝트 간의 데이터 공유도 중요합니다. 이 모든 과정에서 Terraform 상태 파일(tfstate)을 안전하고 효율적으로 관리하는 것은 DevOps 엔지니어의 핵심 역량입니다. 이번 블로그 포스팅에서는 Terraform의 terraform_remote_stat..
https://sixth-pot-ae9.notion.site/AKS-API-Server-Vnet-Integration-22d99160b37480dfb9bad839e6349202?source=copy_link
https://sixth-pot-ae9.notion.site/GPU-Node-NVIDIA-Operator-22999160b37480f583e5cd7cf7c34b0f