✔️ namespace란 ?! Namespace란 쿠버네티스 클러스터 내의 논리적인 분리 단위이자 오브젝트를 묶는 하나의 가상 공간 또는 그룹이다. 하나의 클러스터 내에 개발/운영/테스트 환경이 있다면 비슷한 이름의 수많은 오브젝트들이 생길 것이고 운영자와 사용자는 관리와 사용 측면에서 어려움을 겪게 된다. 쿠버네티스에서는 namespace를 통해 운영환경을 논리적으로 분리하여 운영할 수 있다. Namespace로 할 수 있는 것 사용자별로 네임스페이스 접근 권한을 다르게 운영할 수 있다. namespace 별로 리소스의 할당량을 지정할 수 있다. (ResourceQuota 사용) namespace 별로 리소스(Pod, Service)를 나눠서 관리할 수 있다. 주의해야할 점 namespace는 클러스터..
✔️ Overview Terraform으로 인프라를 관리함에 따라 점점 더 복잡한 구성이 생성됩니다. 단일 Terraform 구성 파일 또는 디렉토리의 복잡성에는 본질적인 제한이 없으므로 단일 디렉토리에서 구성 파일을 계속 작성하고 업데이트할 수 있습니다. 그러나 그렇게 하면 다음 문제 중 하나 이상이 발생할 수 있습니다. 구성 파일을 이해하고 탐색하는 것이 점점 더 어려워질 것입니다. 한 블록을 업데이트하면 구성의 다른 블록에 의도하지 않은 결과가 발생할 수 있으므로 구성 업데이트는 더 위험해집니다. 예를 들어, 별도의 개발/스테이징/프로덕션 환경을 구성할 때 유사한 구성 블록의 중복이 증가할 수 있으며, 이는 구성의 해당 부분을 업데이트할 때 부담을 증가시킵니다. 프로젝트와 팀 간에 구성의 일부를 공..
✔️ Overview Terraform은 HashiCorp에서 제공하는 코드로서의 인프라입니다. 안전하고 반복 가능한 방식으로 인프라를 구축, 변경 및 관리하기 위한 도구입니다. 운영자 및 인프라 팀은 Terraform을 사용하여 사람이 읽을 수 있고 자동화된 배포를 위한 HCL(HashiCorp Configuration Language)이라는 구성 언어로 환경을 관리할 수 있습니다. 코드로서의 인프라는 사용자 인터페이스에서 리소스를 수동으로 구성하는 대신 파일 또는 파일에서 인프라를 관리하는 프로세스입니다. 이 인스턴스의 리소스는 가상 머신, 보안 그룹, 네트워크 인터페이스 등과 같은 주어진 환경의 모든 인프라입니다. 높은 수준에서 Terraform을 사용하면 운영자가 HCL을 사용하여 원하는 리소스의..
✔️ Overview Terraform을 사용하면 인프라스트럭처를 안전하고 예측 가능하게 작성, 변경 및 개선할 수 있다. API를 선언형 구성 파일로 코드화하여 코드로 취급하고 편집, 리뷰 및 버전화할 수 있는 오픈소스 툴이다. ✔️ 실습 목표 Google Cloud에서 Terraform을 시작하기 바이너리 설치 파일로 Terraform을 설치하기 Terraform을 사용하여 VM 인스턴스 인프라를 생성하기 ✔️ Terraform이란? Terraform은 인프라를 안전하고 효율적으로 구축, 변경 및 버전화하기 위한 도구이다. Terraform은 기존의 인기 있는 서비스 프로바이더와 커스텀 사내 솔루션을 관리할 수 있다. 구성 파일은 단일 애플리케이션 또는 데이터 센터 전체를 실행하는 데 필요한 구성 요..
✔️ Creating the Jenkins Pipeline ✔️ Creating a repository to host the sample app source code gceme 샘플 앱 복사본을 생성하여 클라우드 소스 저장소에 푸시한다. gcloud source repos create default 이 경고는 무시해도 된다. 이 저장소에 대한 과금은 발생하지 않는다. 샘플 앱 디렉토리를 자체 Git 저장소로 초기화한다. git init git config credential.helper gcloud.sh 다음 명령을 실행한다. git remote add origin https://source.developers.google.com/p/$DEVSHELL_PROJECT_ID/r/default Git 커밋의 ..
✔️ 실습에 앞서 이번 실습에서는 Jenkins와 함께 kubernetes 엔진에 지속적인 전달 파이프라인을 설정하는 방법을 배울 것이다. Jenkins는 공유 저장소에 코드를 자주 통합하는 개발자들이 사용하는 자동 서버이다. 실습을 통해 구축하는 솔루션은 다음과 같다. ✔️ 실습 목표 Kubernetes 엔진 클러스터에 Jenkins 어플리케이션 프로비저닝 Helm Package Manager를 통해 Jenkins 어플리케이션 설정하기 Jenkins 어플리케이션의 기능 학습 Jenkins 파이프라인 생성 및 연습 ✔️ Jenkins란 ? (간단하게) Jenkins는 빌드, 테스트 및 배포 파이프라인을 유연하게 조정할 수 있는 오픈소스 자동화 서버이다. Jenkins는 개발자들이 지속적인 제공으로 인해 ..