Kubernetes 在雲原生世界發展這麼多年,也發展出了很多管理其集群生命週期的相關專案,如 kops, Rancher 等。而 VMware 則發起了一個名為 Cluster-API 的專案來利用 Kubernetes 本身的功能管理其他 Kubernetes 集群。本篇文章將會來簡單介紹 Cluster-API 這個專案。 Cluster-API 是什麼? Cluster API 是 Kubernetes 的子項目,專注於提供聲明式 API 和工具,以簡化多個 Kubernetes 集群的供應、升級和操作。 該專案由 Kubernetes Special Interest Group (SIG) Cluster Lifecycle 發起,使用 Kubernetes 風格的 API 和模式自動化平台運營商的集群生命週期管理。包含部署集群所需要的基礎設施,如虛擬機器、網絡、負載均衡器和虛擬網路等,以及 Kubernetes 集群設定都是和部署應用程式在 Kubernetes 上相似的模式進行設定管理。這使得在各種不同基礎設施環境中能夠實現一致和可重複的集群部署。 簡單來說,Cluster-API 會透過一些不同的 Custom Resource Definitions,來定義一個 Kubernetes cluster,並由相對應的元件去讀取這些定義並部署和管理其對應的集群。 目標: 利用使用聲明性 API 管理 Kubernetes […]
Container
- Cloud
- ...
透過 Ingress Nginx 公開 TCP/UDP 服務
Ingress Nginx 在 Kubernetes 中常被利用來提供網頁服務的反向代理和 load balancing。在一些狀況下,你可能會需要同一個 IP 也能夠提供其他 TCP/UDP 服務。這篇文章將會介紹在這種狀況下如何透過 Ingress Nginx 來作為 TCP/UDP 服務的 proxy。 用途 在大部分狀況下,Ingress Nginx 只會用來提供 HTTP/HTTPS 的反向代理和 load balancing,但是在架設 GitLab、Gitea 等服務時,除了 HTTP/HTTPS 外,也會需要 SSH port 提供 git 連結。在這種狀況下,又因 DNS 只能讓兩個不同的 port 使用的同一個 IP,所以將會需要利用 Ingress Nginx 進行 TCP 服務的 proxy。 設定 Ingress 在設計上不支援 TCP/UDP 服務,因此 Ingress controller 會需要利用 –tcp-services-configmap 跟 […]
KubeVirt 架構介紹

前幾日在 Cloud Native Taiwan User Group 久違的講了一場 KubeVirt 101,越玩越覺得這個計畫還真有趣。在這裡打算把 KubeVirt 101 講的內容稍微濃縮一下,將重點放在架構的地方來寫一篇介紹。推坑大家來玩玩這個在 Kubernetes 上跑 VM workload 的 operator。 基本介紹 官網原文: KubeVirt is a virtual machine management add-on for Kubernetes. The aim is to provide a common ground for virtualization solutions on top of Kubernetes. 簡單來說 KubeVirt 是一個讓使用者能夠在 Kubernetes 上跑虛擬機應用的 Kubernetes operator,讓使用者可以跑一些還沒容器化或是需要特殊 kernel 的應用。最大的好處在於維運上所有概念都跟一般的 Kubernetes container […]
Podman 介紹

Podman 曾經是 CRI-O project 中的一部分,後來被分離出成為一個獨立 project, libpod。Podman (Pod Manager) 的目標是提供一個跟 Docker 相似體驗的 container CLI,提供給使用者創立和運行 container。 開始之前 我們先來唸一段 All System Go Replacing Docker with Podman 中演講的一段宣言 I promise To say container registries rather than docker registries I promise To say container images rather than docker images I promise To say containers or OCI containers rather than […]
Container vs VM: When and Why?

Container 跟 Virtual Machine 的使用時機在網路上已經被討論了很久。每個人都有自己的看法和意見,有些人支持純 Container,有些支持純 VM,也有些支持 Container on VM。本篇文章將以個人看法針對 Container vs VM 做介紹跟其適用的使用時機做論述。 Container Container 在這 5 年來快速竄紅,憑的是其輕量化和快速部署的彈性。與其虛擬化整個硬體,Container 透過 cgroups 跟 namespace 將 host OS 的資源做隔離,也有人稱之為 OS 的虛擬化。 Container 共用 host 上的 kernel,只有其獨立的 binary 跟 libraries,所以比起 VM 在 image 大小跟啟動速度都快的許多。 Container 的優點: Image 很小:因為跟 host 共用 kernel,只需要提供需要的 OS 元件跟 libraries。 速度:部署極快,通常花數秒就可以生成一個 container。 可攜性:在正確的 kernel […]