Infrastructure

    Kubernetes와 친해지기

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. Kubectl을 더 쉽게 사용하기 kubectl 명령 자동 완성하기 bash shell 명령 자동 완성을 해주는 bash-completion 패키지 사용 bash-completion은 bash의 Built-in 명령 중 하나인 complete 명령으로 자동 완성 목록 표시 kubectl completion bash 명령으로 complete에 맞게 목록을 생성하는 방식 자동 완성 목록을 구현한 뒤에는 tab 키를 사용해서 자동 완성 활용 가능 ※ bash-completion.sh #!/usr/bin/env bash #Usage: #1. bash /etc/bash_completion.d/kubectl # alias kubectl to k echo 'a..

    Prometheus & Grafana

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. Prometheus와 Grafana가 좋은 이유 거의 모든 모니터링 도구와 마찬가지로, 수집 → 통합 → 시각화의 구조를 가짐 클라우드 서비스에 비해 비용을 절감할 수 있음 서비스형 모니터링 도구와 다르게 내부에서 데이터를 처리할 수 있음 Prometheus 개요 SoundCloud 사에서 자사 서비스 모니터링을 위해 개발한 도구이며, 오픈 소스로 전환되었음 시계열 데이터베이스* 내장 자체적인 질의 페이지 말고는 시각화 기능이 없지만 그라파나와 연계하면서는 제공 가능 중앙 서버에서 에이전트의 데이터를 수집하는 Pull 방식을 사용하므로 쿠버네티스 환경에 설치된 에이전트를 통해 노드와 컨테이너 상태를 모두 수집해서 모니터링 가능 에이전트를 통해 내부..

    Jenkins

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. Container Infrastructure 환경에서의 CI/CD 개발자가 소스를 커밋하고 푸시하면 CI 단계 진입 애플리케이션 자동 빌드 및 테스트를 통해 배포할 수 있는 애플리케이션인지 확인 확인 과정을 통과하면 CD 단계 진입 애플리케이션을 Container Image로 만들어서 Pod, Deployment, StatefulSet 등 다양한 오브젝트 조건에 맞춰서 미리 설정한 파일을 통해 배포 Jenkins와 Kubernetes 운영 환경 애플리케이션 배포 영역에 쿠버네티스를 사용하면 개발자는 애플리케이션 개발에만 집중할 수 있게 됨 모든 배포 환경을 컨테이너 인프라로 일원화하고, CI/CD 도구를 사용하면 애플리케이션에 맞는 환경을 적용해서..

    Docker

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. Pod, Container, Docker, Kubernetes의 관계 파드들은 워커 노드라는 노드 단위로 관리 워커 노드와 마스터 노드가 모여서 쿠버네티스 클러스터가 됨 파드는 쿠버네티스로부터 IP를 받아서 컨테이너가 외부와 통신할 수 있는 경로를 제공하고 컨테이너들이 정상 작동하는지 확인하고 네트워크나 저장 공간을 서로 공유하게 함 파드가 이런 환경을 만들기에 컨테이너들은 마치 하나의 호스트에 존재하는 것처럼 작동 가능 정리하면, 컨테이너를 돌보는 것이 파드, 파드를 돌보는 것이 쿠버네티스 워커 노드, 워커 노드를 돌보는 것이 쿠버네티스 마스터 Container : 이 구조를 이루는 가장 기본, 하나의 운영 체제 안에서 커널을 공유하며 개별적인 ..

    Kubernetes

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. Kubernetes는 무엇인가? 표면적으로는 Container 관리 도구이지만, 실제로는 Container Orchestration을 위한 솔루션 Orchestration : 복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해서 손쉽게 사용하도록 서비스를 제공하는 것을 뜻함 다수의 컨테이너를 유기적으로 연결하고 실행하고 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있도록 만들어 줌 ※ k8s의 의미 : 'kubernetes'에서 앞의 k와 뒤의 s만 두고 나머지 8자는 축약했다는 뜻 : 참고로 kubernetes는 그리스 어로 도선사나 조타수를 뜻함 Kubernetes 구성 방법 3가지 1. 퍼블릭 클라..

    컨테이너 인프라 환경

    ※ 위 책을 읽고 개념 위주로 정리한 내용임을 알립니다. container : 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태 구현된 컨테이너는 가상화 상태에서 동작하는 프로세스보다 가볍고 빠르게 동작 monolithic architecture 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합되어 있는 구조 소프트웨어가 하나의 결합된 코드로 구성되어 있기에 초기 단계에서 설계하기에 용이 개발이 좀 더 단순하고 코드 관리가 간편 그러나 서비스 운영 중 수정 작업이 많아지거나, 기능이 추가될수록 서비스 간의 관계가 매우 복잡해짐 서비스를 수정하는 과정에서 에러가 발생하면 전체 서비스를 이용할 수 없게 될 가능성도 있음 개발 속도는 매우 빠름 I..