Kubernetes K8s 以及 K3s
Kubernetes(常簡稱為K8s)是用於自動部署、擴展和管理「容器化(containerized)應用程式」的開源系統。[3]該系統由Google設計並捐贈給CNCF - Cloud Native Computing Foundation(今屬Linux基金會)來使用。
它旨在提供「跨主機集群的自動部署、擴展以及運行應用程式容器的平台」。[4] 它支持一系列容器工具, 包括Docker等。CNCF於2017年宣布首批Kubernetes認證服務提供商(KCSPs),包含IBM、華為、MIRANTIS等服務商。
Kubernetes也在很多其他公司的產品中被使用,例如Red Hat的OpenShift,[13][14] CoreOS的Tectonic, IBM的IBM私有雲產品,[15],精靈雲的EcOS[16],以及 VMware的PKS等等。
Kubernetes網站超多 enterprise case
就是用於 CI / CD
通常大公司都是整個換架構變成 microservices
然後就雲端 app 方便開發 也可以用 VM 裡面跑 K8S 這樣開發
如果流量大就增加副本數等等的
想玩的話可以用 minikube
他就是一個 VM 裡面有 Master and node
minikube 相關參考文章:
流量是透過一個 single portal 進去 Kubernetes cluster
缺點是 troubleshooting 會很難,因為 pod/container 很多串來串去
公司 CI/ CD 要換成 K8S 沒這麼容易
通常都經過很長時間 REVIEW,然後一部分一部分換
但如果只是做的 APP 雲端服務給 USER 用的話,就是靠 AWS 等等已經做好的 Kubernetes Infra ,主要設計寫個helm chart 就好了
現在很多 vCPE 產品,OpenNESS 等等,想要雲端部署 App ,都想使用 Kubernetes平台。
也有提出輕量化的版本 k3s - 5 less than k8s
Lightweight Kubernetes. Easy to install, half the memory, all in a binary less than 40mb.
Great for:
- Edge
- IoT
- CI
- ARM
K3s 是由 Rancher Labs 推出的 輕量化 Kubernetes 開源專案,也是 CNCF 官方認證的 Kubernetes 發布版本。而且是以產品設計出發的,讓管理者在設備資源有限的環境下,仍然可以良好的運作 Kubernetes,並管理 containers。因此,在這優勢下,K3s 可以很好的應用在 Edge, IoT, CI, ARM 等情境、環境下。
它所需的系統資源並不多:
- 在 Server 端: 只需要 512 MB 的 RAM
- 在 Node 端:只需要 75MB 的 RAM
- Disk 大小只需 200MB
而且可以用在 x86_64, ARMv7, ARM64 等平台架構。
K3s 相關文章:
其他補充:甚麼是微服務
微服務 (Microservices) 是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊 (Small Building Blocks) 為基礎,利用模組化的方式組合出複雜的大型應用程式,各功能區塊使用與語言無關 (Language-Independent/Language agnostic) 的 API 集相互通訊。
微服務的起源是由 Peter Rodgers 博士於 2005 年度雲端運算博覽會提出的微 Web 服務 (Micro-Web-Service) 開始,Juval Löwy 則是與他有類似的前導想法,將類別變成細粒服務 (granular services),以作為 Microsoft 下一階段的軟體架構,其核心想法是讓服務是由類似 Unix 管道的存取方式使用,而且複雜的服務背後是使用簡單 URI 來開放介面,任何服務,任何細粒都能被開放 (exposed)。這個設計在 HP 的實驗室被實現,具有改變複雜軟體系統的強大力量。
2014年,Martin Fowler 與 James Lewis 共同提出了微服務的概念,定義了微服務是由以單一應用程式構成的小服務,自己擁有自己的行程與輕量化處理,服務依業務功能設計,以全自動的方式部署,與其他服務使用 HTTP API 通訊。同時服務會使用最小的規模的集中管理 (例如 Docker) 能力,服務可以用不同的程式語言與資料庫等元件實作[1]。
留言
張貼留言
發表一下意見,互動一下唄!