2. Rancher
• Rancher는 컨테이너 오케스트레이션 플랫폼
• Rahcner Labs에서 2014년부터 개발
• 오케스트레이션이란?
• 컨테이너 자동 배치 및 복제
• 로드 밸런싱
• 장애 복구
• 외부에 서비스 노출
• 추가 또는 제거로 스케일인/아웃
• 서비스간의 연결 및 네트워크 포트 제어
오케스트레이션 참고 자료 :
http://www.mantech.co.kr/container_orchestration/
https://www.redhat.com/ko/topics/containers/what-is-kubernetes
3. Pet vs Cattle
클라우드 환경에서는 서버를 애완동물이 아니라 가축처럼 봐야한다
VS
http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/
4. 왜 Rancher에 관심을 가지게 되었을까요?
• 기존에 Spinnaker와 같이 인프라 관리형 도구로 소문으로만 듣
고만 있었음
• DevOps Korea 밋업 – 도커 야간 과외 / Ralf Yang님 발표에서
Rahcher가 편리하다는걸 확인
=> Docker 야간 과외 : https://bit.ly/2Kr20wX
• 최근 도커-컨테이너/DevOps/Micro-Service-Architecture를 도
입하고자 하는 고객사가 점점 많아지는 추세
5. 그런데.. AWS에는 ECS(EC2 Container Service)가 있지 않나요?
• 고객사의 특수성 및 요구사항
• 개발 환경에서 웹-인터넷 접속이 느리고 방화벽으로 막혀있는 환경
• 규정상 특정 클라우드에 종속적이지 않고 싶다
• 규제상 이슈가 발생할 경우 온-프레미스 환경으로 돌아갈 가능성
• AWS와 ECS에 대한 학습을 어려워 함
• ECS보다 Rahcner의 UI와 기능이 좀 더 편리하게 느껴짐
6. 다양한 환경에서 동일한 컨테이너 환경 제공 가능
• Windows7 + boot2docker + VirtualBox(Ubuntu)
• Local 개발 PC - Ubuntu16.04
• AWS EC2
• AWS LightSail
• AWS ECR 연동 가능
• AWS Route53 + Let’s Encrypt Docker 내부 HTTPS 인증서 적용
7. Rancher 1.0
• cattle, Docker Compose, Docker Swarm, MESOS, kubernetes
지원
https://rancher.com/cattle-swarm-kubernetes-side-side/
• AWS, Azure, DigitalOcean, Custom 환경 지원
• 1.6 (Stable) 버전까지 출시
• 다양한 서비스 카탈로그 지원
• (Rancher 설치 후 서비스 카탈로그에서 설치 가능한 Docker 확인)
9. Rancher 2.0
• 2018년 5월 1일 GA
• "Kubernetes Everywhere"
• Rancher Kubernetes Engine (RKE) – vSphere 클러스터, 베어 메탈 서버 및 클라우드 공
급자에 Kubernetes 클러스터를 설치하는 가장 쉬운 방법
• 통합 클러스터 관리 – GKE, EKS 및 AKS 와 같은 클라우드 관리형 Kubernetes 클러스터는
물론 Kubernetes (Canonical Distribution of Kubernetes), Kops 및 Kubespray와 같은 다
른 도구를 사용하여 구축 된 기존 Kubernetes 클러스터를 관리 할 수 있음
• 응용 프로그램 워크로드 관리 - Rancher 2.0은 조직에서 Kubernetes의 채택을 촉진하는
직관적 인 사용자 인터페이스를 제공합니다. 다른 기능으로는 향상된 Helm 카탈로그 지
원 (The package manager for Kubernetes, https://helm.sh/), CI / CD 통합, 경고(Alert)
및 중앙 집중식 로깅.
11. 백견이불여일타(百見而不如一作)
• 데모를 직접 실습 해봅시다!!
• 빠른 실습을 위해서 AWS Lightsail로.. 드디어 서울 리전에 출시!!
Lightsail 인스턴스는 실행 중이거나 중단된 상태에서만 요금이 부과됩니다. 월말 이전에 Lightsail 인스턴스를 삭
제하면 Lightsail 인스턴스를 사용한 총 시간을 기준으로 비례 할당으로 계산된 요금만 부과됩니다. 예를 들어, 가
장 저렴함 Lightsail 플랜을 한 달에 100시간 동안 사용하는 경우 67센트(100*0.0067)가 부과됩니다.
12. Docker 설치 (Ubuntu16.04 선택)
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-
16-04
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable"
sudo apt-get update
apt-cache policy docker-ce
sudo apt-get install -y docker-ce
sudo systemctl status docker
sudo docker ps
*PDF에서 커맨드 복사시 -- 같은 부분이 – 1개로 복사되는 경우가 있습니다. 링크에서 복사하길 권장드립니다.
13. Rancher Server 다양한 구성 환경
• Rancher Server - Single Container (non-HA) <= 설치예정환경
• Rancher Server - Single Container (non-HA) - External database
• Rancher Server - Single Container (non-HA)- Bind mounted
MySQL volume
• Rancher Server - Full Active/Active HA
• Rancher Server - Using ELB in AWS
• Rancher Server - AD/OpenLDAP using TLS
• Rancher Server - HTTP Proxy
• Rancher Server - MySQL over SSL
https://rancher.com/docs/rancher/v1.6/en/installing-rancher/installing-server/
14. Rancher 1.0 QuickStart
https://rancher.com/docs/rancher/v1.6/en/installing-rancher/installing-server/
1. Rancher Server 설치
sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
8080 포트 설정
3. http://<server_ip>:8080 으로 접속
4. Infrastructure – Add Host – Custom
UDP 500, 4500 포트 설정
5. sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v
/var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10
http://<server_ip>:8080/v1/scripts/E81XXXXXXXXXXXXXX097:XXXXXXXX00000:ejnJPKgRRXXXX
XXbn543HcOuns
위와 같이 스크립트 복사 후 Rancher Agent 실행할 서버에서 실행
6. Hosts 확인
*PDF에서 커맨드 복사시 -- 같은 부분이 – 1개로 복사되는 경우가 있습니다.
링크에 접속해서 커맨드를 복사하길 권장드립니다.
15. Rancher 2.0 QuickStart
https://rancher.com/docs/rancher/v2.x/en/quick-start-guide/
1. 리눅스 호스트를 준비 - 우분투 16.04 64비트, 4기가 메모리 머신을 준비.
Docker 버전 1.12.6, 1.13.1 혹은 17.03.2 지원(좀 더 상위에서도 되는거 확인)
2. Rancher Server 실행
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
3. https://<server_ip> 로 접속 (https, 443 포트 확인)
4. 암호입력
5. Add Cluster – Custom – etcd, control, worker 선택 – 스크립트 복사 후 Agent 서버에서 실행
6. sudo docker run -d --privileged --restart=unless-stopped --net=host -v
/etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.0 --server
https://<server_ip> --token XXXXXXXXXXltts9bp6lmrjhdmr2l2zdmgbvqpxpzb7hkvg2zszv998 --
ca-checksum XXXXXXXXXX7568afa3bb987764de787bb9173fe2334b0f60d27cb835549f6f56 --
etcd --controlplane --worker
*PDF에서 커맨드 복사시 -- 같은 부분이 – 1개로 복사되는 경우가 있습니다.
링크에 접속해서 커맨드를 복사하길 권장드립니다.
18. Q&A
• Rancher는 유료인가요?
• 기본은 무료, Enterprise Edition을 별도로 판매하고 있습니다.
• 단, 무료버전에는 제한이 있어서 노드의 규모가 클 경우 Enterprise Edition을 이용해야 할 거 같습니다.
• Rancher 2.0 내부에서 Kubernetes는 어떻게 동작하나요?
• Rancher 2.0: Technical Architecture를 참고 부탁드립니다. https://bit.ly/2L87AWa
• 출처 : https://qiita.com/cyberblack28/items/bc01122a634150335b6f
19. Q&A
• Rancher CI/CD Pipeline 이 궁금합니다
• 아래와 같은 CI/CD Pipeline 자료가 공개되있습니다.
• https://www.slideshare.net/ShannonWilliams14/supercharing-cicd-with-gitlab-and-rancher-june-2017-online-meetup
• https://www.youtube.com/watch?v=KItSHiMXS8E
• https://rancher.com/building-super-fast-docker-cicd-pipeline-rancher-droneci/
• https://rancher.com/developing-commit-based-cicd-system-using-rancher/