본문 바로가기

분류 전체보기

OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 8. OKE 모니터링 쿠버네티스에 대한 모니터링은 크게 ①쿠버네티스 클러스터에 대한 모니터링, ②클러스터를 구성하는 노드들에 대한 모니터링, ③컨테이너에 대한 모니터링, ④컨테이너 안에서 구동되는 어플리케이션에 대한 모니터링 등으로 구분할 수가 있다. 이 중에서 쿠버네티스 클러스터와 해당 노드들에 대한 모니터링은 OKE에서 제공하는 Built-in 모니터링으로도 확인할 수 있는 내용들이 있다. 먼저 OKE Built-in 모니터링에 대해 살펴본다. 그리고 오픈 소스 Prometheus, Grafana를 이용하여 쿠버네티스 클러스터, 해당 노드, 컨테이너(파드)를 모니터링하는 방법에 대해 살펴볼 것이다. OKE는 관리 콘솔에서 클러스터에 대한 자체 모니터링 기능을 제공한다. 클러스터 상세 화면 하단에 보면 아래와 같이 “API..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 7. Wercker를 이용한 어플리케이션 배포 이제 OCI 레지스트리에서 도커 이미지를 가져와서 OCI 쿠버네티스 클러스터에 Wercker 파이프라인으로 배포할 차례이다. 이를 위해 사전에 해야 할 일이 있다. 참고 사이트: Adding a Service Account Authentication Token to a Kubeconfig File 앞서 OCI 쿠버네티스 클러스터에 kubectl 명령으로 접근하기 위해서 kubeconfig 파일을 설정했었고, 여기에는 OCI CLI가 자동으로 생성한 해당 유저만 사용할 수 있는 인증 토큰이 포함되어 있다. 이 인증 토큰은 개별 유저가 클러스터에 kubectl이나 쿠버네티스 대쉬보드에 접근할 때 인증하는데 사용이 된다. 그런데 이렇게 자동으로 생성된 인증 토큰은 Wercker, Jenkins같은 CI/CD ..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 6. Wercker를 이용한 어플리케이션 빌드 도커를 사용한 어플리케이션 개발은 크게 구현 – 단위테스트 – 어플리케이션 빌드 – 도커이미지 빌드 – 도커 레지스트리 등록에 이르는 과정을 반복하는 형태가 된다. 이러한 반복 과정을 수작업으로 진행하게 되면 실수가 발생하기 쉽고, 시간도 오래 걸릴 수 있기 때문에 CI/CD 서비스를 통해 이 과정들을 자동화를 하고 시간을 절약한다. CI/CD(Continuous Integration/Continuous Delivery)에서 CI는 소프트웨어 개발을 할 때 테스트 단계에서만 테스트를 하는 것이 아니라 일상적으로 빌드와 테스트를 수행하여 실제 동작을 확인하는 사이클을 수행하면서 소프트웨어의 품질을 관리하는 것을 말하며 “지속적 통합”이라고 한다. 일반적으로 CI를 위한 전용 소프트웨어나 SaaS를 이용하여..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 5. OCI 레지스트리에 이미지 업로드 & 다운로드 설정 도커 이미지를 보관은 앞서 살펴본 Docker Hub나, 또는 Red Hat의 Quay.io 같은 퍼블릭 레지스트리 서비스를 이용하는 것이 편리하다. 그러나 네트웍 지연, 보안 등의 이슈로 인해 퍼블릭 레지스트리를 사용하지 못하는 경우도 있다. 한번 내려받은 도커 이미지는 로컬 호스트에 저장되지만, 클라우드 환경과 같이 서버의 생성과 파기가 자주 일어나는 환경에서는 이미지를 새로 내려받는 상황이 흔하게 발생할 수 있으며, 이는 배포 시간에 영향을 줄 수 있는 상황이다. 또한 Docker Hub, Quay.io에 비공개 레지스트리 기능이 있기는 하지만, 퍼블릭 레지스트리에 운영환경에 배포할 어플리케이션 이미지를 저장하는 것도 보안 측면에서는 불안한 요소가 있는 것도 사실이다. 이러한 이유로 별도의 도커 레..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 4. OKE 클러스터에 샘플 웹서버 배포 참고 사이트 - Kubernetes Tips: Create Pods With Imperative Commands in 1.18 쿠버네티스 클러스터에 자원을 생성하는 방식은 명령어 방식(Imperative)과 선언 방식(Declarative)이 있다. 선언 방식 접근 방식은 YAML 또는 JSON 형식으로 매니페스트(manifest) 파일로 “kubectl apply” 명령을 이용하여 클러스터 자원을 만드는 방식으로 주로 운영 환경에서 사용한다. 이에 반해 명령어 방식은 명령어를 통해 클러스터 자원을 관리하는 것으로 매니페스트 파일을 필요로 하지 않는다. 간편하고 빠른 접근 방식이다. 먼저 명령어 방식으로 클러스터 자원을 만들어 볼텐데, 클러스터 버전 1.18을 기준으로 “kubectl run” 명령의 작..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 3. OCI 쿠버네티스 배포, 사용 환경 설정 OCI Container Engine for Kubernetes(OKE)를 이용하여 쿠버네티스 클러스터를 생성 및 관리하기 위해서는 먼저 관련 OCI 자원을 사용할 수 있는 권한이 필요하다. 이를 위해 OCI 사용자는 ① 해당 Tenancy의 Administrator 그룹 소속이거나, 또는 ② 클러스터, 인스턴스, VCN등을 읽거나 사용, 또는 관리할 수 있는 권한 부여가 필요하다. 클러스터 생성을 위해 부여할 개별 권한은 아래 페이지을 참조한다. Policy Configuration for Cluster Creation and Deployment 여기서는 Administrator 그룹 유저로 테스트를 진행했으므로, 별도 그룹 생성 및 권한 부여 작업을 하지는 않았다. 그리고 2020년 3월 12일 이전..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 2.쿠버네티스 및 OCI 쿠버네티스(OKE) 개요 그리스어로 키잡이를 뜻하는 쿠버네티스(Kubernetes)는 구글의 사내 운영 시스템인 Borg를 오픈소스로 만든 것이다. 2014년 중순에 구글에 의해 처음 발표되었다. 쿠버네티스 v1.0은 2015년 7월 21일에 출시되었다. 쿠버네티스 v1.0 출시와 함께 구글은 리눅스 재단과 파트너십을 맺고 클라우드 네이티브 컴퓨팅 재단(Cloud Native Computing Foundation, CNCF)을 설립하였으며 쿠버네티스를 시드 테크놀로지(seed technology)로 제공하였다. (위키백과 쿠버네티스) 클러스터링 등과 같이 여러대의 호스트, 또는 컨테이너를 묶어 컨테이너의 오케스트레이션 기능을 제공하는 도커 기술에는 도커 스웜(Swarm, Swarm mode key concepts), 컴포즈(Do..
OCI를 이용한 쿠버네티스, Wercker 쉬운 샘플 - 1. Introduction "OCI를 이용한 처음 Kubernetes, Wercker 쉬운 샘플" 이라는 제목의 시리즈로 Oracle Cloud Infrastructure (OCI)를 이용해서 쿠버네티스와 CI/CD 툴인 Wercker의 기본적인 사용법을 살펴보겠습니다. 최종적으로는 GitHub 어플리케이션 소스의 변경 사항이 발생하면 Wercker에서 이를 도커 이미지로 빌드하여 OCI Registry에 업로드하고, 다시 이를 다운로드하여 OCI Kubernetes 배포하는 것까지 진행합니다. 그리고 Prometheus와 Grafana를 이용해서 모니터링 하는 것까지 진행합니다. 사전에 생성이 필요한 사항 - Oracle Cloud Infrastructure 계정 - https://cloud.oracle.com/ (Wercker..