본 내용은 2022년 10월 진행한 Google Cloud StudyJab에서 제공하는 Coursera의 Architecting with Google Kubernetes Engine: Foundations Architecting with Google Kubernetes Engine: Workload Architecting with Google Kubernetes Engine: Productions 내용을 정리하였음 Foundation Cloud Computing and Google Cloud 클라우드의 5가지 fundamental On-demand and self-service: No human intervention needed to get resources 주문형, 셀프 서비스. 별도 사람의 개입 없..
온프로미스 환경의 쿠버넷에서 서비스를 사용할 때 LoadBalancer(이하 LB)는 사용할 수 없다. 쿠버넷은 서비스의 LB 기능을 외부의 역할로 두었고 퍼블릭 클라우드 환경에서는 각 클라우드 벤더사들이 자체적으로 제공하는 LB가 있지만 온프로미스 설정을 위해 별도로 공개하진 않았다. CNCF Landscape의 Orchestration & Management - Service Proxy 항목을 보면 온프로미스에서 설치가능한 오픈소스 프로젝트 2개가 있는데 MetalLB와 PorterLB 이다. 둘다 쿠버넷의 Service에 필요한 LB 를 제공해주는데 git star를 보면 알겠지만 MetalLB가 사용자가 더 인기가 많아?보인다. MetalLB와 PorterLB의 설정 문서를 대충 훑어봤는데 LB로..
istio는 제공하는 다양한 기능을 시각화하기 위해 여러가지 툴을 제공한다. 대표적으로 네트워크 시각화 - Kiali, 트래픽 트레이싱(추적) - jaeger, 리소스 모니터링 - Prometheus/Grafana 이 있다. Kiali kiali는 service mesh의 전체 네트워크 토폴로지와 서비스 인스턴스 상태, 서비스간의 네트워크 트래픽을 시각화한다. kiali를 사용해서 현재 어떤 서비스에 문제가 발생했고, 어떻게 라우팅 되고있는지 시각화하여 확인할 수 있다. kiali 또한 bookinfo 예제와 동일하게 쉽게 구성할 수 있도록 yaml파일로 배포하고 있다. $ kubectl -f samples/addons/kiali.yaml $ kubectl -n istio-system get all -l..
Istio 설치 패키지는 Bookinfo 예제와 같이 제공된다. Bookinfo는 4개의 서비스로 이루어진 MSA 예제이다. Istio의 여러가지 기능들을 테스트할 수 있도록 폴리글랏 구조로 버저닝되어있는 4가지 서비스를 제공한다. productpage : python project. 제품 설명 페이지를 완성하기 위해 details, reviews 서비스를 호출하는 서비스 details : ruby project. 책 정보 제공 서비스 reviews : java. 책 리뷰 제공 서비스. rating 서비스를 호출한다. ratings : nodejs. 책의 ranking 정보를 제공한다. 버저닝 관련된 테스틑 할 수 있도록 v1, v2, v3가 제공된다. v1 : ratings 서비스를 호출하지 않는 버전..
Service Mesh 기존 모놀리스 시스템을 도메인, 운영등의 여러 기준에 따라 분할해놓은 MSA(MicroService Architecture)는 비즈니스 서비스를 제공하기 위해 수많은 마이크로 서비스들이 내-외부간 네트워크 통신을 하게 된다. 수많은 서비스들간의 네트워크 통신을 관리하기위해 가시화하고 통신에 대한 보안, 추적, 장애방지 등을 관리하기 위해 나온것이 Service Mesh 개념이다. 위 그림에서 볼 수 있는 Amazon, Netflix의 서비스간 네트워크 연결을 보면 알수 있듯이 이러한 수많은 연결이 현재 어떻게 이루어져 있으며 어디서 문제가 발생했는지, 그 문제가 어디까지 전파되고 있는지 또는 서비스 인스턴스가 골고루 사용되고 있는지, 보안연결은 정상적으로 제공되고 있는지에 대한 문..
docker는 호스트에서 server/client 구조로 구동됨. 모든 도커 CLI 명령어의 결과물은 호스트의 도커 서버와 API 통신 결과물을 반환함. 도커 서버와 클라이언트는 소켓으로 통신하는데 별도로 설정해주지 않으면 기본 unix socket을 사용해서 통신하기 때문에 일반적으로 사용하던 netstat, ss 옵션을 사용해서는 리스팅되지 않음. 아래 명령어를 사용해서 리스팅할 수 있음. ss -x | grep containerd network 통신을 위한 network port로 노출시키기 위해서 실행 스크립트를 변경해야 함. vi /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// -- containerd=/run/con..
Ceph 여러 호스트의 여러 스토리지들을 클러스터링해서 오브젝트 스토리지, 파일 스토리지, 블록 스토리지 등의 형태로 제공할 수 있도록 해주는 클러스터링 도구이다. Whether you want to provide Ceph Object Storage and/or Ceph Block Device services to Cloud Platforms, deploy a Ceph File System or use Ceph for another purpose, all Ceph Storage Cluster deployments begin with setting up each Ceph Node, your network, and the Ceph Storage Cluster. 크게 4개의 요소로 클러스터가 구성된다. Mon..