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
20251023 - KubeSummit 2025 - Kubespray and IaC ...
Search
ChengHao Yang
October 23, 2025
Technology
0
5
20251023 - KubeSummit 2025 - Kubespray and IaC Practice Automating On-Premise Kubernetes Deployment
ChengHao Yang
October 23, 2025
Tweet
Share
More Decks by ChengHao Yang
See All by ChengHao Yang
20251020 - Cathay Open Source Meetup #2 - Cloud Native Ecosystem in Taiwan
tico88612
0
1
20250810 - CNTUG Meetup #69 / COSCUP 2025 - Non-Code Contributions for Beginners: Introduction to the Kubernetes Release Team
tico88612
0
66
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
260
20241128 - CNTUG Meetup - Recap: KubeCon + CloudNativeCon North America 2024
tico88612
0
36
20241024 - CNTUG meetup - Kubernetes v1.31 簡單雜談
tico88612
0
96
20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以 Hexo Blog 為例設計專屬的 CI/CD Pipeline
tico88612
0
44
Other Decks in Technology
See All in Technology
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
1
610
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1.3k
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
81k
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
940
混合雲環境整合異質工作流程工具運行關鍵業務 Job 的經驗分享
yaosiang
0
140
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
310
[2025年10月版] Databricks Data + AI Boot Camp
databricksjapan
1
240
OAuthからOIDCへ ― 認可の仕組みが認証に拡張されるまで
yamatai1212
0
160
FinOps について (ちょっと) 本気出して考えてみた
skmkzyk
0
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Fireside Chat
paigeccino
40
3.7k
Thoughts on Productivity
jonyablonski
70
4.9k
Visualization
eitanlees
149
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Statistics for Hackers
jakevdp
799
220k
Rails Girls Zürich Keynote
gr2m
95
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Optimizing for Happiness
mojombo
379
70k
Site-Speed That Sticks
csswizardry
13
920
Transcript
ChengHao Yang @ KubeSummit 2025 Kubespray 與 IaC 實踐 自
動化建置地端 Kubernetes 1
2 • CNCF Ambassador • Kubestronaut • Co-organizer @ CNTUG
• Lead organizer @ KCD Taipei 2025 • Maintainer @ Kubespray (SIG Cluster Lifecycle) • Release Signal Lead @ Kubernetes v1.35 $ whoami ChengHao Yang 梯 口 (tico88612)
Agenda • 地端建置 Kubernetes 流程 • 建置 VM 方 法
• Kubespray 安裝 • 如何改善這些安裝流程? 3
地端 Kubernetes 如何建置? 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 • 設定多台 VM 網路、套件 (CRI) 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 • 設定多台 VM 網路、套件 (CRI) • 用 Kubeadm 建立 cluster 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 • 設定多台 VM 網路、套件 (CRI) • 用 Kubeadm 建立 cluster • (其他節點) 用 Kubeadm 加入 cluster 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 • 設定多台 VM 網路、套件 (CRI) • 用 Kubeadm 建立 cluster • (其他節點) 用 Kubeadm 加入 cluster • 安裝 CNI 等套件 4
地端 Kubernetes 如何建置? • 手 中數台 Proxmox VE 或 OpenStack,建立多台
VM。 • 設定多台 VM 網路、套件 (CRI) • 用 Kubeadm 建立 cluster • (其他節點) 用 Kubeadm 加入 cluster • 安裝 CNI 等套件 4 需要花費多少時間?
建置 VM 5
建置 VM 5
建置 VM 5 需要 Initial VM 嗎?有更快的 方 法建立 VM
Template?
快速啟動並設定新建的 VM • 由 Canonical 維護套件 • 用 於虛擬機 首
次啟動時,執 行 初始化的設定: • 使 用 者名稱、網路、package、 自 訂腳本等 • 多數 cloud image 皆可 支 援 • 普遍 用 於各 大 公有雲、私有雲等環境 Cloud Init 6
7
7 Ubuntu Cloud Image
7 Ubuntu Server ISO Ubuntu Cloud Image
8 Source: https://pve.proxmox.com/wiki/Cloud-Init_Support
8 Source: https://pve.proxmox.com/wiki/Cloud-Init_Support 使 用 者 密碼 網路設定 SSH 公鑰
9 Source: https://cloudinit.readthedocs.io/en/latest/reference/modules.html
至 少 Cloud Init 不需要 每個 VM 手 動安裝 10
建置 VM 11
建置 VM 11
建置 VM 11
建置 VM 11 複製貼上 VM 能更有效率嗎?
基礎架構即程式碼 • 宣告式語法描述與管理資源(VM、VPC、 Load Balancer、DNS 等) • 讓環境可重現、可版本控制、可 review •
除了公有雲以外,私有雲 Proxmox VE 和 OpenStack 皆有套件 支 援 Infrastructure as Code 12
13
13 Cloud Init 設定
14 Source: https://opentofu.org/docs/language/meta-arguments/count/
15 Source: https://opentofu.org/docs/language/meta-arguments/for_each/
Kubernetes 發 行 版選擇 • RKE 2 (SUSE) • K3s
(SUSE) • K0s (Mirantis) • Kubeadm (Kubernetes O ffi cial) • Kubespray (Kubernetes SIG cluster lifecycle subproject) 16
Kubespray Kubeadm + Ansible Playbook • K8s SIG Cluster Lifecycle
的 子 專案 —— Vendor Neutral • 基於 Ansible 建構的腳本,執 行 Kubeadm,適 用 於 bare metal 或 VM 等環境。 • 整合常 用 的 CRI、CNI、CSI 等,應 用 程式包含 Gateway API、MetalLB 等。 • v2.29.0 後 支 援安裝 Prometheus Operator CRDs,可 用 於監控前置安裝。 17
Kubespray 安裝流程 • 設定變數、inventory • 執 行 ansible-playbook 18
19
19
Kubespray 安裝 方 式 Ansible Playbook 20
Kubespray 安裝流程 • 設定變數、inventory • 可以根據 IaC 結果 而生 成?
• 執 行 ansible-playbook • 產 生 相關檔案和 infra 後 自 動執 行 ? 21
22
22 Dev 叢集設定
22 API Server Domain IP & Port
22 Etcd 主機資訊 Control Plane 主機資訊 Worker 主機資訊
22
23
24
24
25
25
26
27
27 執 行 ansible-playbook
27 環境變數
27 需要等這些資源完成後,才可執 行
28
Takeaway • Cloud Init 省下 VM 初始化安裝設定 • IaC 管理
VM 的 大 量建立,減少 VM 手 動複製的成本 • Kubespray 是 Kubeadm + Ansible 腳本,由 Kubernetes 官 方 維護 • 根據 IaC 資訊, 自 動產 生 inventory 和變數,執 行 ansible-playbook • 減少 人 為介入,提升建置 cluster 品質、效率 29
Improvement • 加入節點時,建立資源後,要 手 動執 行 scale.yml • 刪除節點時,要 手
動執 行 remove_node.yml 後,再移除 infra 設定 • 升級 cluster …… 需要配合 Kubespray 版本 30
Special Thanks! 覺揚夥伴:喬立 31
如何參與 Kubespray 專案? 32
如何參與 Kubespray 專案? • 專案網站:https://kubespray.io • 加入 Kubernetes Slack 頻道:
• 使 用 問題:#kubespray • 開發問題:#kubespray-dev • GitHub 連結:https://github.com/kubernetes-sigs/kubespray 33 現役 approvers yankay tico88612 VannTen mzaian ant31
想要參與更多雲端原 生 技術討論? 34
35 • Cloud Native Taiwan User Group 是 CNCF 認可的在地社群。
• 活動皆免費*限額報名參與。 • 投稿後並完成演講,我們將會贈 送 CNCF Store 一 件禮物! • 官 方 網站:https://cloudnative.tw CNTUG meetup 每 月 聚會 + Call for Speaker 徵稿連結 CNTUG 聚會報名 官 方 網站 * 僅收場地費
36 Group Pages Join CNTUG!
37 • Website: https://tico.tw • Facebook: @tico88612 • Instagram: @__tico88612__
• GitHub: @tico88612 • LinkedIn: in/tico88612 • Telegram: @tico88612 Thank You! Please feel free to contact me!