본문 바로가기

kubernetes14

쿠버네티스 시작하기(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.
쿠버네티스 시작하기(1) - 쿠버네티스란 무엇인가? 팀 내에서 스터디 프로젝트를 진행할 때 리눅스 환경에서 쿠버네티스를 활용하여 프로젝트 환경을 구성한 적이 있다. 그런 경험을 바탕으로 지금까지 공부하고 활용한 쿠버네티스에 대한 지식 및 경험을 블로그에 정리해 보고자 한다. 1. 쿠버네티스(kubernetes)란 무엇인가 쿠버네티스(kubernetes)는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고 빠르게 성장하는 생태계를 가지고 있다. 2. 쿠버네티스(kuberentes)가 필요한 이유는? 실제 프로덕션 애플리케이션은 여러 컨테이너(예를들면 Docker Container)에 걸쳐 있으며 이러한 컨테이너는 여러 서버 호스트에 배.. 2019. 12. 19.