1. 程式人生 > >Kubernetes(k8s) 實驗總結

Kubernetes(k8s) 實驗總結

K8s 總結

技術分享圖片 技術分享圖片

上面左邊是我的個人微信,如需進一步溝通,請加微信。 右邊是我的公眾號“Openstack私有雲”,如有興趣,請關註。


在上篇博文《Kubernetes 入門學習》中提到了Katacoda實驗環境可以進一步熟悉K8S的使用,具體網址是:

https://www.katacoda.com/courses/kubernetes/

最近花了一些時間完成這些實驗場景,一共有17個實驗場景,每個場景大概10分鐘左右,經過這些實驗,對K8S就有一個大體的了解。這些場景包含這些內容:

  • 啟動單個節點群集

了解如何啟動包含DNS和Kube UI的單節點Minikube群集


  • 使用Kubeadm啟動多節點群集

使用Kubeadm引導Kubernetes集群


  • 使用Kubectl部署容器

了解如何使用Kubectl啟動容器並使其可訪問


  • 使用YAML部署容器

了解如何使用YAML定義來部署容器


  • 部署留言簿Web應用程序示例

本場景教您如何使用Kubernetes部署Guestbook示例


  • 網絡介紹

了解可用的不同網絡方法


  • 創建入口路由

了解如何定義基於主機和路徑的Ingress路由


  • 生存和準備健康檢查

了解如何使用Liveness和Readiness探針確保容器健康


  • 開始使用CRI-O和Kubeadm

了解如何部署基於CRI-O的Kubeadm群集


  • 在Kubernetes上運行狀態服務

了解如何在Kubernetes上運行有狀態服務


  • 使用Kubernetes管理秘密和密碼

了解Kubernetes如何幫助確保機密


  • 用Kompose部署Docker Compose文件

了解如何使用Kompose部署現有的Docker Compose定義


  • 從源代碼部署到Kubernetes

如何在Kubernetes中從源代碼獲取正在運行的服務


  • Helm包管理器

使用Kubernetes的Helm Package Manager來部署Redis


  • Helm(經典)包管理器

使用Kubernetes的Helm(經典)包管理器來部署Redis


  • 在Kubernetes上安裝Weave Scope

了解如何在Kubernetes上運行Weave Scope


  • Kubeless入門

了解如何使用Kubeless將無服務器功能部署到Kubernetes


17個實驗涵蓋了k8s的安裝配置和使用,另外,對於實際使用很有幫助的Helm可以實現標準化模塊化功能組件(比如web服務、mariadb、redis等等)的自動化部署,包括自動化的鏡像下載並根據dockerfile制作自己的鏡像、上傳鏡像、自動配置標準化k8s的yaml部署配置文件。還有一個是k8s可視化組件Weave Scope,可以實現對整個k8s集群的web圖形界面管理,更加直觀方便的管理維護k8s集群。


經過實驗,個人感覺k8s真的做到了上層應用和基礎架構脫離,原來需要考慮的平臺差異、基礎架構、雙機冗余、容量擴展、軟件版本升級等等一系列很費人力和時間的事情,在k8s裏面全部被非常非常簡單的得到了解決。

k8s是基於容器管理docker,node節點類似於openstack的計算節點使用docker來完成對容器的承載,master類似於openstack的controller節點完成對node的管理以及對pod的調度、自動化健康監測、node節點資源的監控,以及其他自動化的pod副本部署或者遷移。

k8s的主要管理命令是kubectl,可以完成大部分的k8s的管理任務,從概念上來說,如果要學習k8s,一定要先熟悉docker的使用,kubectl對pod的相關管理命令的結構和docker非常類似。

開發人員使用k8s還是有一些復雜,如果需要平滑高效的使用k8s,應該還是需要使用Helm,Helm實現了大部分應用的標準模塊化,比如web應用,各類中間件應用,各類開源版的數據應用,但是需要解決網絡速度的問題,因為所有的應用都是由容器實現,一般容器文件都比較大,因此,後續使用需要考慮提前準備本地鏡像。

平時k8s本身的監控和維護,可以通過部署Weave Scope 來完成。

對於k8s的應用場景,非常適用於應用復雜、軟件應用版本變動頻繁、資源使用變化大的互聯網企業,對於中小規模的IT系統,個人覺得還是有一些小材大用。另外,也可以考慮直接使用紅帽的k8s商業版Openshift,就不用自己部署k8s平臺,直接使用即可。

個人覺得,對於k8s,應該要看做一個革命性的產品,因為它真正做到了上層應用於下層基礎架構解耦合,如果一個公司使用k8s架構,應用程序的維護就是一個個容器的維護和流動,可以放在本地物理機上的k8s平臺,也可以直接流動到公有雲,並且自動化程度足夠高,可以極大解放維護人員,使維護人員將更多的精力放到平臺架構方面方面。

Kubernetes(k8s) 實驗總結