본문 바로가기

쿠버네티스15

쿠버네티스 시작하기(9) - CI/CD 파이프라인 만들기(3/3) - Gitlab webhook 설정 및 Slack 연동 이전 글에서 쿠버네티스 클러스터에 올라간 Jenkins와 Gitlab간의 연동을 시킨 후 컨테이너 배포까지 수행해 보았다. 이번 글에서는 Gitlab으로 로컬PC의 소스 Push/Merge 시 자동으로 Jenkins에서 빌드/배포가 수행되는 프로세스를 만들어 볼 것이고, 빌드/배포가 완료된 후에는 Slack을 통해 알람 메시지를 전송할 것이다. 1. 시작하기 전에 현재까지 완성된 빌드/배포 프로세스를 보면 아래와 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 -> 완료 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 ->미완료 jenkins에서 Webhook을.. 2020. 1. 11.
쿠버네티스 시작하기(8) - CI/CD 파이프라인 만들기(2/3) - Gitlab & Jenkins & Docker hub 연동 이전 장에서 쿠버네티스를 활용하여 jenkins를 설치하고 환경설정을 진행해 보았다. 이번 장에서는 설치된 jenkins와 Git Repository를 연동하여 Git Repository에 있는 소스를 서버로 전송하여 빌드/배포를 진행하고, 빌드/배포가 완료되면 Slack을 통해 알람 메시지를 보내는 프로세스를 만들어 볼 것이다. 1. 빌드/배포 순서 빌드/배포의 순서를 정리해보면 다음과 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 jenkins에서 Webhook을 통해 소스 변경 사실을 인지한 후, 빌드툴(m.. 2020. 1. 6.
쿠버네티스 시작하기(7) - CI/CD 파이프라인 만들기(1/3) - 쿠버네티스 클러스터에 jenkins 설치 및 설정 이번 장에서는 설치한 쿠버네티스 위에 CI/CD 파이프라인을 만들 것이다. CI/CD 파이프라인을 만드는 이유는 간단하다. 로컬에서 개발한 소스를 수작업으로 서버에 올린 후 쿠버네티스 클러스터에 컨테이너로 배포한다는 것은 상상할 수 없기 때문이다. 때문에 배포 파이프라인을 만들어서 로컬에서 어플리케이션 개발 후 Git Repository로 Push/Merge를 하게 되면 소스가 자동으로 서버 내 쿠버네티스 클러스터로 배포가 되게끔 할 것이다. 우선 CI/CD 파이프라인을 구축 하기 전에 CI/CD에 대한 정확한 이해가 필요하다. CI/CD에 대한 정확한 이해는 이 포스트(https://twofootdog.tistory.com/16)를 참고해보도록 하자. 1. CI/CD 파이프라인 구성도 앞으로 생성할 C.. 2020. 1. 2.
쿠버네티스 시작하기(6) - 쿠버네티스 기본 명령어 kubectl은 쿠버네티스 클러스터에서 명령을 내리는 CLI(Command Line Interface)다. 이번 장에서는 쿠버네티스를 운영할 때 가장 많이 쓰이는 kubectl 기본 명령어에 대해서 정리를 할 것이다. 만약 쿠버네티스의 기본 명령어에 대해서 이미 알고 있거나, 실습을 통해서 차근차근히 배워 나가고 싶다면 이번 장은 Skip해도 괜찮을 것 같다. 1. kubectl 기본 문법 kubectl 의 기본 문법은 아래와 같다. # kubectl [COMMAND] [TYPE] [NAME] [FLAGS] 2. [COMMAND] 하나 혹은 여러 리소스에 대한 Operation을 입력한다. COMMAND 설명 사용 방법 create 파일이나 stdin으로 리소스 생성 kubectl create -f FI.. 2019. 12. 27.
쿠버네티스 시작하기(5) - CentOS에 쿠버네티스 설치하기 이전 장에서 쿠버네티스(Kubernetes)의 개념 및 아키텍쳐에 대해 정리를 해 보았다. 이번 장에서는 이제 실제 리눅스(CentOS) 환경에서 쿠버네티스를 설치를 해보도록 하겠다. 1. 쿠버네티스 설치 전 준비사항 우선 쿠버네티스를 설치하기 위해서는 아래와 같은 준비가 필요하다 1-1. 서버, OS 준비 쿠버네티스 설치를 위한 서버와 OS를 준비하자. 필자는 vultr.com 에서 VPS를 생성해서 서버를 구성하였다. (마스터서버보다 노드서버가 사양이 더 좋은 이유는 마스터 서버를 아래와 같이 구성 후 단일 서버로 운영하다가 노드서버를 나중에 추가하게 되었는데, 이것저것 설치하다보니 생각보다 리소스가 많이 소모되어 노드서버는 리소스를 좀 크게 잡게 되었다.) 마스터서버 : CPU 2core, Memo.. 2019. 12. 21.
쿠버네티스 시작하기(4) - 쿠버네티스 아키텍쳐 이전 장에서 쿠버네티스(kubernetes) 클러스터의 구성요소에 대해 정리해 보았다. 이제 실제로 쿠버네티스가 어떤 아키텍쳐로 구현이 되어 있는지 알아보도록 하자. 아키텍쳐를 이해하면 쿠버네티스 사용법을 이해하는데 도움이 된다. 아래는 쿠버네티스의 구조를 간단한 그림으로 나타낸 것이다. 쿠버네티스는 크게 전체 클러스터를 관리하는 마스터(Master)와 컨테이너가 배포되는 노드(Node)로 구성되어 있다. 모든 명령은 마스터의 API서버를 호출하고 노드는 마스터와 통신하면서 필요한 작업을 수행한다. 특정 노드의 컨테이너에 명령하거나 로그를 조회할 때도 노드에 직접 명령하는 것이 아니라 마스터에 명령을 내리고 노드에 접속하여 대신 결과를 응답한다. 1. 마스터(Kubernetes Master) 쿠버네티스 .. 2019. 12. 20.
쿠버네티스 시작하기(2) - 쿠버네티스 구성요소(1/2) 이번 장에서는 쿠버네티스의 개념에 대해 정리를 해보고자 한다. 쿠버네티스 클러스터의 구성요소와 컨셉만 잘 이해하면 쿠버네티스를 쉽게 이해하고 사용할 수 있다. 1. 마스터와 노드 쿠버네티스를 이해하기 위해서는 우선 클러스터의 구조를 이해할 필요가 있다. 클러스터 전체를 관리하는 마스터(Master)가 존재하며, 컨테이너가 배포되는 머신인 노드(Node)가 존재한다. (그런데 막상 운영을 하다보면 마스터(Master)에도 컨테이너 배포가 가능하다.) 2. 오브젝트 쿠버네티스는 가장 기본적인 구성단위가 되는 기본 오브젝트(Basic Object)와, 이 기본 오브젝트를 생성하고 관리하는 추가적인 기능을 가진 컨트롤러(Controller)로 이루어진다. 2-1. 오브젝트 스펙(Object Spec) 오브젝트들.. 2019. 12. 19.