레이블이 Portainer인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Portainer인 게시물을 표시합니다. 모든 게시물 표시

2019년 1월 31일 목요일

Portainer 사용하기(2)

Image List
현재 Docker에서 사용중인 이미지의 목록을 확인합니다.
Portainer Image List
이미지와 컨테이너의 차이는 ClassInstance와 같습니다.
Class
Template이고, Instance는 특정값을 가진 현재의 객체인것 처럼
같은 이미지에 대해서 여러개의 Container가 생성될 수 있습니다.
외부에서 해당 이미지를 직접 집어 가져오거나, 추출할 수 있습니다.
지원되는 파일은 *.tar, *.gz 입니다.
Network List


현재 시스템에 설정되어 있는 DockerNetwork를 표현합니다.
별도로 설정하지 않으셨다면, 다음과 같이 3개의 기본 네트워크가 설정되어 있습니다.

Docker
에서 지원하는 Network Driver는 다음과 같습니다.
* bridge
- bridge
네트워크를 생성하여 이용합니다. 이 드라이버는 지역적(단일 호스트에서만 가능함)
입니다.
* overlay
-
다중 호스트 네트워크를 지원하는 오버레이 네트워크를 형성합니다. (swarm 모드입니다)
* macvlan
-
가장 최신의 기술로 호스트 인터페이스의 하위 인터페이스로 묶어서 외부에서
접근가능한 L2 VLAN을 직접 확장하는데 사용이 가능합니다.
* host
-
호스트의 네트워킹 스택을 직접 사용합니다. 네임스페이스 분리없이 모든 인터페이스를
직접 사용할 수 있습니다.
* none
-
컨테이너에 네트워킹 스택 및 네트워크 네임스페이스만 제공하지만,
호스트와 분리되어 있을 때 사용합니다.
좀 더 자세한 설명은 여기를 참고하십시오.

실행할 때 별도로 지정하지 않으면, 컨테이너는 기본적으로 bridge 네트워크를 사용합니다.
컨테이너가 생성되고 나서 변경하는 것도 가능합니다.
Volume list
Volume의 목록을 보고 추가할 수 있습니다.



Portainer Volume List
앞의 Portainer 설치 과정에서, 제일 처음 수행한 명령이 volume 생성이었습니다.
이미지나 컨테이너가 사라져도, 데이터 볼륨에 해당 데이터가 보존되어 있으면, 복원이 가능합니다.
예를 들면, 일반 PC에서 OS 파티션과 데이터 파티션을 분리해 놓으면 OS에 문제가
생겨도 데이터는 보존되는 것과 같은 방식입니다.
Event List
docker에서 발생한 이벤트를 확인/검색할 수 있습니다.
Portainer Event List
Host overview
현재 Portainer가 설치된 Host에 대한 일반정보를 살펴보는 화면입니다.
Portainer Host Overview
Portainer 설정하기
docker를 시작할 때 일부 옵션을 선택하여 환경 설정을 변경할 수 있습니다.
원 문서는 여기를 참고하였습니다. 필요한 부분만 테스트 후에 옮깁니다.
* 인증 비 활성화
docker run실행시에 ‘--no-auth’ 를 추가해 주면됩니다.
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer --no-auth



* 특정 컨테이너 숨기기
-l
플래그를 사용하여 특정 라벨에 해당하는 컨테이너를 숨길 수 있습니다.
예제 ) 다음과 같은 라벨을 지정하여 생성된 컨테이너가 있다고 가정할 경우
(
라벨은 원하는데로 설정할 수 있습니다.)
$ docker run -d --label owner=acme nginx
이 컨테이너를 컨테이너 목록에 나타나지 않게 하고 싶은 경우 다음과 같이 실행하면 됩니다.
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer -l owner=acme



* 사용자 로고 추가
회사 전용 로고를 사용하고 싶을 경우에는 플래그를 사용하면 됩니다.
(
! 로고 파일은 155x55px 이어야 합니다.)
파라미터는 해당 로고 파일의 URL입니다.
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer --logo "https://www.docker.com/sites/all/themes/docker/assets/images/brand-full.svg"



이외에도 여러가지가 있습니다만, 원문에서 확인하고 테스트 한 부분은 여기까지 입니다.
이상으로 Portainer의 사용법을 마치겠습니다.

2019년 1월 29일 화요일

Portainer 사용하기 (1)

메뉴 살펴보기
앞의 글에서 성공적으로 설치를 완료하였다면, 이제 여러분이 보게될 화면은 아래와 같습니다.

각각의 메뉴와 사용법에 대해서 알아보겠습니다.

DashBoard

DasbBoard는 전반적인 현재의 상태를 보여줍니다. 각 항목을 클릭해도 메뉴에서 클릭한 것과 같은 효과가 나타납니다.
Dashboard는 계기판을 의미합니다. (자동차의 그것과 같습니다.)
Portainer Dashboard
각각의 의미는 해당하는 메뉴에서 다시한번 정리하겠습니다.

Application Template

Portainer는 사전에 준비된 응용프로그램 Template을 같이 제공합니다. (실제로는, 간단한 설정파일만 제공합니다. 이미지는 docker hub에 올라가 있습니다.)
해당 설정 및 선택 다음화면에서 할 수 있습니다. (카테 고리 분류등이 있어서 편리합니다. )
Portainer Application Template
제공되는 Template이외에의 데이터를 추가하려면, Add Template 버튼을 눌러서 필요한 상목을 생성하고, 추가할 수 있습니다.
Add Template를 클릭하면 아래와 같이 화면이 변경됩니다.
Portainer Create Template
Template에는 3가지 종류가 있습니다.
  • Container
    단일 가상 컨테이너에 대해서 다루게 됩니다. 실행 옵션을 직접 집어 넣는 다고 생각하시면 됩니다.
  • Swarm stack
    → docker swarm
    기반의 stack을 관리합니다. 클러스터 레벨의 가상화 관리가 가능합니다.
    관리도구에서 직접 파일을 수정할 수는 없고, 특정 URL을 지시하는 형식으로만 제어가 가능합니다.
    (portainer
    수동설정에서 직접 연결하는 방법도 있습니다. - 하지만, 이 방법도 추가 container
    생성하고, 추가 컨테이너의 url을 지정하는 방식으로 구현되어 있습니다.)
  • Compose stack
    → docker-compse
    를 사용하여 관리합니다. swarm과 유사한 양식을 사용하지만, 단일 머신내에서
    다중 컨테이너만 관리할 수 있습니다.(swarm이 전체 관리 모델이라면, docker-compose는 개발자가 클
    라이언트에서 테스트용으로 사용하는 정도라고 생각하셔도 무방합니다. - 실제로 이주제에 대해서는 많은
    차이점이 있다고만 생각하셔도 됩니다.) 마찬가지로 파일을 직접 수정하는 기능은 없고, URL에서 접근하여
    추가가 가능합니다.

Stacks

Stack은 두개 이상의 컨테이너가, 같은 내부영역에 묶여서 하나의 응용프로그램을 구현하는 묶음을 이야기 한다고 생
각하시면 간단합니다. 예를 들어, 웹사이트에서 많이 사용하시는 제로보드의 경우, ApacheMysql이 필요합니다.
하나의 Container로 구성할 수도 있지만, ApacheContainerMysqlContainer를 묶어서, 만드는 것도 가능합니다.
전자의 경우가 제로보드 Container 후자의 경우가 제로보드 Stack이 되겠습니다.
이 메뉴는 현재 실행 중인 Stack의 목록을 보여줍니다.
Portainer Stack List
Add Stack을 클릭하여, 시스템에 새로운 Stack을 추가로 실행 할 수 있습니다.
재미있는 것은 Add stack의 경우는 직접 편집을 하거나 로컬 파일을 업로드 할 수 있다는 점입니다.
Portainer Create Stack
위에서 보는 것 처럼, 새로운 파일을 직접 작성하거나, 이미 작성된 파일을 업로드하거나, 기존에 관리되고 있는
레파지토리의 파일을 사용할 수 있습니다.
! 주의할 점은 여기서 관리되는 stack의 실행방법은 docker-compose라는 점입니다.
swarm기반의 관리가 필요하다면 template를 기반으로 작업해야 합니다.

Container List

선택한 Endpoint에 있는 모든 Container의 목록을 상태와 함께 보여줍니다.
docker ps -a
GUI 버전입니다.
Portainer Container List
이름을 클릭하면, 해당 Container에 대한 세부사항을 볼 수 있습니다.
Portainer Container Detail
쉘로 직접 해당 Container에 접속하는 기능이 있습니다. ( >_ Console)
해당 로그를 직접 확인할 수 도 있습니다. (Logs)
재시작 정책과 볼륨연결 등 도커 시작옵션에서 command로 처리하던 부분을 전부 제어할 수 있습니다.
그렇다고 하더라도, 기본적인 docker command를 먼저 정확히 아시는 것이 더 편리합니다.



다음 글에서는 Docker의 이미지와 네트워크에 대해서 중점적으로 알아보겠습니다.

2019년 1월 26일 토요일

Portainer 설치하기

Portainer란?

PortainerDocker를 관리하는 UI(FrontEnd)입니다.

개인적으로 설치가 간단하고, 가장 사용이 쉬워서 선호하는 관리 도구입니다.
소스코드는 여기에 공개되어 있습니다.

소스코드에 대한 라이센스는 MIT 라이센스 이며,
프로그램 자체에 대한 라이센스는 Zlib 라이센스 입니다.
프로그램 레벨의 배포 라이센스와 소스 레벨의 라이센스가 다른 경우가 많습니다.

설치


GO언어 기반의 Web UI로 해당 PlatformGO 바이너리 하나만 있다면 별도의 추가적인 요구 사항이 없습니니다.
배포 형식은 Docker Image로 배포되며 이미 시스템에 docker가 설치되어 있고, 현재 로그인 한 사용자가 docker 그룹에 속한다면, 다음의 명령어를 수행하여 시스템에 설치 할 수 있습니다. 이후에 소개할 다른 UI들은 로컬시스템에는 docker가 필요 없는 경우도 있습니다. 상대적으로 단점인지의 판단은 하지 않겠습니다. 테스트 환경은 ubuntu 18.04 입니다.

$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

첫번째 라인은, docker가 사용할 데이터 볼륨을 생성합니다.
두번째 라인은, 실제 docker hub에 있는 portainer의 이미지를 로컬에 복제하고, 필요한 포트를 서버에 노출시킵니다. (여기서는 docker9000번 포트를 native9000번 포트에 연결하였습니다.). 자동시작을 위해서, --restart=always 같은 파라미터를 추가할 수 있습니다. (실제로 명령행에서 처리할 필요는 없습니다. 자기 자신에 대한 이미지 옵션도 조절할 수 있습니다. )

Docker CLI에서 수행하는 모든 기능을 수행할 수 있으며, 개별 리소스 모니터링 / 로그 분석 등의 기능과 Image 안에 접속하는 기능등을 웹상에서 편리하게 수행할 수 있습니다.

명령행의 수행이 끝나고 나면, 해당 서버의 http://serverip:9000/ 에 접속하여
정상적으로 설치가 되었는지 확인할 수 있습니다. 정상적으로 설치가 되었다면,
admin 계정에 대한 비밀번호 설정화면이 아래와 같이 출력됩니다.

First Login Portainer
비밀 번호 설정을 하고 나면, 드디어 설치가 완료된 것입니다.

비밀번호를 입력하고나면, 원격 호스트를 연결하는 화면이 먼저 초기값으로 아래와 같이 등장합니다.


우리는 원격이 아니라 로컬에 있는 Docker를 관리할 것이므로, 로컬을 눌러서 다음과 같은 화면으로 전환합니다.


만약 로컬이 아닌 다른 End Point에 있는 시스템을 관리하려면, Agent를 별도로 해당 머신에 설치해야 합니다. 이 부분은, 이 문서에서는 다루지 않겠습니다.
Connect”를 눌러서 로컬 Docker를 관리하는 모드로 접속을 수행합니다.

접속하면 다음과 같은 초기화면이 표시됩니다.
Portainer Home
! 이제 설치가 완료되었습니다.
다음 글에서는 사용법에 대해서 알아보겠습니다.

쿠버네티스 네트워크 정리

본 문서는 쿠버네티스의 공식문서( https://kubernetes.io/docs/concepts/cluster-administration/networking/ )의 일부를 번역하고 링크를 정리하여 붙이는 것에서 시작한 문서입니다. 일부 링크는 ...