✔︎ Openshift 란 ? 오픈시프트는 컨테이너 기반 소프트웨어의 배포 및 관리를 위한 레드헷의 제품이다. kubernetes는 하나의 물리 환경에서 여러개의 서비스를 제공할 수 있으나, 네트워크 bottleneck이 생기는 등 운영 관리에 대한 기회 비용과 관련한 문제가 발생해 많은 벤더들이 만든 소프트웨어가 있고, 그 중 하나가 오픈시프트이다. kubernetes로 서비스 제공을 하고 운영을 위해 opneshift (혹은 다른툴)를 사용한다. 오픈시프트의 목표는 '신속한 어플리케이션 개발을 위해 도커 컨테이너와 DevOps 도구를 사용해 kubernetes를 지원하는 운영환경을 제공하는 것'이다. ✔︎ Openshift 기능 개발자를 위한 소스 관리, 빌드, 배포를 위한 기능을 제공한다. UI, ..
✔️ namespace란 ?! Namespace란 쿠버네티스 클러스터 내의 논리적인 분리 단위이자 오브젝트를 묶는 하나의 가상 공간 또는 그룹이다. 하나의 클러스터 내에 개발/운영/테스트 환경이 있다면 비슷한 이름의 수많은 오브젝트들이 생길 것이고 운영자와 사용자는 관리와 사용 측면에서 어려움을 겪게 된다. 쿠버네티스에서는 namespace를 통해 운영환경을 논리적으로 분리하여 운영할 수 있다. Namespace로 할 수 있는 것 사용자별로 네임스페이스 접근 권한을 다르게 운영할 수 있다. namespace 별로 리소스의 할당량을 지정할 수 있다. (ResourceQuota 사용) namespace 별로 리소스(Pod, Service)를 나눠서 관리할 수 있다. 주의해야할 점 namespace는 클러스터..
✔️ 실습에 앞서 실습 목표 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..
............... 이번에 EKS 실습을 완료하고 혹시나 하는 마음에 AWS 결제 대시보드에 접속하니 ;; 치킨 한마리 날라갔다... 원인을 찾아보니 EKS Cluster 생성할 때 default 설정 Cluster를 실수로 만들어 놓고 삭제를 안한 것.. ㅠ EKS Cluster 삭제 방법에 대해 알아보겠다 핵심부터 말하면 삭제 명령줄은 다음과 같다. eksctl delete cluster --region=[서비스 지역명] --name=[삭제할 클러스터명] 문제는 내가 default Cluster를 생성해버려서 클러스터명이 기억이 안난다는 것...;_; kubectl이 설치되어 있다면 다음 명령줄을 이용해 현재 서비스중인 노드들의 정보를 알 수 있다. kubectl get nodes 그런데 나..
✔️ Service Discovey MSA와 같은 분산 환경은 서비스 간의 원격 호출로 구성이 된다. 원격 서비스 호출은 IP 주소와 포트를 이용하는 방식이 있다. 클라우드 환경으로 변하면서 서비스가 오토 스케일링 등에 의해 동적으로 생성되거나, 컨테이너 기반의 배포로 인해 서비스의 IP가 동적으로 변경되는 일이 잦아졌다. 그래서 서비스 Client가 서비스를 호출할 때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능이 필요한데, 이것을 바로 서비스 디스커버리라고 한다. Service A의 인스턴스들이 생성이 될때, Service A에 대한 주소를 Service registry (서비스 등록 서버)에 등록해놓는다. Service A를 호출하고자 하는 클라이언트는 Service registry..
✔️ Service Object의 개념 쿠버네티스에서의 Service는 Pod들의 집합이며 동일한 서비스 동작을 구현하는 여러가지 Pod를 묶어 하나로 관리하는 오브젝트이다. [Kubernetes] Object 개념 ✔️ Kubernetes 구성 쿠버네티스는 크게 오브젝트(Object)와 오브젝트를 관리하는 컨트롤러(Controller)로 나눠져 있다. 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가진다. 오브젝트를 nice-engineer.tistory.com ✔️ Service Object의 등장 배경 1. 서비스를 위한 고정 IP의 필요성 서버는 문제가 생기면 서버를 재시작하고 서비스를 재시작하지만 Pod는 문제가 생기면 그 Pod를 삭제한 뒤 새로운 Pod를 생성한다. 따라서 Pod의 IP..