본문 바로가기

Applications/Portainer

portainer 를 활용하여 효율적인 docker image 관리하기

# 쿠버네티스 환경에서 도커의 이미지를 효율적으로 관리하는 방법

- 쿠버네티스와 도커는 뗄레야 뗄 수 없는 관계이다. 물론 다른 이미지 플랫폼을 사용해도 마찬가지 이지만 현재는 거의 표준화 되고있는 도커와 쿠버네티스는 아주 좋은 도구이다.
- 그렇다면 관리는? 쿠버네티스에서 도커 컨테이너를 효율적으로 관리하는 방법이 뭐가 있을까 고민을 하던중 portainer 이너 라면 가능하지 않을까 생각했다.
- 그래서 한번 구현해 보기로 했다.

1. portainer 설치 (마스터 노드에서 실행)

sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
k8s-master-node@k8smasternode-Virtual-Machine:~$ sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
[sudo] k8s-master-node의 암호:
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete
49d59ee0881a: Pull complete
a2300fd28637: Pull complete
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
e5c849caa2e67b4e76135071916b38afd99832b86c872910f69c1dd27b59c4c3

2. 서비스 접근하기

- 마스터노드 IP : 9000 포트로 접근 > 유저 생성

- 로컬 환경을 선택하고 연결을 한다.
- 아래와 같은 메인 화면이 나오면 정상.

- portainer 의 주요기능

  • Docker Container, Image, Volume 을 한번에 볼 수 있다.
  • Docker Container 의 Start, Stop, Kill, Restart 등을 실행 가능하다.
  • Docker Container 의 Resource Monitoring 을 수행 할 수 있다.
  • Docker Container 의 Console 에 접속 가능하다.

 

3. 쿠버네티스 컨테이너를 Remote 관리 하도록 설정

- 마스터 노드에서 실행

docker swarm init

- join token 확인

k8s-master-node@k8smasternode-Virtual-Machine:~$ sudo docker swarm init
[sudo] k8s-master-node의 암호:
Swarm initialized: current node (okfo3vlmr6r3zwxe4qj0sa4ho) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3i1wqf6ibnzjrd19q1d0s4wa39dud273uefoke80mk0sczlbwp-1irglgx3sjcgsgrl9sff52gtx 192.168.137.50:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

- master node 에서 worker node 관리를 위한 portainer agent 설치

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml

docker stack deploy --compose-file=portainer-agent-stack.yml portainer
k8s-master-node@k8smasternode-Virtual-Machine:~$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   789  100   789    0     0   1321      0 --:--:-- --:--:-- --:--:--  1319

k8s-master-node@k8smasternode-Virtual-Machine:~$ sudo docker stack deploy --compose-file=portainer-agent-stack.yml portainer
Creating network portainer_agent_network
Creating service portainer_agent
Creating service portainer_portainer

4. worker node 에서 join 명령어를 통한 연결

#worker node 01
k8s-worker-node-01@k8sworkernode01-Virtual-Machine:~$ sudo docker swarm join --token SWMTKN-1-3i1wqf6ibnzjrd19q1d0s4wa39dud273uefoke80mk0sczlbwp-1irglgx3sjcgsgrl9sff52gtx 192.168.137.50:2377
This node joined a swarm as a worker.

#worker node 02
k8s-worker-node-02@k8sworkernode02-Virtual-Machine:~$ sudo docker swarm join --token SWMTKN-1-3i1wqf6ibnzjrd19q1d0s4wa39dud273uefoke80mk0sczlbwp-1irglgx3sjcgsgrl9sff52gtx 192.168.137.50:2377
This node joined a swarm as a worker.

- 설치 완료 및 마스터 노드와 워커노드가 모두 연결된 모습

- Swarm 클릭 > 3개의 노드가 확인된다.

- 자 여기까지 쿠버네티스 환경에서 Docker Swarm을 통한 컨테이너 모니터링 및 관리에 대해서 알아 보았다.

'Applications > Portainer' 카테고리의 다른 글

Portainer 에 Endpoint (Node) 추가하기  (0) 2021.12.07