Devops

Devops

Terraform으로 Replace없는 GCP Compute Instance 부트 디스크를 구성하는 방법

Terraform은 Hashicorp사에서 제공하는 IaC(Infrastructure as Code) 구현을 위한 인프라 배포 도구입니다. 현재 우리는 Terraform의 인프라 정의 코드를 사용해 다양한 환경에서 VM Instance, Disk, Storage 등의 인프라 리소스를 코드로써 배포할 수 있게 되었습니다. 이는 Google Cloud Platform 환경도 마찬가지인데요. Terraform은 코드를 GCP의 API와 상호작용 가능하게 해주는 Plugin인 Google Provider를 공식적으로 제공하고 있기 때문에 Google Cloud Platform의 인프라 또한 코드로 배포할 수 있습니다. GCP에서 Terraform을 통해 배포할 수 있는 인프라 리소스의 대표는 VM 서비스인 Co..

Devops

Tekton 사용해보기 (4) GCP Terraform 인프라를 Validation하는 파이프라인 구축하기

본 포스팅은 "Tekton 사용해보기" 시리즈의 네 번째 글입니다. 해당 시리즈의 첫 번째 글은 Tekton 사용해보기 (1) Tekton으로 쿠버네티스 CI/CD 파이프라인을 구성해보자 에서 볼 수 있습니다. 해당 시리즈의 두 번째 글은 Tekton 사용해보기 (2) Tekton으로 인프라를 자동 배포하는 Terraform Pipeline을 만들어보자 에서 볼 수 있습니다. 해당 시리즈의 세 번째 글은 Tekton 사용해보기 (3) Tekton Dashboard에 OIDC를 기반으로 RBAC 적용하기 에서 볼 수 있습니다. 이번 포스팅에서는 Tekton에서 Google Cloud Platform의 인프라를 Terraform으로 배포할 시 배포 코드에 대한 정책 검사, 즉 Validation을 수행하는..

Devops

Tekton 사용해보기 (3) Tekton Dashboard에 OIDC를 기반으로 RBAC 적용하기

본 포스팅은 "Tekton 사용해보기" 시리즈의 세 번째 글입니다. 해당 시리즈의 첫 번째 글은 Tekton 사용해보기 (1) Tekton으로 쿠버네티스 CI/CD 파이프라인을 구성해보자 에서 볼 수 있습니다. 해당 시리즈의 두 번째 글은 Tekton 사용해보기 (2) Tekton으로 인프라를 자동 배포하는 Terraform Pipeline을 만들어보자 에서 볼 수 있습니다. 이번 포스팅에서는 Tekton의 컴포넌트 중 하나인 Tekton Dashboard를 OIDC와 함께 연동해서 Kubernetes RBAC을 적용해보겠습니다. 현재 Tekton Dashboard에서 native하게 지원하지 않는 기능 중 한가지는 사용자에 따른 RBAC인데요. 따라서 Dashboard에 접속하는 사용자에 따라 접근할..

Devops

Tekton 사용해보기 (2) Tekton으로 인프라를 자동 배포하는 Terraform Pipeline을 만들어보자

본 포스팅은 "Tekton 사용해보기" 시리즈의 두 번째 글입니다. 해당 시리즈의 첫 번째 글은 Tekton 사용해보기 (1) Tekton으로 쿠버네티스 CI/CD 파이프라인을 구성해보자 에서 볼 수 있습니다. 이번 포스팅에서는 Tekton을 이용해서 Terraform으로 인프라를 자동 배포하는 파이프라인을 구성해보겠습니다. 저번 포스팅에서 소개했듯이 Tekton은 사용자가 자유롭게 취사선택할 수 있는 빌딩 블록을 제공하기 때문에 원하는 작업을 수행하는 파이프라인을 유연하게 구성할 수 있다는 장점이 있는데요. Terraform 파이프라인도 이러한 Tekton의 유연한 빌딩 블록의 장점을 활용해서 구성한 것이라 할 수 있겠습니다. 이번 Tekton 사용해보기의 두 번째 글을 통해서는 Tekton으로 Ter..

Devops

Tekton 사용해보기 (1) Tekton으로 쿠버네티스에서 CI/CD 파이프라인을 구성해보자

Tekton은 Linux Foundation과 CD Foundation 프로젝트의 일환으로 등장한 Cloud-native CI/CD Pipline 솔루션입니다. Tekton은 Kubernetes의 Extension으로 실행되기 때문에 기존 Kuberntes의 에코시스템을 그대로 활용하면서 사용할 수 있습니다. 이러한 점은 사용자에게 친숙한 Kubernetes 환경을 그대로 사용하면서 Tekton 파이프라인을 구성할 수 있게 해준다는 장점이 됩니다. 앞으로 Tekton을 사용해보는 여러 포스팅을 작성하고자 계획하고 있으며, 이 포스팅은 그 중 첫번째 글입니다. 특히 이번 포스팅에서는 이러한 Tekton을 어떻게 사용할 수 있는지, 시연 Demo와 사용 사례를 알아보도록 하겠습니다. 1. Tekton 소개 ..

Devops

GCP에서 Terraform을 사용하기 위한 Best Practice

본 포스팅에서는 GCP에서 Terraform을 사용하는 다양한 Best Practice에 대해서 알아보겠습니다. Terraform을 잘 사용하는 방법은 Naming convention같은 vendor specific하지 않은 분야도 있지만 서비스 어카운트의 위임이나 모듈 생성 부분같이 Google Cloud에서만 통용되는 분야도 존재하기 때문에 GCP에서 어떻게 Terraform을 사용해야 하는지 아는 것은 중요합니다. 그 외에 Google Cloud에서는 Cloud foundation 등 다양한 Terraform example 코드도 제공하고 있기 때문에, Terraform 이용자로써 Google Cloud에서 이용할 수 있는 것에는 무엇이 있는지 최대한 아는 것이 좋을 것입니다. 그러한 요지에서 이..

Devops

CKA(Certified Kubernetes Administrator) 자격증 시험 및 합격 후기

2022년 8월 12일 CKA 자격증 취득을 위한 Exam을 봤으며 다음날인 13일 합격 소식을 받았습니다. 본 포스팅에서는 제가 자격증 취득을 위해 어떤 준비를 했는지, 시험 과정에서는 어떤 점을 주의해야 하는지 자격증 준비에 도움될만한 글을 남기려고 합니다. 개인적으로 지금까지 봤던 자격증 시험 중에 가장 이질적이었던 유형의 시험이었기 때문에 당황스러운 일도 많았지만, 운이 좋게도 87점의 점수로 합격 컷을 넘을 수 있었습니다. 저는 약 두 달간 하루 한 시간씩 CKA 시험을 준비했으며, 시험 준비에 더 시간을 쏟으시는 분들은 이른 시간에 자격증을 취득하실 수 있을 것입니다. 이 글을 보시기 전에 글쓴이인 저는 약 1년의 Kubernetes 실무 경험이 있으며, 기본적인 Linux 및 명령어에 대한 ..

Devops

Kubernetes에 존재하는 Metrics Server란 무엇일까? 그리고 어떻게 해야 잘 사용할 수 있을까?

Kubernetes는 HPA(Horizontal Pod Autoscaling), VPA(Vertical Pod Autoscaling)이라는 Pod 자동 확장 기능을 제공해 필요에 따라 Pod의 수를, 혹은 리소스 자체를 자동으로 확장할 수 있는 기능을 제공하고 있습니다. 이 기능들의 특징은 자동확장을 메트릭, 즉 CPU 사용률과 같은 수치를 기준으로 사용한다는 것인데요. 그렇다면 자동확장 기능이 올바르게 작동하기 위해서는 메트릭을 실시간으로, 그리고 안정적으로 확보하는 것이 중요할 것입니다. Kubernetes에서 이 역할을 하는 것이 바로 Metric-server입니다. Metric-server는 Kubernetes 내에 존재하는 Pod의 메트릭을 실시간으로 수집해 kube-api 서버에 안정적으로 전..

Devops

Apache Kafka란? Apache Kafka를 Kubernetes에서 구성해보자

Apache Kafka는 Apache 재단의 오픈소스 Event Streaming Platform 입니다. Kafka를 사용하면 기존의 end-to-end로 묶여있던 복잡한 아키텍쳐를 단순한 이벤트 버스 중심의 아키텍쳐로 탈바꿈할 수 있다는 장점이 있습니다. 그렇다면 어떻게 Kafka가 이런 일을 할 수 있을까요? Apache Kafka의 공식 홈페이지에 따르면 Kafka는 Event Streaming을 위한 Platform이라고 말합니다. 그리고 Event Streaming이란 인간으로 따지면 바로 중추신경계에 해당하는 디지털 요소라고 정의하고 있습니다. 왜냐하면 Event streaming Platform이 DB, IoT, App 등 다양한 곳에서 오는 Event들을 real-time으로 모아서 그 ..

Devops

Mysql Operator로 Kubernetes 환경에서 Mysql DB 운영하기

Kubernetes 플랫폼이 대중화되면서 점점 다양한 워크로드들이 Kubernetes 위에서 실행되고 있습니다. 하지만 DB는 어떨까요? 어쩌면 유연하고 임시적인 Kubernetes 환경에서 내구성과 견고함이 중요한 DB는 언뜻 보기에 적절한 만남이 아닌 것 같아 보입니다. Statefulset라는 상태 저장을 목적으로 하는 오브젝트를 지원함에도 여전히 DB를 Kubernetes 환경에서 운영하는 것은 비효율적이고 견고해 보이지 않기 때문에 지금도 DB를 Kubernetes 환경에서 운영하는 것에 거부감을 가진 사람들이 많습니다. 하지만 이런 의심의 눈초리와 관계없이 기술은 점점 발전해서 결국은 Operator를 사용해 DB를 운영하는 패턴이 등장해 Kubernetes 환경에서도 DB를 안정적으로 운영할..

Seungwoo Lee
'Devops' 카테고리의 글 목록 (2 Page)