rancher: 建立你的牧場艦隊

36
Rancher 建建建建建建建建 Miles 2015/12/11

Upload: miles-chou

Post on 16-Apr-2017

356 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Rancher: 建立你的牧場艦隊

Rancher建立你的牧場艦隊Miles 2015/12/11

Page 2: Rancher: 建立你的牧場艦隊

Docker 如何應用 用 Docker 建立貨櫃 (Image)

用 Docker Compose 建立戰艦 (Stack)

用 Rancher 建立艦隊 (Production)

Page 3: Rancher: 建立你的牧場艦隊

起航

Page 4: Rancher: 建立你的牧場艦隊

Outline

Features

How it works

Components

Access Control

Examples

Conclusion

FAQs

Suggestions

Page 5: Rancher: 建立你的牧場艦隊

Introdution

Page 6: Rancher: 建立你的牧場艦隊

Intro

Docker Compose 只能在同一台 host run

跨 host 連 container 有解,但設定很麻煩

Page 7: Rancher: 建立你的牧場艦隊

Features

Page 8: Rancher: 建立你的牧場艦隊

Features

所有服務皆使用 Docker Image 執行 可使用 Web UI / API / CLI 管理叢集

Host 間的 networking 設定,可以用 Docker Link 概念簡單達成Host 變動後,連結依然能正確的設定自動佈署規劃容器的設定方法簡單

可使用 Volume 來設定備份v0.47+ 提供了 stroage service ,使用起來會更有彈性

Page 9: Rancher: 建立你的牧場艦隊

How it works

Rancher

HTTP/HTTPS

Port 500/4500 IPsec

Nginx

PHP DB

Cache

Host

Page 10: Rancher: 建立你的牧場艦隊

Components

Page 11: Rancher: 建立你的牧場艦隊

Components (Application)

Services

From Docker Images

Load Balancer

Service Alias

External Service

Stacks

Docker Compose

Rancher Compose

Page 12: Rancher: 建立你的牧場艦隊

Components (Infrastructure)

Hosts

Containers

Page 13: Rancher: 建立你的牧場艦隊

Service

Service 為提供應用層級的服務Service 完成啟動至少需要一個以上的 container

在 Rancher 裡, service 間是可以自由互相連接的Docker Compose 的參數都能設定

Docker Compose 的參數是來自 Docker Run 的參數

Page 14: Rancher: 建立你的牧場艦隊

Service - Health Check

Page 15: Rancher: 建立你的牧場艦隊

Service - Sidekick

當多個 service 的屬性是綁在一起的時候,可以使用scaling 需要多個 service 同時 scaling

需要放在同一台 host ( 因為需要用 volume form)

Page 16: Rancher: 建立你的牧場艦隊

Service - Upgrade

Page 17: Rancher: 建立你的牧場艦隊

Service - Load Balancer

Page 18: Rancher: 建立你的牧場艦隊

Service - Service Alias, External Service

Page 19: Rancher: 建立你的牧場艦隊

Stacks

Stack 是一堆 Service 組合而成,提供一系列服務Stack 間的服務都能互相連結

Page 20: Rancher: 建立你的牧場艦隊

Stacks - Example

Page 21: Rancher: 建立你的牧場艦隊

Hosts

建 service 之前,要先有 host

host 之間的 container 互連免煩惱,一切自動設定

Page 22: Rancher: 建立你的牧場艦隊

Hosts

Page 23: Rancher: 建立你的牧場艦隊

Access Control

Page 24: Rancher: 建立你的牧場艦隊

Accounts

Page 25: Rancher: 建立你的牧場艦隊

Environments

Page 26: Rancher: 建立你的牧場艦隊

Access Controll

Page 27: Rancher: 建立你的牧場艦隊

Examples

Page 28: Rancher: 建立你的牧場艦隊

Examples

從無到有建置 Wordpress via Web UI

從無到有建置 Sentry via Rancher Compose

上 code via Web UI

上 code via Rancher Compose

Page 29: Rancher: 建立你的牧場艦隊

Conclusion

Page 30: Rancher: 建立你的牧場艦隊

Conclusion

Racnher 最初的設定是針對 production 環境的Rancher 建置 Stack 時,有時候會發現架構上能改善的地方

有提供 API / CLI ,做自動佈署很方便 官方也提供許多 catalog 可以使用,如 Jenkins

Page 31: Rancher: 建立你的牧場艦隊

FAQs

Page 32: Rancher: 建立你的牧場艦隊

FAQs

Upgrade 會直接砍掉重練,資料 service 請小心使用 同上, remove host 時,會自動做移機,但也是全部砍掉重練

Volume from 需要同個 host ,規劃 storage 時需注意Service 要外接出去,仍需機器設定配合

Page 33: Rancher: 建立你的牧場艦隊

Bugs

Load Balancer 可以指向 alias 。但是是沒有用的Load Balancer 可以設定多 FQDN to 多 TCP service 。但是它不會照你想的跑

有時開頁面會一片空,或是 link 是空的, reload 即可 當有指定 host 時, upgrade 需要再重選一次

Page 34: Rancher: 建立你的牧場艦隊

Suggestions

Page 35: Rancher: 建立你的牧場艦隊

試著考慮下列情境做改善Service 可以 scaling ,每次增加都會是全新的容器Service upgrade 後會被砍掉重練

application.ini 會被還原 - 每次都要進去 install editor + edit ini

除了 HTTP 外,外接服務會比較困難

Suggestions

Page 36: Rancher: 建立你的牧場艦隊

Thanks