對kubernetes的認識

一、k8s是什麼?

Kubernetes是一個輕便的和可擴展的開源平臺,用於管理容器化應用和服務,通過Kubernetes能夠進行應用的自動化部署和擴縮容。在Kubernetes中,會將組成應用的容器組合成一個邏輯單元以更易管理和發現。

二、基本概念理解:

1、master:管理整個的調度流程。

1.1API Server:是master與node交互的接口,同時此接口也是面向用戶的(用戶指令)。

                1.1.1kubectl:集羣管理命令行工具集,kube指令。

        1.1.2RestAPI:接口,配置文件。

        1.1.3WebUI:可操作的圖形化界面。        

1.2Controller-Manager:內部管理控制中心,實現集羣故障檢測和恢復的自動化工作,負責執行各種控制器。

1.3Scheduler:收集和分析當前集羣中所有Node節點的資源(內存、CPU)負載情況,然後依此分發新建的Pod到Kubernetes集羣中可用的節點。

1.4ETCD:數據庫,存數據以及節點的狀態 。

備註:Controller-Manager+Scheduler:相互調度,基於ECTD數據庫的數據,生成指令,下發給node,再記錄到ETCD。

2、node:worker一般會有多個 。

2.1kubelet:master API Server與Nod的通信橋樑,節點上的pod管家。

2.2kube-proxy:創建虛擬網卡,負載均衡、路由轉發。

2.3docker 必須安裝docker 環境。

三、k8s的關鍵特性:

  • 自動化裝箱:在不犧牲可用性的條件下,基於容器對資源的要求和約束自動部署容器。同時,爲了提高利用率和節省更多資源,將關鍵和最佳工作量結合在一起。
  • 自愈能力:當容器失敗時,會對容器進行重啓;當所部署的Node節點有問題時,會對容器進行重新部署和重新調度;當容器未通過監控檢查時,會關閉此容器;直到容器正常運行時,纔會對外提供服務。
  • 水平擴容:通過簡單的命令、用戶界面或基於CPU的使用情況,能夠對應用進行擴容和縮容。
  • 服務發現和負載均衡:開發者不需要使用額外的服務發現機制,就能夠基於Kubernetes進行服務發現和負載均衡。
  • 自動發佈和回滾:Kubernetes能夠程序化的發佈應用和相關的配置。如果發佈有問題,Kubernetes將能夠迴歸發生的變更。
  • 保密和配置管理:在不需要重新構建鏡像的情況下,可以部署和更新保密和應用配置。
  • 存儲編排:自動掛接存儲系統,這些存儲系統可以來自於本地、公共雲提供商(例如:GCP和AWS)、網絡存儲(例如:NFS、iSCSI、Gluster、Ceph、Cinder和Floker等)。

四、k8s的常用命令

1.查看集羣信息:

kubectl cluster-info

2.查看各組件的信息:

kubectl -s http://localhost:8080 get componentstatuses

3.查看節點信息:

kubectl get nodes

4.創建文件信息:

kubectl create -f 文件名

5.查看rc和namespace:

kubectl get rc,namespace

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章