docker를 외부에서 접속해서 관리하기 + GUI로 관리하기 위해서 portainer를 써보기로 했다.
비상업용으로는 portainer CE를 많이 사용하고 있는 것 같기는 한데 현업에서 쓰게될지는 100% 확인할 수 없었다.
대체품으로 prometheus+grafana, rancher, kubernetes dashboard, 그리고 클라우드별로 제공되는 서비스(AWS의 EKS)가 있다. 아마 프로메테우스+그라파나 , EKS, 쿠버네티스 대시보드 순으로 사용해보게 될 것 같다.
Portainer 설치
Install Portainer CE | Portainer Documentation
If you haven't already, please check that your environments meet our requirements before proceeding.
docs.portainer.io
로컬에 portainer를 설치하지 않고, portainer 이미지를 도커 컨테이너로 설치하는게 일반적인 설치방법이라고 한다. 특히, 쿠버네티스를 사용하는 경우에도 편리성과 쿠버네티스와의 분리를 위해서 도커 위에 portainer 이미지를 사용하는 것이 일반적이라고 한다!
Portainer를 Kubernetes 위에 올리지 않고 Docker 위에 올리는 이유
1) 설치 및 관리의 간편성
Docker 위에 Portainer를 올리는 것이 간편합니다. Portainer는 기본적으로 Docker 기반 애플리케이션으로 쉽게 배포 및 관리할 수 있습니다. Docker 명령어 몇 줄로 쉽게 설치하고 관리할 수 있기 때문에, 쿠버네티스 클러스터 위에 복잡한 설정을 하지 않아도 됩니다.
2) 독립적인 관리 인터페이스
Docker와 Kubernetes 모두를 관리할 수 있는 하나의 인터페이스로 Portainer를 사용하는 것이 가능합니다. Docker 위에 Portainer를 실행하고, 이를 통해 Kubernetes 클러스터도 동시에 관리할 수 있습니다. Kubernetes 클러스터를 내부적으로 관리하고, Docker 기반 애플리케이션도 동시에 관리할 수 있기 때문에 두 가지 환경을 통합 관리할 수 있습니다.
3) Kubernetes와 분리된 관리
Kubernetes 위에 Portainer를 올리는 경우, Portainer 자체가 관리해야 할 리소스 중 하나로 작동하게 됩니다. 이는 Kubernetes에서 Portainer 리소스를 따로 관리해야 한다는 의미이며, 특정 상황에서는 Portainer가 관리하는 클러스터와 운영하는 Portainer가 같은 환경을 공유할 때 복잡해질 수 있습니다.반면, Docker 위에 Portainer를 설치하면 Kubernetes와 별도의 환경에서 Portainer를 유지 관리할 수 있습니다. 이를 통해 Portainer를 독립적으로 관리할 수 있고, 필요시 Docker 기반의 Portainer로 여러 Kubernetes 클러스터를 관리할 수 있습니다.
4) 시스템 자원 절약
Portainer 자체는 비교적 가벼운 애플리케이션입니다. Kubernetes 클러스터 내에 Portainer를 실행하는 것보다, Docker 환경에서 별도의 작은 컨테이너로 Portainer를 실행하는 것이 자원 소모를 줄이는 방법일 수 있습니다.
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
컨테이너의 데이터는 휘발적이지만 docker volume을 생성하면 컨테이너가 삭제되어도 데이터를 유지할 수 있고 컨테이너 끼리 또는 컨테이너-호스트 간 데이터를 공유할 수 있다.
-v /var/run/docker.sock:/var/run/docker.sock : portainer 컨테이너에서 호스트의 docker 데몬에 접근할 수 있도록 마운트
-v portainer_data:/data : portainer_data 볼륨을 /data 디렉토리에 마운트
HTTP(8000) HTTPS(9443)포트로 웹 인터페이스에 접근
'개발공부' 카테고리의 다른 글
미니PC로 개발 서버 구축하기 - 5. nginx + certbot으로 SSL과 리버스프록시 적용 (0) | 2024.10.08 |
---|---|
미니 PC로 개발 서버 구축하기 - 4. 포기하고 docker desktop으로 해결 (0) | 2024.09.18 |
미니 PC로 개발 서버 구축하기 - 3. kubernetis 설치하기(실패) (0) | 2024.09.17 |
미니PC로 개발 서버 구축하기 - 1. Docker Engine 설치 (0) | 2024.09.14 |
Creative-tim 오픈소스 템플릿 에러 핸들링 (0) | 2024.09.08 |