Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Self-contained Helm-based OpenStack deployment ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kyle Bai
August 31, 2017
Technology
220
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
270
AWS Startup 2020 - AMIS
kairen
0
91
學習 Kubernetes 不是為了成為 YAML Engineer
kairen
0
360
How to make your container:Kubernetes is a bit more secure
kairen
0
220
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes(AWS))
kairen
0
110
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
kairen
0
130
Chatbot as a Service on Container(Kubernetes)
kairen
0
1k
IT IRONMAN 2020
kairen
0
110
Advanced Kubernetes For UMC
kairen
0
190
Other Decks in Technology
See All in Technology
Lightning近況報告
kozy4324
0
160
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.2k
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.2k
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2.3k
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
100
MCP Appsを作ってみよう
iwamot
PRO
4
690
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
脆弱性対応、どこで線を引くか
rymiyamoto
1
410
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
150
AIチャット検索改善の3週間
kworkdev
PRO
2
130
手塩にかけりゃいいってもんじゃない
ming_ayami
0
600
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Building the Perfect Custom Keyboard
takai
2
800
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to make the Groovebox
asonas
2
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Navigating Team Friction
lara
192
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
420
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
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 迎棧科技股份有限公司