Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Self-contained Helm-based OpenStack deployment ...
Search
Kyle Bai
August 31, 2017
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Self-contained Helm-based OpenStack deployment on Kubernetes
Kyle Bai
August 31, 2017
More Decks by Kyle Bai
See All by Kyle Bai
讓 Jenkins 老爺爺掌舵帶領開發者航向美好新世界
kairen
1
330
AWS Startup 2020 - AMIS
kairen
0
110
學習 Kubernetes 不是為了成為 YAML Engineer
kairen
0
410
How to make your container:Kubernetes is a bit more secure
kairen
0
240
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes(AWS))
kairen
0
130
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
kairen
0
150
Chatbot as a Service on Container(Kubernetes)
kairen
0
1.1k
IT IRONMAN 2020
kairen
0
130
Advanced Kubernetes For UMC
kairen
0
210
Other Decks in Technology
See All in Technology
go-sqletch
moznion
0
140
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
480
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Refining Active Record
shugo
0
160
WasmをRustにする
sansantech
PRO
0
250
Classmethod Company Deck
satoshi7
1
700
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
590
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
今さら理解するウェブフォントver.2026
takanorip
3
830
USB PDを使ってスマホを労わりたい
raspython3
0
180
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
250
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
110
Featured
See All Featured
Mind Mapping
helmedeiros
1
400
The World Runs on Bad Software
bkeepers
PRO
72
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Ethics towards AI in product and experience design
skipperchong
2
430
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Unsuck your backbone
ammeep
672
58k
A Soul's Torment
seathinner
8
3.8k
Building Applications with DynamoDB
mza
96
7.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
https://goo.gl/rjVqwx
Self-contained Helm-based OpenStack deployment on Kubernetes COSCUP 2017 開源⼈人年年會 @台灣⼤大學社會科學院
Room 306
Software Engineer @ inwinSTACK ☑早期在校主要撰寫 java 與 objc 程式語⾔言,並專注於 Mobile
應⽤用程 式開發,具備四年年開發經驗。次要研讀 Hadoop 與 Spark 資料運算框 架,以及 Linux 相關技術。 ☑⼯工作期間則專注於 OpenStack、Ceph 與 Container 相關等 Cloud Native 技術與開源專案,閒暇之餘會參參與相關專案社區及貢獻,並利利 ⽤用部落落格、GitHub 與 GitBook 做筆記。 ☒現在則在利利⽤用相關技術管理理 Ethereum 礦場,以公司電費轉換提升 ⾃自我年年終獎⾦金金(誤)。 kairen(
[email protected]
) About Me https://kairen.github.io/
Agenda Kubernetes What is Helm? What is OpenStack-Helm? Live(Dead) Demo
Call to Action
Kubernetes Kubernetes 是 Google 開源的容器(Container)分散式管理理系統,是建於 Docker(或 OCI 標準容器 Runtime 引擎)
之上的容器叢集排程系統
Kubernetes Kubernetes 是 Google 開源的容器(Container)分散式管理理系 統,是 Google⼗十幾年年以來來⼤大規模應⽤用容器技術的經驗累積和昇 華的⼀一個重要成果,是建於 Container(OCI標準容器)之上的容器 叢集排程服務,簡稱為K8s(‘k’
+ 8 letters + ’s’)。 ⽬目前為 CNCF 專案之⼀一。
None
Kubernetes Growth
RightScale State of the Cloud Report
Kubernetes Pros Kubernetes 管理理跨區域與主機的容器節點,提供基本部署、維運、管 理理,以及執⾏行行各項應⽤用程式,並具備多種特性。
Kubernetes Architecture Kubernetes 屬於分散式架構系統,主要由兩兩種節點⾓角⾊色組成: • Masters – 主要⼯工作為提供 API 與管理理⼯工作節點,可視為主節點。
• Nodes(Minions) – 主要執⾏行行容器應⽤用的節點,上⾯面會執⾏行行許多容 器。
What is Kubernetes: A Three Tier Application
Kubernetes Master Kubernetes Master 包含了了四個基本組件: • Etcd: 主要為 Kubernetes 的資訊儲存
與服務發現功能。 • API Server:以 REST APIs 介⾯面⽅方式提 供所有業務邏輯CURD操作。 • Controller Manager Server:所有其他 叢集級功能都是透過控制管理理器 (Controller Manager)來來操作。 • Scheduler:負責整個分散式系統的資源 排程。
Kubernetes Node(Minion) Kubernetes Node 包含了了三個基本組件: • Kubelet:負責管理理的映像檔、容器與資 料 Volume等操作。也是連接 Master
的橋樑。 • Proxy: 為了了解決外部網路路能夠群曲跨 機器叢集中容器提供的應⽤用服務⽽而設 計。⽀支援 TCP,UDP stream forwarding 或 round robin TCP,UDP forwarding。 • Container:基於 OCI Container Rutime 來來執⾏行行應⽤用程式容器實例例。
Kubernetes Container • CRI • Docker • rkt • frakti
• cri-containerd • cri-o • virtlet • Infranetes
Kubernetes Network • Overlay / Underlay Network • CNI/CNM •
Flannel • Calico • Weave • Kuryr • OpenContrail • OVN
Kubernetes Storage • CSI • Volumes • Persistent Volumes •
Many Volume Plugin • Storage Class • External-storage • Dynamic Provisioning
Kubernetes - Pod Pod 是 K8s 中最⼩小的部署單位,可以將⼀一個或多個容器組成⼀一個 Pod,Pod 所包含的容器只會運⾏行行在同⼀一個 Host
上,並共享 network namespaces、IP port,每個 Pod的 network mapping 都是由 container pause 所封裝處理理的。
Kubernetes - Deployments Deployments(Replication C o n t r o
l l e r s ) 是 部 署 群 組 Pods,其會確保 K8s 系統中 指定數量量副本的 Pod 存活, 也可以利利⽤用 Label 及 Rolling update 來來進⾏行行副本的擴展或 更更新。
Kubernetes - Service Service 是 pod 服務的抽象層, 具有簡單負載平衡的功能,由於 pod 的數量量與IP
不會固定,可將 ⼀一群 pod指派成 service 並給予 ⼀一個固定IP (cluster IP),service 會將請求⾄至 cluster IP 的流量量導 入其對應 pod。
Kubernetes - Objects
What is Helm? Helm 是 Kubernetes Chart 的管理理⼯工具,Kubernetes Chart 是⼀一套預先組態的
Kubernetes 資源套件
Helm • Helm 是 Kubernetes 的套件管理理⼯工 具。 • Helm 幫助我們定義『Helm
chart』 來來描述 Kubernetes 應⽤用程式的安裝與 升級等功能。 • ⽬目前是 Deis(MicroSoft)、Bitnami 與 Google 等公司以及社群開發者維護。 • ⽬目前是 CNCF 專案之⼀一。 * https://github.com/kubernetes/charts * https://kubeapps.com/
Helm Basic Architecture
Helm Two parts Tiller Server:主要負責接收來來⾄至 Client 的指令,並透過 kube- apiserver 與
Kubernetes 叢集做溝通,根據 Chart 定義的內容,來來產⽣生與 管理理各種對應 API 物件的 Kubernetes 部署檔案(⼜又稱為 Release)。 Helm Client:⼀一個安裝 Helm CLI 的機器,該機器透過 gRPC 連接 Tiller Server 來來對 Repository、Chart 與 Release 等進⾏行行管理理與操作, 如建立、刪除與升級等操作。
Chart:主要定義要被執⾏行行的應⽤用程式中,所需要的⼯工具、資源與服 務等資訊,類似 Homebrew 的 Formula 或是 APT 的 dpkg 檔案。
Release:⼀一個被執⾏行行於 Kubernetes 的 Chart 實例例,Chart 能夠在⼀一 個叢集中擁有多個 Release。 Repository:主要⽤用來來存放 Chart 的倉庫。 Template:與 GO/Sprig 板模混合的 Kubernetes 組態檔案。 Helm Dictionary
Chart File Structure Variable file format Customize generator Template language:
{{.foo | quote}}
Dependency Management • Helm subcharts • requirements.yaml • Immutability •
Nested • versioned • helm dependency —help
Helm Hooks • 在發布⽣生命週期的特定時間執⾏行行 {operation}。 • {operation} 可以是任何 K8s 資
源,如 Job, Secret, Pod等。 • ⼀一個 Hook 建立的資源無法作為 發布版本的⼀一部分,來來進⾏行行追蹤 與管理理。
What is OpenStack-Helm? OpenStack-Helm 是 Kubernetes 上基於 Helm 進⾏行行部屬 OpenStack
服務的專案
OpenStack-Helm ⽬目標是在 Kubernetes 上透過 Helm Chart 部署 OpenStack 環境,實現鬆散耦合的 OpenStack
服務,來來簡化部署、維護與升級流程。 • 2016 年年 11 ⽉月 17⽇日,起始於 AT&T 的專案。 • 2017 年年 4 ⽉月11 ⽇日,正式發布⾄至 OpenStack Foundation。 • 2017 年年 10 ⽉月 17 ⽇日,正式穩定版本 1.0 預計釋出⽇日期。
OpenStack-Helm Chart OpenStack-Helm 利利⽤用建立不同 的 Chart 來來分別定義 OpenStack 中各種服務該如何部署與執⾏行行。 截⾄至⽬目前
Chart 已⽀支援 14 項左 右的 OpenStack 服務。 • Keystone • Glance • Nova • Neutron • Horizon • Magnum • Ironic … etc.
More Detail: Kubernetes Underlay of OpenStack
Image Agnostic & Managing Immutable Containers OpenStack-Helm 將容器視為 OpenStack 服務程式的簡單程式碼桶。
• OpenStack 服務⾃自⾝身必須被安裝在容器內。 • 簡單的組態和初始化腳本是在 run-time 的上層映像檔 • 所有注入的腳本都存在⼀一些最⼩小的相依關析(e.g. bash, python)
Parent Charts vs. Independent Charts 每個 OpenStack 服務員件都可以獨立安裝。
Clear Re-usable Patterns | Simple & Complex Installs
Works for Small & Extremely Large Installations • 服務實例例副本可調整。 •
可選資源配額。 • ⽀支援 Ingress 與 NodePort 兩兩者。 • ⽀支援任何命名空間中的任何服務。 • ⽀支援 Kubernetes 內外的各種服務 (endpoints)。 • ⽀支援 Rolling-update 的服務更更新。
Live(Dead) Demo 就來來跑看看吧....
Call to Action ⽬目前需要⼤大家們⼀一起來來貢獻喲
Call to Action • 輕量量化⽅方式有助於促進更更多的貢獻。 • 需要更更多的核⼼心多樣性 (Across the community)。
• 結合 OpenStack 與 Kubernetes 社區⼀一起進⾏行行。 • Roadmap that can be publicly shared!!! • Community IRC Meetings: [Every Tuesday @ 3PM UTC], #openstack- meeting-5 on freenode. • OpenStack Helm Doc,https://docs.openstack.org/developer/openstack-helm • Project URL in GitHub,https://github.com/openstack/openstack-helm/ • OpenStack-helm Slack,http://slack.k8s.io/,#openstack-helm • OpenStack-helm launchpad,https://launchpad.net/openstack-helm • Community Meeting Agenda,https://etherpad.openstack.org/p/openstack- helm-meeting-agenda
Thank You!! www.inwinstack.com 迎棧科技股份有限公司