6. 6
INFRASTRUCTURE
ORCHESTRATION
• VM이든, Baremetal 서버든 linux가 설치된 환경은 모두 지원
• 주요 서비스로 networking, storage, load balancer, DNS, security가 있으
며, container로 배포된다.
CONTAINER
ORCHESTRATION AND
SCHEDULING
• 다양한 orchestration & scheduling SW를 지원한다. (Docker swarm, K8s,
Mesos)
• Rancher자체 관리도구인 Cattle 지원 (Docker swarm에서 분기되어 자체
발전 중)
APPLICATION
CATALOG
• Multi container cluster를 쉽게 버튼으로 배포할 수 있도록 catalog를 지원
• 사용자가 catalog 표준에 맞게 설정을 하면 rancher UI에서 배포 가능
• 버전 업데이트 등에 편리함. (다양한 Hadoop cluster 배포용도로 활용가능)
ENTERPRISE-GRADE
CONTROL
• 유연한 사용자 인증 플러그인 제공
• RBAC 기반의 권한관리 제공
Rancher 핵심기능
8. 8
Rancher Quick Start Guide - 설치
제약사항
• Kernel version 3.10 이상 (Docker 설치)
• Docker for Windows and Docker for Mac are not supported.
• https://docs.docker.com/engine/installation/linux/centos/ (도커 설치)
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
# Tail the logs to show Rancher
$ sudo docker logs -f <CONTAINER_ID>
• Restart option : Container가 재시작할 때 정책을 지정할 수 있다.
• unless-stopped : 현재 container의 이전상태가 STOP이면 재시작 하지 말것
• https://docs.docker.com/engine/reference/run/#restart-policies---restart
• 이미지 파일 사이즈가 커서 다운받는데 시간이 좀 걸린다.
설치
Web UI 접속
• http://<ip>:8080으로 접속 가능
• 사용자 접근관리가 적용되지 않아, 누구나 접근이 가능하다.
• 접근관리가 필요하면 아래 link에 다양한 접근관리 방법을 적용가능
• 가장 간단한 방법은 Rancher서버가 지원하는 local db를 활용하는 것
• http://docs.rancher.com/rancher/v1.5/en/configuration/access-control/
9. 9
Add host
• Container를 배포하고 관리할 서버들을 등록한다.
• 본 예제에서는 Rancher Server가 실행되고 있는 서버를 선택
• 운영환경에서는 Rancher Server가 실행중인 host가 아닌 별도의 host를 선택한다. (성능고려)
Rancher Quick Start Guide – Host 추가
등록할 서버의 IP를 입력
생성된 명령어를 등록할 서
버에서 실행
잠시 뒤에 등록된 host의 정
보가 표시됨
10. 10
• 초기 Rancher를 설치하면 기본 Environment 환경을 사용하게 된다.
• 이 Environment는 Environment Template에 정의된 Infrastructure service의 set으로 구성된다. (위에서는 healthcheck, scheduler …)
• 사용자는 다양한 environment를 생성(dev, production …)하여 특정 유저에게 필요한 자원을 할당할 수 있다.
Rancher Quick Start Guide – Infrastructure
인프라를 관리하기 위한 서비스인 Infrastructure Service 제공
11. 11
Quick Start Guide – Container 생성하기
2가지 방식으로 생성해도 UI에서 확인가능
UI를 통한 Container 생성 Docker comand를 통한 생성
• Default Stack에 여러개의 service를 추가하여 관리 가능
• 여러 service를 그룹으로 관리할 경우에 필요
• 해당 서버에서 직접 명령어로 실행해도 UI에서 모니터링이 가능함.
12. 12
UI로 생성한 경우 할당받은 IP
Quick Start Guide – Container 생성하기
생성된 container를 Web UI에서 확인
Docker command로 생성한 경
우 할당받은 IP
13. 13
Quick Start Guide – Container 생성하기
Container의 네트워크 대역을 어떻게 지정할 수 있을까?
Label을 이용한 네트워크 지정
• io.rancher.container.network=true 설정을 통해
• docker의 managed network를 사용하도록 지정 가능
14. 14
Quick Start Guide – Multi Container 생성하기
완전한 웹서비스 구성을 위한 컨테이너 구성하기
필요한 서비스 목록 생성된 Container 확인
Load Balancer
Web #1 Web #2
Mongo_db
• 총 4개의 container가 생성된 것을 볼 수 있다.
• 실제 웹에 접속하기 위해서는 load balancer를 통해서 접속이
가능하며
• Load balancer는 80 port로 접속하고, 이를 web의 8080으로
연결해 준다.
15. Quick Start Guide – Multi Container 생성하기
1안) UI를 활용한 Web Service 생성 방법
RANCHER QUICK GUIDE 참고
16. Quick Start Guide – Multi Container 생성하기
1안) UI를 활용한 Web Service 생성 결과
• Load balancer인 “letschatapplb”의 80 port를 통해서 접속이 서비스에 접속할 수 있다.
18. Quick Start Guide – Multi Container 생성하기
2안) Rancher CLI를 이용한 서비스 생성방법
https://github.com/freepsw/docker-vertx-mariadb/tree/master/11.rancher
• Rancher API KEY를 사전에 발급 받아야 함. (ACCESS KEY , SECRTE KEY)
• 명령어 rancher up을 실행하는 경로에 docker-compose.yml과 rancher-compose.yml이 존재해야 함
19. Quick Start Guide – Multi Container 생성하기
3안) Rancher API를 이용한 서비스 생성방법
https://github.com/freepsw/docker-vertx-mariadb/tree/master/11.rancher
• Rancher STACK에서 compose
파일을 확인 가능.
• 2개 파일을 복사하여 “rancher
up” command를 실행할 디렉토
리에 복사
Click
20. Quick Start Guide – API KEY 생성
rancher api에 접근에 필요한 인증 KEY (Access Key : Secret Key)
1. Click
2. Click
IP
IP
21. Quick Start Guide – API KEY 생성
rancher api에 접근에 필요한 인증 KEY (Access Key : Secret Key)
1. KEY Name 입력
2. Click
필요한 서비스 목록 생성된 Container 확인
• Secret Key는 반드시 별도 파일로 보관해야 함.
• 사용자가 관리하는 KEY (Rancher에서 관리하지 않음)
23. Quick Start Guide – Rancher API 사용하기
STACK을 생성할 project 확인하기
Click
• Rancher에 생성된 project 정보 조회
• 처음 rancher를 설치했다면, “Default” project만
존재할 것임.
24. Quick Start Guide – Rancher API 사용하기
Project의 STACK을 조회
Click
• ”Default” project의 id : “1a5”
• “1a5” project에 생성된 STACK을 조회한다.
25. Quick Start Guide – Rancher API 사용하기
Project에 STACK 생성하기
• ”Operation” 버튼을 클릭하여 STACK을 생성한다.
Click
26. Quick Start Guide – Rancher API 사용하기
STACK 정보 입력
주의사항!
• dockerCompose & rancherCompose 입력시
• Yml 구조를 json 구조로 변경하여 입력해야 함.
• YML to JSON 도구를 활용
1. 선택
3. 입력
2. 입력
4. Click
27. Quick Start Guide – Rancher API 사용하기
REST 요청
• “Send Request”를 Click하면 정상적으로 STACK이
생성되는 것을 화면에서 확인 가능
Click
1안) UI에서 직접 실행
• 화면에 표시된 Curl command line을 복사하여 실행
• ACCESS_KEY:SECRET_KEY 값을 변경
• Web API를 이용하여 Post/Get 방식으로 직접 호출
2안) REST API 활용
IP
IP
28. Quick Start Guide – Rancher Catalog 사용
Rancher에서 제공하는 Catalog에서 SW를 선택하여 설치
• Rancher에서 사용자가 손쉽게 container기반으로
sw를 설치할 수 있도록 제공
• 지속적으로 catalog가 추가되고 있으며, 향후 서비스
확장시 설치/배포 시간 단축
Catalog 서비스
Click
29. Quick Start Guide – Rancher Catalog 사용
Hadoop 설치
• Hadoop 설치에 필요한 기본 설정들을 사용자가 정의
• 다양한 설정을 변경하려면,
• 해당 container의 dockerfile을 확인하고,
• 외부에서 ENV로 설정할 수 있는 configuration에 값을 변경
Click
30. My github project using rancher
docker-vertx-mariadb
• Vertx web app와 mariadb를 rancher를 이용해 배포하는 샘플
ansible-rancher-docker-deploy
• Ansible + rancher + docker를 이용하여 어플리케이션 배포 및 운영을
자동화한 프로젝트 (진행중…)