SW Engineering 264

[Kubernetes] 쿠버네티스에서 POD(파드)란? 그리고 POD 생성하기

[Kubernetes] 쿠버네티스에서 POD(파드)란? 그리고 POD 생성하기 l Kubernetes 파드(Pod)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다. 도커가 가장 일반적으로 잘 알려진 컨테이너 런타임이지만, 쿠버네티스는 도커 외에도 다양한 컨테이너 런타임을 지원한다. 파드는 하나 이상의 컨테이너의 그룹이며 스토리지 및 네트워크를 공유하고, 해당 컨테이너를 구동하는 방식에 대한 명세를 갖는다. 파드의 컨텐츠는 항상 함께 배치되고, 스케줄되며, 공유 컨텍스트에서 실행된다. 즉, 파드는 공유 네임스페이스와 공유 파일시스템 볼륨이 있는 컨테이너들의 집합과 비슷하다. 파드는 각 애플리케이션의 "논리 호스트"를 모델링한다. 여기에는 상대적으로 밀접하게 결합된 하나 이..

[kubernetes] minikube에서 로컬 docker image 사용하기

[kubernetes] minikube에서 로컬 docker image 사용하기 l Kubernetes, Docker 일반적으로 로컬 컴퓨터에서 쿠버네티스(Kubernetes)를 테스트할 때 minikube 환경을 많이 사용한다. 도커 데스크탑(docker desktop)이 설치된 환경에서도 쿠버네티스를 활성화하면 minikube가 활성화되어 동작한다. 이러한 환경에서 kubectl run 또는 yaml로 파드를 생성할 때, 로컬의 이미지를 사용할 경우 이미지를 가져올 수 없다는 오류와 함께 파드가 생성된 후 종료된다. 이번 포스트에서는 minikube 환경에서 로컬의 docker image를 사용하여 파드를 생성하는 방법을 알아본다. 로컬의 docker images에서 커스텀 빌드된 이미지 proxys..

[Docker] 컨테이너실행시 sh 스크립트 호출과 매개변수 사용

[Docker] 컨테이너실행시 sh 스크립트 호출과 매개변수 사용 l Docerk, Shell script Dockerfil을 제작하면서, 컨테이너 실행시 특정 쉘 스크립트를 실행할 때, 쉘 스크립트 실행에 필요한 파라메터 값을 받아오지 못하는 문제가 있었다. (도커의 문제가 아닌 나의 코드 오류 문제) 단독으로 쉘 스크립트를 실행하면 정상적으로 실행되는데, 유독 컨테이너 실행시에만 그 값을 받지 못하였다. 해결 방법은 매우 간단하게 Dockerfile에서 사용한 ENV 환경변수를 그대로 쉘 스크립트에서 사용하면 되는거였다. (너무 어렵게 생각해서 문제를 해결하지 못한 것이었다.) [잘못된 예시] abc.sh에서 인풋 변수로 값을 사용할 수 있도록 read 명령어를 사용하였으며, 해당 변수로 받은 값을 ..

[Kubernetes] 쿠버네티스에서 파드 생성시 프라이빗 레지스트리 이미지 사용하기

[Kubernetes] 쿠버네티스에서 파드 생성시 프라이빗 레지스트리 이미지 사용하기 l Kubernetes Kubernetes 환경에서 pod를 생성할 때 Private Registry에서 이미지를 다운받아 실행하는 방법에 대해서 알아본다. 현재 구성되어 있는 실습 환경은 MAC OS + PODMAN + MINIKUBE이다. 일반적으로 많이 사용하는 docker 환경은 아니지만 사용법이 거의 유사하기 때문에 따라하는데 크게 문제가 없으리라 생각한다. Minikube 설치 및 Podman 설치는 공식 문서에 쉽게 설명되어 있기 때문에 여기에서는 다루지 않는다. l Podman Installation Instructions : https://podman.io/docs/installation l miniku..

[Kubernetes] vagrant 환경에서 Kubernetes 클러스터 구성하기

[Kubernetes] vagrant 환경에서 Kubernetes 클러스터 구성하기 l Kubernetes on vagrnat vagrant에서 Kubernetes 클러스터를 구성하는 방법에 대해서 알아본다. 클러스터 구성환경은 virtualbox에 centos8 운영체제의 의 가상머신을 3개 생성하고, 각 머신은 master, woker1, woker2로 구성한다. l vagrant를 활용한 개발 환경 구축하기 : https://sungwookkang.com/1523 l vagrant로 가상머신 생성하기 : https://sungwookkang.com/1524 호스트이름 IP 역할 k8s-master 192.168.10 Master node k8s-worker1 192..168.11 Worker nod..

[vagrant] vagrantfile 을 활용한 가상머신 N대를 한번에 생성하기

[vagrant] vagrantfile 을 활용한 가상머신 N대를 한번에 생성하기 l Vagrant Vagrant(베이그랜트)는 Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL로 작성할 수 있으며, 가상머신 생성 및 관리, 환경 구축을 위한 프로비저닝까지 관리할 수 있다. 이번 포트스에서는 vagrant에서 가상머신을 생성할 때 참고하는 vagrantfile에 대해서 알아본다. l vagrant를 활용한 개발 환경 구축하기 : https://sungwookkang.com/1523 l vagrant로 가상머신 생성하기 : https://sungwookkang.com/1524 vagrantfile은 vagrant init 명령을 실행하면 생성되는 설정 파일이다. 물론..

[vagrant] vagrant로 가상머신 생성하기

[vagrant] vagrant로 가상머신 생성하기 l Vagrant Vagrant(베이그랜트)는 Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL로 작성할 수 있으며, 가상머신 생성 및 관리, 환경 구축을 위한 프로비저닝까지 관리할 수 있다. l vagrant를 활용한 개발 환경 구축하기 : https://sungwookkang.com/1523 이번 포트스에서는 vagrant로 가상머신을 생성하는 방법을 설명한다. Vagrant는 사용자가 수작업으로 진행하는 작업을 설정 파일을 통해서 자동으로 생성 및 관리를 도와주는 도구이지 vagrant 자체가 가상머신의 역할을 하는 것은 아니다. 따라서 Vagrant를 사용하여 가상머신을 생성하기 위해서는 Virtualbox..

[vagrant] vagrant를 활용한 개발 환경 구축하기

[vagrant] vagrant를 활용한 개발 환경 구축하기 l Vagrant with mac brew install Vagrant(베이그랜트)는 Hashicorp(하시코프)에서 개발한 가상머신 관리를 자동화 도구로 루비 기반의 DSL로 작성할 수 있으며, 가상머신 생성 및 관리, 환경 구축을 위한 프로비저닝까지 관리할 수 있다. 또한 가상 환경에 대한 설정을 관리할 수 있어 동일한 환경을 구성할 수 있다. 이번 포스트에서는 MAC 환경에서 vagrant를 설치하는 방법에 대해서 알아본다. [Homebrew로 설치하기] Homebrew로 vagrant를 설치하는 방법은 매우 간단하다. Homebrew 명령어 하나로 쉽게 설치 및 삭제가 가능하다. 설치 과정에서 현재 사용자의 암호를 입력해야 한다. bre..

[Prometheus] Prometheus Thanos 아키텍처 살펴보기

[Prometheus] Prometheus Thanos 아키텍처 살펴보기 l Prometheous with Thanos Thanos(타노스)는 CNCF(https://www.cncf.io/)의 인큐베이팅 프로젝트로, 프로메테우스의 확장성과 내구성을 향상시키기 위한 오픈소스 프로젝트이다. l Prometheus 확장 및 내구성을 위한 다양한 구성 방법 : https://sqlmvp.tistory.com/1521 Thanos는 Prometheus 2.0 스토리지 형식을 활용하여 빠른 쿼리 대기 시간을 유지하면서 모든 개체 스토리지에 메트릭 데이터를 효율적으로 저장한다. 또한 운영중인 프로메테우스 서버의 데이터를 통합 저장 및 외부 저장소에 데이터를 저장할 수 있기 때문에 보관 기간에 제한이 없고, 단일 쿼리..

[Prometheus] Prometheus 확장 및 내구성을 위한 다양한 구성 방법들

[Prometheus] Prometheus 확장 및 내구성을 위한 다양한 구성 방법들 l Prometheous with Thanos Prometheus(프로메테우스) 모니터링 시스템은 오픈 소스 기반의 모니터링 시스템으로 Kubernetes(쿠버네티스) 활성화 함께 많이 사용되고 있다. 프로메테우스는 구조가 간단하며, 운영이 쉽고 강력한 쿼리 기능을 가지고 있다. 간단한 텍스트 형식으로 메트릭 데이터를 쉽게 익스포트 할 수 있으며, key-value 형식의 데이터 모델을 사용한다. 수집된 데이터는 Grafana(그라파나)를 통해 시각화를 제공한다. l Prometheus 구조 및 개념 : https://sqlmvp.tistory.com/1520 프로메테우스의 가장 큰 약점은 확장성과 가용성이다. 프로메테..