Kubernetes 從零開始 - Pod 高級抽象 Workload Resources
High Level Abstraction 之前提到 Pod 是 Kubernetes 當中部署的最小單位,因為其設計關係(比如說容易被 reschedule 以及被刪除等等),是比較不適合直接操作的 因此 Kubernetes 提供了更高層次的抽象,讓我們可以更方便的管理 Pod 本文將會走過一遍這些更高階的...
High Level Abstraction 之前提到 Pod 是 Kubernetes 當中部署的最小單位,因為其設計關係(比如說容易被 reschedule 以及被刪除等等),是比較不適合直接操作的 因此 Kubernetes 提供了更高層次的抽象,讓我們可以更方便的管理 Pod 本文將會走過一遍這些更高階的...
Introduction to Kubernetes Volume 從 Docker 的年代開始,掛載 host 的檔案系統不是什麼新鮮事 而 mount 的方式也很直覺,直接指定 host 的檔案路徑,你就能夠在 container 裡面存取相關的資料 到了 Kubernetes,也是有一樣的概念,但是 mou...
Proxy Proxy 是一個中間人,負責處理 client 與 server 之間的溝通請求 相比於 client 直接與 server 溝通,Proxy 的優勢在於可以進行流量控制、負載平衡、安全性控制等 他可以分為兩類 Forward Proxy 以及 Reverse Proxy
Scaling Workloads 只有單台機器服務的情況下,多數是不足的 因為你需要考量到,比如說服務突然的不可用(軟體錯誤、硬體故障等等的),或者是流量真的大到一台機器處理不來的情況 這時候你就會需要用到 “scaling” 的概念
Multiple Container in Pod 誠如我們之前在 Kubernetes 從零開始 - 容器基本抽象 Pod | Shawn Hsu 裡面提到的 Pod 本身其實可以執行多個 Container,只是說平常大家習慣是一個 Pod 一個 Container 而已
Preface 你應該有發現,Kubernetes 的佈署過程中你需要撰寫一定數量的 yaml 設定檔 不外乎是 application 的 deployment, 設定檔的 configmap, secret 等等 每次更新這些設定檔的時候,你都需要手動的去修改這些 yaml 檔案 這樣的過程是非常繁瑣且容易出...
Kubernetes Object Kubernetes object 並不是指 Pod 或者是 Deployment 這種 Resource 複習一下,Resource 是所有你可以透過 Kubernetes 使用的物件(操作 kubectl 或Kubernetes API) 而 object 是這些 Reso...
Application Status 在 Kubernetes 中,一個應用程式的狀態是非常重要的 當一個應用程式不可用,造成的損失是巨大的
Define Observable System 服務其實不太可能是完全穩定的,總會有一些問題發生 不論是 application 自身的 bug 還是因為 cloud provider 主機異常掉線 這些問題都會對服務造成影響
Preface 之前我們看過可以使用 Kueue 這類工具達成某種程度的控制,但是它比較是資源傾向的 像是 docker 有提供 $ docker pause 之類的指令,能夠允許你做到 pause and resume 的操作 更進階的需求就會是控制 container 的執行順序
Extend Kubernetes Resource Kubernetes 有許多內建的 Resource,像是 Pod, Deployment, Service 等等 但開發者的需求總是不斷的增加,有時候內建的 Resource 並不能滿足商業需求 假設你需要表達一個很複雜的資源,現有的其實寫起來會很複雜
Kubernetes Application Testing 軟體工程裡面測試應用程式是一個很重要的環節,開發 Cloud Native 應用程式的時候也一樣 常見的就是使用 Kubernetes 進行開發,建立 Pod 跑東西之類的 所以很明顯這種邏輯也是需要進行測試覆蓋的
Introduction to Kueue 你可以在 Kubernetes 裡面塞入任一數量的 job,但這只是理論上 實務上會因為硬體資源的限制,你只可以執行有限數量的 job Kueue 這個工具可以根據這些 限制,允許有限數量的 job 同時執行 它可以做到一些基礎的排程機制,如 Job 要不要等待,...
Controller Pattern 有關 Controller Pattern 及 Controller 基本概念可以參考 Kubernetes 從零開始 - Informer 架構以及 Controller Pattern | Shawn Hsu
Introduction to Helm Controller 如果你是使用 Helm Chart 來管理你的 Kubernetes 資源 一個常見的需求會是,你可能會需要更新你的 chart 不管是 image version 還是一些設定檔的更新
Abstraction over Container Pod 其實是為了更好的管理 Container 而生的一層抽象層 所以他同時也是最小的部署單位(注意到不是 Container)
Development Obstacles in Kubernetes 不知道你有沒有這種感覺,Kubernetes 對本地開發來說真的挺不友善的(至少以我來說) 除了你要架設一個本地的 Kubernetes Cluster 之外,還要不斷地手動更新 image
Preface 現今網頁服務由於 container 的興起,大幅度的改變了整個 web 的生態系,一切都圍繞著 container 雖然說 container 改變了開發者的工作流程,使得大部分得以簡化,但是仍有一些問題依然存在