study/클라우드&쿠버네티스 7

쿠버네티스 Health Check

Health Check 쿠버네티스는 각 컨테이너의 상태를 주기적으로 체크해서, 문제가 있는 컨테이너를 자동으로 재시작하거나 또는 문제가 있는 컨테이너(Pod를) 서비스에서 제외하는 기능 Liveness probe : 컨테이너가 살아 있는지 아닌지를 체크하는 방법 Readiness probe : 컨테이너가 서비스가 가능한 상태인지를 체크하는 방법 Probe types Liveness probe와 readiness probe는 컨테이너가 정상적인지 아닌지를 체크하는 방법으로 다음과 같이 3가지 방식을 제공한다. Command probe : 컨테이너의 상태 체크를 쉘 명령을 수행으로 체크 HTTP probe : HTTP GET을 이용하여, 컨테이너의 상태를 체크 TCP probe : 지정된 포트에 TCP 연결..

쿠버네티스 아키텍처 (마스터, 노드)

쿠버네티스는 크게 마스터(Master)와 노드(Node) 두 개의 컴포넌트로 분리 마스터(Master) 마스터는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할 etcd, kube-apiserver, kube-scheduler, kube-controllermanager로 구성 Kube-apiserver: 쿠버네티스 API를 제공하며, 클러스터의 모든 작업을 조율합니다. etcd: 클러스터의 모든 구성 데이터를 안전하게 저장하는 분산형 키-값 저장소입니다. Kube-scheduler: 새로운 Pod을 어떤 노드에 배치할지 결정하는 역할을 합니다. Kube-controller-manager: 클러스터의 상태를 감시하고 제어하는 여러 컨트롤러를 실행합니다. 노드(Node) 노드는 파드나 컨테..

쿠버네티스 (오브젝트, 컨트롤러)

쿠버네티스 오브젝트 (Kubernetes Objects) 쿠버네티스는 상태를 관리하기 위한 대상을 오브젝트로 정의합니다. 쿠버네티스 오브젝트는 영속성을 가지는 개체이며 쿠버네티스는 클러스터의 상태를 나타내기 위해 이 개체를 이용합니다. 어떤 컨테이너화된 애플리케이션이 동작 중인지 (그리고 어느 노드에서 동작 중인지) 애플리케이션이 이용할 수 있는 리소스 애플리케이션이 어떻게 재구동 정책, 업그레이드, 그리고 내고장성과 같은 것에 동작해야 하는지에 대한 정책 기본 오브젝트(Basic object), 컨트롤러(Controller), 오브젝트 스펙 및 메타 정보로 구성 오브젝트는 사용자가 쿠버네티스에 바라는 상태(desired state)를 의미하고 컨트롤러는 객체가 원래 설정된 상태를 잘 유지할수있게 관리하..

마이크로서비스 아키텍처 설계 (구성 요소, 고려 사항)

*마이크로서비스 개념 https://sumni.tistory.com/235 데브옵스(DevOps)와 마이크로서비스(microservices) 개념, 특징 데브옵스 데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소 sumni.tistory.com 마이크로서비스 아키텍쳐 구성요소 관리 컨테이너: 개별 서비스 인스턴스에 대한 컨텍스트(실행 환경) 제공 및 인 수명주기 관리. 가상 컴퓨터, Docker 컨테이너 또는 프로세스로 구현된 관리 컨테이너 사용. 외부 게이트웨이: MSA 구현은 API형태로 기능을 노출. 이런 서비스에 대한 액세스를 관리하고 트래픽 관리 및 보안 정책 적용..

컨테이너 오케스트레이션, 쿠버네티스(Kubernetes)

컨테이너 오케스트레이션(Container Orchestration) 여러 컨테이너를 자동으로 배포, 확장, 관리, 네트워킹, 서비스 발견 등을 수행하는 툴이나 플랫폼을 나타냅니다. (컨테이너 기반의 가상화 환경을 운영 관리) 이는 대규모의 컨테이너화된 애플리케이션을 효과적으로 관리하고 운영하는 데 도움을 줍니다. *주요 컨테이너 오케스트레이션 도구로는 Kubernetes, Docker Swarm, Apache Mesos, Amazon ECS 특징 자동 배포 및 스케일링: 컨테이너를 자동으로 배포하고 필요에 따라 스케일링할 수 있습니다. 새로운 컨테이너 인스턴스를 추가하거나 제거하여 애플리케이션의 부하에 대응할 수 있습니다. 서비스 발견 및 로드 밸런싱: 컨테이너가 동적으로 생성되고 제거될 때, 오케스트레..

가상화(Virtualization)와 컨테이너(Containerization)

가상화의 발전 과정 전통적인 배포 : 물리서버 기반 애플리케이션 실행 가상화된 배포 : 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM) 실행 컨테이너 개발 : VM과 유사, 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유 가상화와 컨테이너 둘 다 확장성과 유연성을 제공하며, 클라우드 환경이나 마이크로서비스 아키텍처에서 특히 유용하게 사용됩니다. 어떤 시스템 레벨을 가상화 하는지가 다릅니다. 가상화 (Virtualization) 가상화는 하드웨어 리소스를 추상화하여 가상의 환경을 만들어내는 기술입니다. (하드웨어 레벨 가상화) 이는 하이퍼바이저(Hypervisor)라고 불리는 소프트웨어 계층을 통해 수행됩니다. 가상화는 주로 서버 가상화에 많이 사용되며, 다양한 운영 체제 및 애플리케..

데브옵스(DevOps)와 마이크로서비스(microservices) 개념, 특징

데브옵스(DevOps) 데브옵스(DevOps)는 소프트웨어 개발 및 운영 프로세스를 통합하여 효율적이고 지속적인 소프트웨어 제공을 가능하게 하는 소프트웨어 개발문화 또는 방법론을 나타냅니다. "데브"는 소프트웨어 개발(Development)을, "옵스"는 운영(Operations)을 의미하며, 두 영역 간의 협력과 통합을 강조합니다. 데브옵스의 주요 목표와 특징 지속적인 통합 (Continuous Integration, CI): 개발자가 코드를 공유하는 과정에서 자동화된 빌드 및 테스트를 수행하여 코드 품질을 높이고 문제를 조기에 발견합니다. 지속적인 배포 (Continuous Deployment/Delivery, CD): 지속적인 통합 이후 자동화된 배포 프로세스를 통해 새로운 기능이나 수정 사항이 실..