✔︎ Openshift 란 ? 오픈시프트는 컨테이너 기반 소프트웨어의 배포 및 관리를 위한 레드헷의 제품이다. kubernetes는 하나의 물리 환경에서 여러개의 서비스를 제공할 수 있으나, 네트워크 bottleneck이 생기는 등 운영 관리에 대한 기회 비용과 관련한 문제가 발생해 많은 벤더들이 만든 소프트웨어가 있고, 그 중 하나가 오픈시프트이다. kubernetes로 서비스 제공을 하고 운영을 위해 opneshift (혹은 다른툴)를 사용한다. 오픈시프트의 목표는 '신속한 어플리케이션 개발을 위해 도커 컨테이너와 DevOps 도구를 사용해 kubernetes를 지원하는 운영환경을 제공하는 것'이다. ✔︎ Openshift 기능 개발자를 위한 소스 관리, 빌드, 배포를 위한 기능을 제공한다. UI, ..
✔️ Creating the Jenkins Pipeline ✔️ Creating a repository to host the sample app source code gceme 샘플 앱 복사본을 생성하여 클라우드 소스 저장소에 푸시한다. gcloud source repos create default 이 경고는 무시해도 된다. 이 저장소에 대한 과금은 발생하지 않는다. 샘플 앱 디렉토리를 자체 Git 저장소로 초기화한다. git init git config credential.helper gcloud.sh 다음 명령을 실행한다. git remote add origin https://source.developers.google.com/p/$DEVSHELL_PROJECT_ID/r/default Git 커밋의 ..
✔️ 실습에 앞서 이번 실습에서는 Jenkins와 함께 kubernetes 엔진에 지속적인 전달 파이프라인을 설정하는 방법을 배울 것이다. Jenkins는 공유 저장소에 코드를 자주 통합하는 개발자들이 사용하는 자동 서버이다. 실습을 통해 구축하는 솔루션은 다음과 같다. ✔️ 실습 목표 Kubernetes 엔진 클러스터에 Jenkins 어플리케이션 프로비저닝 Helm Package Manager를 통해 Jenkins 어플리케이션 설정하기 Jenkins 어플리케이션의 기능 학습 Jenkins 파이프라인 생성 및 연습 ✔️ Jenkins란 ? (간단하게) Jenkins는 빌드, 테스트 및 배포 파이프라인을 유연하게 조정할 수 있는 오픈소스 자동화 서버이다. Jenkins는 개발자들이 지속적인 제공으로 인해 ..
이번에는 Kubernetes Service에 대해 실습해보자 ✔️ Service 한번 생성된 Pod는 영속적으로 존재하지 않을 수 있다. 동작 실패나 준비 상태 점검 등 여러 가지 이유로 인해 중단되거나 시작될 수 있으며 이로 인해 다음과 같은 문제가 발생한다. Pod를 재가동하면 이전과는 다른 IP 주소를 가질텐데 그렇다면 Pods의 set와 통신하려면 어떻게 해야할까? 이것이 서비스가 필요한 이유이다. 서비스는 Pods에 안정적인 Endpoint를 제공한다. Service는 labels을 사용해 어떤 Pods가 동작 중인지를 확인한다. Pods에 올바른 라벨이 붙어있는 경우는 service에 의해 자동적으로 인식되어 공개된다. 서비스가 일련의 Pod에 제공하는 액세스 레벨은 서비스의 타입에 달려있다...
✔️ 실습에 앞서 실습 목표 Kubernetes Engine 을 사용하여 완전한 Kubernetes 클러스터를 프로비저닝하기 kubectl을 사용하여 Docker 컨테이너를 배포하고 관리하기 Kubernetes의 배포 및 서비스를 사용하여 애플리케이션을 마이크로서비스로 나누기 ✔️ GKE 환경 설정 Cloud Shell 환경에서 다음 명령을 입력하여 영역을 설정한다. gcloud config set compute/zone us-central1-b 영역을 설정한 후 이 실습에서 사용할 클러스터를 시작한다. gcloud container clusters create io ✔️ 샘플 코드 받기 Cloud Shell 명령줄에서 GitHub 저장소를 복제한다. gsutil cp -r gs://spls/gsp021..
✔️ Service Discovey MSA와 같은 분산 환경은 서비스 간의 원격 호출로 구성이 된다. 원격 서비스 호출은 IP 주소와 포트를 이용하는 방식이 있다. 클라우드 환경으로 변하면서 서비스가 오토 스케일링 등에 의해 동적으로 생성되거나, 컨테이너 기반의 배포로 인해 서비스의 IP가 동적으로 변경되는 일이 잦아졌다. 그래서 서비스 Client가 서비스를 호출할 때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능이 필요한데, 이것을 바로 서비스 디스커버리라고 한다. Service A의 인스턴스들이 생성이 될때, Service A에 대한 주소를 Service registry (서비스 등록 서버)에 등록해놓는다. Service A를 호출하고자 하는 클라이언트는 Service registry..