Kubernetes & Docker
[Amazon] EC2 인스턴스에 S3 스토리지 마운트하기
구성환경 EC2 인스턴스 3대입니다. OS는 Redhat CentOS 7.8 version을 사용했습니다. Amazon S3에 파일 시스템을 위한 플러그인들 S3FS-FUSE 이것은 무료 오픈 소스 FUSE 플러그인이며 주요 Linux 배포판 및 MacOS를 지원하는 사용하기 쉬운 유틸리티입니다. S3FS는 또한 성능을 향상시키기 위해 파일을 로컬로 캐싱합니다. 이 플러그인은 단순히 Amazon S3 버킷을 시스템의 드라이브로 표시합니다. ObjectiveFS ObjectiveFS는 Amazon S3 및 Google Cloud Storage 백엔드를 지원하는 상용 FUSE 플러그인입니다. 전체 POSIX 호환 파일 시스템 인터페이스를 제공한다고 주장하므로 추가 기능이 전체 파일을 다시 쓸 필요가 없습니다..
[Kubernetes]쿠버네티스 CI/CD에 대해서
DevOps DevOps란 개발(Dev)과 운영(Ops)을 따로 구분짓지않고 함께하는 것을 의미합니다. CI(Continuous Integration) 지속적 통합(Continuous Integration)은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식입니다. 지속적 통합은 모든 개발을 완료한 뒤에 소프트웨어의 질적 향상과 소프트웨어를 배포하는 데 걸리는 시간과 비용을 줄이는데 초점이 맞추어져 있습니다. 대표적인 CI 툴은 Jenkins가 있습니다. 핀다에서는 Jenkins를 통해서 새로운 코드를 테스트하고, 빌드한 후 빌드 파일을 Docker image로 만들어 쿠버네티스 시스템에서 새로운 코드가 돌아갈 수 있도록..
[Kubernetes]쿠버네티스 설치부터 배포까지(kubespray 이용)
멀티 노드를 구현하기 위해서는 여러 대의 서버가 있거나 혹은 가상머신을 설치하여 여러 대의 가상 서버를 구축해야합니다. 1. 가상머신 설치(리눅스기반 설치) 1-1. Virtual Box 설치 https://www.virtualbox.org/wiki/Download_Old_Builds_5_2(Virtual Box 설치 링크) 위 링크 접속 후 메인 PC의 OS에 맞는 것을 다운로드! 1-2. CentOS7 ISO 설치 https://www.centos.org/download/(centOS7 설치 링크) x86_64 ISO 클릭! 저기서 아무곳 클릭! (네이버 클릭했음) 저기서 맨 위에있는 iso 파일 다운로드 했습니다. 적은 용량으로 하고싶다면 밑에 Minimal 버전 iso 파일 다운로드! 나머지 Vi..
[Kubernetes]쿠버네티스 컨트리뷰터 되기 : 쿠버네티스 문서에 기여하기
쿠버네티스 컨트리뷰터 되기 3000명 가까이 되는 사람들중 내가 끼어있다면?.. 쿠버네티스의 깃허브에서 website 레파지토리는 공식문서의 코드들을 담고있습니다. https://github.com/kubernetes/website(쿠버네티스 웹사이트 깃허브 레파지토리) 레파지토리를 fork 한 다음에 번역이 되지 않은 페이지를 번역해서 컨트리뷰터가 되보겠습니다. 쿠버네티스 웹사이트 레파지토리에는 많은 브랜치들이 있습니다. 그 중 저희가 건드릴 브랜치는 dev-1.18-ko.10 이라는 이름의 브랜치입니다. 뒤에 ko는 korea를 의미합니다.(브랜치는 버전마다 계속 바뀝니다.) https://kubernetes.io/ko/docs/contribute/(쿠버네티스 문서에 기여하기) CNCF 동의서 서명 ..
[Kubernetes 공식문서 파헤치기] 고가용성 테스트(pod 부하분산, auto scaler 적용하기)
앞의 내용에서 이어서 진행합니다. [Kubernetes 공식문서 파헤치기] Redis를 사용한 PHP 방명록 애플리케이션 배포하기 + PV, PVC, Affinity 사용해보기 고가용성 고가용성이란 "서버, 네트워크, 프로그램같은 시스템이 절대 고장나지 않고 오랫동안 유지하는 능력"을 얘기합니다. 그럼 쿠버네티스에서의 고가용성 또한 다르지 않을겁니다. 그럼 쿠버네티스가 고장나는 상황은 무엇일까요? 1. 사용자가 많아져서 서버가 제 역할을 하지 못한다. 2. 애플리케이션이 동작하는 도중에는 예상치못한 중지들이 생길 수 있다. 3. 관리자가 쿠버네티스를 관리하다가 실수로 pod, node들을 중지시킬 수 있다. 4. 클라우드 제공 업체에서 제공해주는 클러스터에 대한 자원이 부족할 때 해결 방안 1번에 대한 ..
[Kubernetes 공식문서 파헤치기] Redis를 사용한 PHP 방명록 애플리케이션 배포하기 + PV, PVC, Affinity 사용해보기
원래는 react와 node js, mysql을 이용한 웹 어플리케이션을 돌리기로 마음을 먹었었지만, 1. 가상머신의 고정 용량으로 설정한 하드디스크의 용량 부족.. 2. 메인 컴퓨터의 docker 오류와 docker image build가 안됨 이러이러한 이유들로 kubernetes에서 제공해주는 image들을 사용하기로 마음먹고 공식문서에 있는 Redis와 PHP로 방명록 애플리케이션을 만드는 것으로 쿠버네티스의 고가용성을 테스트하기로 마음먹었습니다. 전체적인 틀 1. 방명록을 저장하는 단일 인스턴스 Redis 마스터 (pod 한 개) 2. 읽기를 제공하는 여러 개의 복제된 Redis 인스턴스 (pod 두 개) 3. 여러 개의 웹 프론트엔드 인스턴스 (pod 세 개) 까지가 공식문서에 나와있는 것입니..
[O'REILLY] 쿠버네티스 패턴 (Kuerbernetes Patterns)
책 쿠버네티스 패턴을 읽고 나 혼자 정리한 글 6장 자동 배치 패턴 자동 배치 패턴 = 스케줄러의 핵심 기능 스케줄러의 기능 = 노드에 신규 파드를 할당해주는 기능 컨테이너는 컨테이너 서로 간의 의존성 컨테이너와 노드간의 의존성 자원 요구사항 변경사항등등 시간이 지남에 따라 다양하게 변하기 때문에 스케줄링을 하는 것 = 이동 목표물에 과녁을 조준하는 것과도 같다고 말한다. 스케줄러의 주요 업무 API서버로부터 새로 생성된 파드 정의를 조회, 파드를 노드에 할당. 스케줄링이 정상적으로 진행되려면 몇 가지의 요구 조건이 충족되어야 한다. 1. 충분히 가용가능한 노드 자원 모든 노드에는 파드를 실행할 수 있는 용량이 있고, 스케줄러는 파드가 요청한 자원의 총합이 할당 가능한 노드의 용량보다 작다는 것을 확인해..
Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 4편
아래의 포스트들은 저 혼자 kubernetes에 대한 이해와 실습을 위해서 시행착오들을 적어놓은 포스트들입니다. 완벽하지 않고 순서가 뒤죽박죽임을 알아주시고 참고해주시면 감사하겠습니다! Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 1. React 설치 2. Node.js 설치 3. React와 Node.js 동시 구동 4. mySQL image pull하기 5. mySQL, React, Node.js 연동하기 React와 Node.js 애플리케이션 Docker image build 6. React-Node.js image 생성하기 Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편 7. 가상머신을 통해 멀티 노드 환경..
Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 3편
아래의 포스트들은 저 혼자 kubernetes에 대한 이해와 실습을 위해서 시행착오들을 적어놓은 포스트들입니다. 완벽하지 않고 순서가 뒤죽박죽임을 알아주시고 참고해주시면 감사하겠습니다! Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 1. React 설치 2. Node.js 설치 3. React와 Node.js 동시 구동 4. mySQL image pull하기 5. mySQL, React, Node.js 연동하기 React와 Node.js 애플리케이션 Docker image build 6. React-Node.js image 생성하기 Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편 7. 가상머신을 통해 멀티 노드 환경..
Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 2편
아래의 포스트들은 저 혼자 kubernetes에 대한 이해와 실습을 위해서 시행착오들을 적어놓은 포스트들입니다. 완벽하지 않고 순서가 뒤죽박죽임을 알아주시고 참고해주시면 감사하겠습니다! Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 1. React 설치 2. Node.js 설치 3. React와 Node.js 동시 구동 4. mySQL image pull하기 5. mySQL, React, Node.js 연동하기 React와 Node.js 애플리케이션 Docker image build 6. React-Node.js image 생성하기 Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편 7. 가상머신을 통해 멀티 노드 환경..
Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편
아래의 포스트들은 저 혼자 kubernetes에 대한 이해와 실습을 위해서 시행착오들을 적어놓은 포스트들입니다. 완벽하지 않고 순서가 뒤죽박죽임을 알아주시고 참고해주시면 감사하겠습니다! Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 1. React 설치 2. Node.js 설치 3. React와 Node.js 동시 구동 4. mySQL image pull하기 5. mySQL, React, Node.js 연동하기 React와 Node.js 애플리케이션 Docker image build 6. React-Node.js image 생성하기 Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편 7. 가상머신을 통해 멀티 노드 환경..
React와 Node.js 애플리케이션 Docker image build하기
아래의 포스트들은 저 혼자 kubernetes에 대한 이해와 실습을 위해서 시행착오들을 적어놓은 포스트들입니다. 완벽하지 않고 순서가 뒤죽박죽임을 알아주시고 참고해주시면 감사하겠습니다! Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 1. React 설치 2. Node.js 설치 3. React와 Node.js 동시 구동 4. mySQL image pull하기 5. mySQL, React, Node.js 연동하기 React와 Node.js 애플리케이션 Docker image build 6. React-Node.js image 생성하기 Kubespray와 Ansible을 이용한 Kubernetes 설치하기 - 1편 7. 가상머신을 통해 멀티 노드 환경..