본문 바로가기

전체 글95

쿠버네티스 시작하기(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.
리눅스 모듈 관리(lsmod, modprobe, modinfo) 리눅스의 모듈은 리눅스 커널에서 필요한 시스템 관리기능들을 모두 커널에 포함시키지 않고, 필요에 따라서 추가하여 사용할 수 있도록 구혀된 매커니즘이다. 리눅스 모듈 확인 및 관리하기 위해서는 아래와 같은 명령어들이 존재한다. 1. lsmod 현재 리눅스 시스템에 설치된 모듈의 리스트를 확인하는 명령어다. 2. modprobe 리눅스 모듈을 관리하는 명령어다. 2-1. 옵션 옵션 없음 : 모듈을 추가한다. (사용방법 : modprobe [모듈명]) -l : 모든 모듈 목록을 출력한다. (사용방법 : modprobe -l) -r : 모듈을 제거한다. 의존성이 있는 모듈이 사용되고 있지 않으면 알아서 같이 제거한다. (사용방법 : modprobe -r [모듈명] -c: 모듈 관련 환경설정파일의 내용을 전부 출.. 2020. 1. 3.
쿠버네티스 시작하기(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.
리눅스(CentOS)계정에 root 권한 부여하기 1. 유저 생성 유저를 생성하고 비밀번호를 설정한다(이 글에서는 test라는 유저를 생성했다) 2. 권한 부여 /etc/passwd 파일에서 생성한 계정의 UID와 GID를 모두 0으로 변경한 후 저장한다. 3. root 그룹 포함 /etc/group 파일에서 생성한 계정을 root group에 포함시킨 후 저장한다. 2019. 12. 21.
쿠버네티스 시작하기(5) - CentOS에 쿠버네티스 설치하기 이전 장에서 쿠버네티스(Kubernetes)의 개념 및 아키텍쳐에 대해 정리를 해 보았다. 이번 장에서는 이제 실제 리눅스(CentOS) 환경에서 쿠버네티스를 설치를 해보도록 하겠다. 1. 쿠버네티스 설치 전 준비사항 우선 쿠버네티스를 설치하기 위해서는 아래와 같은 준비가 필요하다 1-1. 서버, OS 준비 쿠버네티스 설치를 위한 서버와 OS를 준비하자. 필자는 vultr.com 에서 VPS를 생성해서 서버를 구성하였다. (마스터서버보다 노드서버가 사양이 더 좋은 이유는 마스터 서버를 아래와 같이 구성 후 단일 서버로 운영하다가 노드서버를 나중에 추가하게 되었는데, 이것저것 설치하다보니 생각보다 리소스가 많이 소모되어 노드서버는 리소스를 좀 크게 잡게 되었다.) 마스터서버 : CPU 2core, Memo.. 2019. 12. 21.