溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行K8S的總結分析

發(fā)布時間:2021-12-16 09:22:26 來源:億速云 閱讀:133 作者:柒染 欄目:云計算

這期內容當中小編將會給大家?guī)碛嘘P怎么進行K8S的總結分析,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、介紹

為什么需要 Kubernetes,它能做什么?

容器是打包和運行應用程序的好方式。在生產環(huán)境中,你需要管理運行應用程序的容器,并確保不會停機。 例如,如果一個容器發(fā)生故障,則需要啟動另一個容器。如果系統(tǒng)處理此行為,會不會更容易?

這就是 Kubernetes 來解決這些問題的方法! Kubernetes 為你提供了一個可彈性運行分布式系統(tǒng)的框架。

Kubernetes 會滿足你的擴展要求、故障轉移、部署模式等。 例如,Kubernetes 可以輕松管理系統(tǒng)的 Canary 部署。

Kubernetes 為你提供:

  • 服務發(fā)現(xiàn)和負載均衡

    Kubernetes 可以使用 DNS 名稱或自己的 IP 地址公開容器,如果進入容器的流量很大, Kubernetes 可以負載均衡并分配網(wǎng)絡流量,從而使部署穩(wěn)定。

  • 存儲編排

    Kubernetes 允許你自動掛載你選擇的存儲系統(tǒng),例如本地存儲、公共云提供商等。

  • 自動部署和回滾

    你可以使用 Kubernetes 描述已部署容器的所需狀態(tài),它可以以受控的速率將實際狀態(tài) 更改為期望狀態(tài)。例如,你可以自動化 Kubernetes 來為你的部署創(chuàng)建新容器, 刪除現(xiàn)有容器并將它們的所有資源用于新容器。

  • 自動完成裝箱計算

    Kubernetes 允許你指定每個容器所需 CPU 和內存(RAM)。 當容器指定了資源請求時,Kubernetes 可以做出更好的決策來管理容器的資源。

  • 自我修復

    Kubernetes 重新啟動失敗的容器、替換容器、殺死不響應用戶定義的 運行狀況檢查的容器,并且在準備好服務之前不將其通告給客戶端。

  • 密鑰與配置管理

    Kubernetes 允許你存儲和管理敏感信息,例如密碼、OAuth 令牌和 ssh 密鑰。 你可以在不重建容器鏡像的情況下部署和更新密鑰和應用程序配置,也無需在堆棧配置中暴露密鑰

二、Kubernetes 組件

當我們部署完 Kubernetes, 即擁有了一個完整的集群。

一個 Kubernetes 集群包含由一組被稱作節(jié)點的機器組成。這些節(jié)點上運行 Kubernetes 所管理的容器化應用。集群具有至少一個工作節(jié)點。

工作節(jié)點托管作為應用負載的組件的 Pod ??刂破矫婀芾砑褐械墓ぷ鞴?jié)點和 Pod 。 為集群提供故障轉移和高可用性,這些控制平面一般跨多主機運行,集群跨多個節(jié)點運行。

怎么進行K8S的總結分析

三、 Pod

Pod是一組(一個或多個)容器; 這些容器共享存儲、網(wǎng)絡、以及怎樣運行這些容器的聲明。

四、Kubernetes API

Kubernetes 控制面 的核心是 API 服務器。 API 服務器負責提供 HTTP API,以供用戶、集群中的不同部分和集群外部組件相互通信。

Kubernetes API 使你可以查詢和操縱 Kubernetes API 中對象(例如:Pod、Namespace、ConfigMap 和 Event)的狀態(tài)。

大部分操作都可以通過 kubectl 命令行接口或 類似 kubeadm 這類命令行工具來執(zhí)行, 這些工具在背后也是調用 API。不過,你也可以使用 REST 調用來訪問這些 API。

Kubernetes API 服務器驗證并配置 API 對象的數(shù)據(jù), 這些對象包括 pods、services、replicationcontrollers 等。 API 服務器為 REST 操作提供服務,并為集群的共享狀態(tài)提供前端, 所有其他組件都通過該前端進行交互。

五、kube-controller-manager 

在主節(jié)點上運行 控制器 的組件。

從邏輯上講,每個控制器都是一個單獨的進程, 但是為了降低復雜性,它們都被編譯到同一個可執(zhí)行文件,并在一個進程中運行。

這些控制器包括:

  • 節(jié)點控制器(Node Controller): 負責在節(jié)點出現(xiàn)故障時進行通知和響應。

  • 副本控制器(Replication Controller): 負責為系統(tǒng)中的每個副本控制器對象維護正確數(shù)量的 Pod。

  • 端點控制器(Endpoints Controller): 填充端點(Endpoints)對象(即加入 Service 與 Pod)。

  • 服務帳戶和令牌控制器(Service Account & Token Controllers): 為新的命名空間創(chuàng)建默認帳戶和 API 訪問令牌.

六、Node 組件

節(jié)點組件在每個節(jié)點上運行,維護運行的 Pod 并提供 Kubernetes 運行環(huán)境。

kubelet

一個在集群中每個節(jié)點(node)上運行的代理。 它保證容器(containers)都 運行在 Pod 中。

kubelet 接收一組通過各類機制提供給它的 PodSpecs,確保這些 PodSpecs 中描述的容器處于運行狀態(tài)且健康。 kubelet 不會管理不是由 Kubernetes 創(chuàng)建的容器。

kube-proxy

kube-proxy 是集群中每個節(jié)點上運行的網(wǎng)絡代理, 實現(xiàn) Kubernetes 服務(Service) 概念的一部分。

kube-proxy 維護節(jié)點上的網(wǎng)絡規(guī)則。這些網(wǎng)絡規(guī)則允許從集群內部或外部的網(wǎng)絡會話與 Pod 進行網(wǎng)絡通信。

如果操作系統(tǒng)提供了數(shù)據(jù)包過濾層并可用的話,kube-proxy 會通過它來實現(xiàn)網(wǎng)絡規(guī)則。否則, kube-proxy 僅轉發(fā)流量本身。

七、 容器運行環(huán)境

容器運行環(huán)境是負責運行容器的軟件。

Kubernetes 支持多個容器運行環(huán)境: Docker、 containerd、CRI-O 以及任何實現(xiàn) Kubernetes CRI (容器運行環(huán)境接口)。

八、插件(Addons)

插件使用 Kubernetes 資源(DaemonSet、 Deployment等)實現(xiàn)集群功能。 因為這些插件提供集群級別的功能,插件中命名空間域的資源屬于 kube-system 命名空間。

下面描述眾多插件中的幾種。有關可用插件的完整列表,請參見 插件(Addons)。

DNS

盡管其他插件都并非嚴格意義上的必需組件,但幾乎所有 Kubernetes 集群都應該 有集群 DNS, 因為很多示例都需要 DNS 服務。

集群 DNS 是一個 DNS 服務器,和環(huán)境中的其他 DNS 服務器一起工作,它為 Kubernetes 服務提供 DNS 記錄。

Kubernetes 啟動的容器自動將此 DNS 服務器包含在其 DNS 搜索列表中。

Web 界面(儀表盤) 

Dashboard 是Kubernetes 集群的通用的、基于 Web 的用戶界面。 它使用戶可以管理集群中運行的應用程序以及集群本身并進行故障排除。

容器資源監(jiān)控

容器資源監(jiān)控 將關于容器的一些常見的時間序列度量值保存到一個集中的數(shù)據(jù)庫中,并提供用于瀏覽這些數(shù)據(jù)的界面。

集群層面日志

集群層面日志 機制負責將容器的日志數(shù)據(jù) 保存到一個集中的日志存儲中,該存儲能夠提供搜索和瀏覽接口。

九、etcd

etcd 是兼具一致性和高可用性的鍵值數(shù)據(jù)庫,可以作為保存 Kubernetes 所有集群數(shù)據(jù)的后臺數(shù)據(jù)庫。

您的 Kubernetes 集群的 etcd 數(shù)據(jù)庫通常需要有個備份計劃。

要了解 etcd 更深層次的信息,請參考 etcd 文檔

十、相關命令

kubectl help:幫助命令,查看k8s所有命令

kubectl help xxx:查看某個具體命令的詳細使用,如kubectl help config:如下圖,查看config命令的具體使用,如kubectl config view,查看詳細的配置文件,如hzaz1-hubble-02表示集群名稱,集群中又有多個namespace。

注意:k8s上namespace只是類似于一個分組,方便進行管理,并不對資源進行隔離,即一個namespace服務如果壓力過大,可能影響其它namespace服務,如hubble-manager可能影響到hubble-platform

怎么進行K8S的總結分析

怎么進行K8S的總結分析

怎么進行K8S的總結分析

kubectl get nodes:獲取可用節(jié)點

kubectl get pod -A:獲取所有pod

kubectl get hpa -n hubble-manager:查看hpa配置

kubectl describe nodes 10.128.228.2:查看節(jié)點描述/狀態(tài)信息

kubectl get service -n hubble-manager:查看hubble-manager集群下有哪些service

怎么進行K8S的總結分析

kubectl delete service m-alarm-query -n hubble-manager :刪除hubble-manager集群下名稱為m-alarm-query的service

cat ~/.kube/config:查看集群的配置文件

/data/weiwei/kubectl --kubeconfig=/data/weiwei/config-hubble-test-01 apply -f /data/weiwei/k8s/qiyi_puppet/script/k8s/hubble-biz-aiops.yaml:將容器部署到指定集群,通過--kubeconfig指定配置文件

/data/weiwei/kubectl --validate=false apply -f .   :執(zhí)行當前目錄下所有yaml文件,免校驗

/data/weiwei/kubectl describe pod  metrics-server-6fdb89bdcb-8t4rs -n kube-system:查看命名空間為kube-system,pod名稱為metrics-server-6fdb89bdcb-8t4rs的執(zhí)行狀態(tài)信息

kubectl logs metrics-server-6fdb89bdcb-8t4rs -n kube-system -c metrics-server:查看命名空間為kube-system,pod名稱為metrics-server-6fdb89bdcb-8t4rs,容器為metrics-server的日志信息

 /data/weiwei/kubectl get event :獲取event信息

/data/weiwei/kubectl get events --all-namespaces :獲取所有命名空間的event

/data/weiwei/kubectl  api-versions -n hubble-manager:查看當前可用的API版本

上述就是小編為大家分享的怎么進行K8S的總結分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI