Terraform (2) - 변수, 출력, 반복으로 여러 리소스 다루기
1. 개요 이전 글에서는 파일 하나를 만드는 코드로 init , plan , apply , destroy 흐름을 익혔다. 그런데 그 코드는 파일 이름과 내용이 코드에 고정돼 있어서, 파일을 10개 만들려면 resource 블록을 10번 복사해야 한다. 이 글에서는 같은…
1. 개요 이전 글에서는 파일 하나를 만드는 코드로 init , plan , apply , destroy 흐름을 익혔다. 그런데 그 코드는 파일 이름과 내용이 코드에 고정돼 있어서, 파일을 10개 만들려면 resource 블록을 10번 복사해야 한다. 이 글에서는 같은…
1. 개요 서버, 네트워크, 디스크 같은 인프라를 만들 때 웹 콘솔에서 버튼을 눌러 만들 수도 있다. 하지만 그렇게 만들면 "무엇을 어떻게 만들었는지"가 기록에 남지 않아서, 같은 환경을 다시 만들거나 다른 사람에게 설명하기 어렵다. Terraform 은 만들고 싶은…
1. 개요 Terraform은 "어떤 인프라가 있어야 하는가"를 코드로 적어 두면, 그 상태가 되도록 API를 호출해 리소스를 만들어 주는 도구다. 이 글은 Terraform 코드를 읽는 데 필요한 문법을 정리한다. 2. 블록 구조 읽기 Terraform 코드는 HCL…
1. 개요 서버를 쓰다 보면 처음 만든 계정 이름을 바꾸고 싶을 때가 있다. 새로 계정을 만들고 파일을 옮기는 방법도 있지만, usermod 를 쓰면 UID와 파일 소유권을 그대로 유지한 채 이름만 바꿀 수 있다. 다만 이름 변경은 "명령 한 줄"로 끝나지 않는다. 바…
1. 개요 홈서버 한 대(Ubuntu 24.04, 12스레드, 32GB RAM) 위에 가상 머신(VM) 3대를 만들고, 그 VM들로 kubeadm 쿠버네티스 클러스터를 구성한다. 손으로 VM을 만들고 노드마다 SSH로 들어가 명령을 입력해도 되지만, 그렇게 하면 같은…
1. 개요 리눅스는 여러 사람이 한 서버를 함께 쓰는 것을 전제로 만들어진 운영체제다. 그래서 파일 하나, 프로세스 하나에도 "누구의 것인지"가 기록되고, 그 소유자 정보를 기준으로 읽기·쓰기·실행 권한이 결정된다. 1번 글에서 chmod , chown 으로 권한과 소…
1. 개요 애플리케이션을 Kubernetes에 배포할 때 kubectl apply 를 직접 실행하면 빠르게 시작할 수 있다. 하지만 환경과 클러스터가 늘어나면 누가, 언제, 어떤 설정을 바꿨는지 추적하기 어렵고, Git에 저장된 설정과 실제 클러스터의 상태가 달라질 수…
1. 개요 이번 글에서는 Kubernetes 클러스터에 Argo CD를 설치하고, 초기 관리자 비밀번호로 Web UI에 접속한다. 실습에서는 외부 접속을 위해 argocd server Service를 NodePort로 변경한다. NodePort와 자체 서명 인증서는 학…
1. 개요 Argo CD의 Application 은 배포할 소스와 대상 클러스터를 연결하는 핵심 리소스다. 이번 글에서는 Bitnami NGINX Helm 차트를 예시로 Application을 만들고, 자동 동기화와 구성 드리프트 처리 옵션을 살펴본다. Helm을 직접…
1. 개요 앞 글에서는 Helm 차트를 Application으로 배포했다. 이번에는 GitHub 저장소의 manifest 디렉터리에 Namespace, Deployment, Service를 저장하고, Argo CD가 이 디렉터리를 읽어 클러스터에 배포하도록 구성한다.…