$30 off During Our Annual Pro Sale. View Details »
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
130
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
6
20250810 - CNTUG Meetup #69 / COSCUP 2025 - Non-Code Contributions for Beginners: Introduction to the Kubernetes Release Team
tico88612
0
69
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
270
20241128 - CNTUG Meetup - Recap: KubeCon + CloudNativeCon North America 2024
tico88612
0
40
20241024 - CNTUG meetup - Kubernetes v1.31 簡單雜談
tico88612
0
100
20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以 Hexo Blog 為例設計專屬的 CI/CD Pipeline
tico88612
0
44
Other Decks in Technology
See All in Technology
メッセージ駆動が可能にする結合の最適化
j5ik2o
9
1.7k
Design System Documentation Tooling 2025
takanorip
0
580
AI時代のインシデント対応 〜時代を切り抜ける、組織アーキテクチャ〜
jacopen
4
180
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
1
270
MySQL AIとMySQL Studioを使ってみよう
ikomachi226
0
110
Eight Engineering Unit 紹介資料
sansan33
PRO
0
5.6k
『ソフトウェア』で『リアル』を動かす:クレーンゲームからデータ基盤までの統一アーキテクチャ / アーキテクチャConference 2025
genda
0
2.3k
私のRails開発環境
yahonda
0
150
ローカルLLM基礎知識 / local LLM basics 2025
kishida
25
11k
段階的に進める、 挫折しない自宅サーバ入門
yu_kod
5
2k
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
4
1.3k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
15k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Pragmatic Product Professional
lauravandoore
36
7k
Bash Introduction
62gerente
615
210k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
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!