分分鐘搞定各種應(yīng)用類型在k8s上的運行配置!

kubernetes (k8s) 上運行各種類型的應(yīng)用是完全可行的。關(guān)鍵在于根據(jù)應(yīng)用的具體需求選擇合適的k8s資源類型。以下是如何在k8s上配置不同類型應(yīng)用的詳細指南:

分分鐘搞定各種應(yīng)用類型在k8s上的運行配置!

眾所周知,Kubernetes(K8S)更適合運行無狀態(tài)應(yīng)用,但除了無狀態(tài)應(yīng)用外,我們還會遇到許多其他應(yīng)用類型,如有狀態(tài)應(yīng)用、批處理、監(jiān)控代理(每臺主機上都需要運行)以及更復雜的應(yīng)用(如hadoop生態(tài)系統(tǒng))。這些應(yīng)用如何在K8S上運行呢?如何進行配置?

實際上,K8S為這些不同的應(yīng)用類型提供了相應(yīng)的運行方式。您需要做的就是考慮您的應(yīng)用程序類型如何影響其運行方式。

Kubernetes定義了適用于不同類型應(yīng)用程序的不同類型的工作負載。要確定適合您的應(yīng)用程序的工作負載,請根據(jù)如下思路來思考您的應(yīng)用程序:

  • 是為了完成任務(wù)。 一個典型例子是一個應(yīng)用程序,啟動時會跑一批數(shù)據(jù),并在批處理執(zhí)行完成后退出。該應(yīng)用程序可能會定期運行(如每月)。對于這種類型的應(yīng)用程序,合適的Kubernetes(或openshift)容器平臺對象包括Jobs和CronJob對象。
  • 長時間一直運行。 對于長時間運行的應(yīng)用程序,可以編寫Deployment或DeploymentConfig。(當然,最好是無狀態(tài)的)
  • 要求高可用。 如果您的應(yīng)用程序需要高可用,那么您需要調(diào)整部署的數(shù)量以具有多個實例。Deployment或DeploymentConfig資源類型可以包括ReplicaSet。借助ReplicaSet,Pod可以在多個節(jié)點上運行,以確保即使其中的一個或某幾個程序中斷,這個應(yīng)用程序始終還是可用的。
  • 需要在每個節(jié)點上運行。 某些類型的Kubernetes應(yīng)用程序需要在群集中的每個主節(jié)點(master)或工作節(jié)點(worker)上運行。DNS和監(jiān)控的應(yīng)用程序是需要在每個節(jié)點上連續(xù)運行的應(yīng)用程序的典型例子。您可以將這種類型的應(yīng)用程序作為DaemonSet運行。您還可以基于節(jié)點標簽(node labels)在部分符合條件的節(jié)點上運行DaemonSet。
  • 復雜的應(yīng)用,或需要全生命周期管理。 當您要移交應(yīng)用程序以便其他運維人員可以很方便地使用它時,請考慮創(chuàng)建一個operator(類似HELM Charts,區(qū)別是HELM只負責安裝,Operator除了安裝,還多了全生命周期管理)。Operator可讓您構(gòu)建智能的應(yīng)用,因此它可以自動處理備份和升級之類的事情。與Operator Lifecycle Manager(Operator生命周期管理器,簡稱:OLM)結(jié)合使用,集群管理者可以將Operator暴露給特定的Namespace,以便集群中的用戶可以運行它們。示例有:

分分鐘搞定各種應(yīng)用類型在k8s上的運行配置!

WebLogic集群…redis集群…elasticsearch集群…spark集群…mongodb的副本集,碎片集群…tidb集群…prometheusistiokafka集群…

  • 有身份或編號要求。 應(yīng)用程序可能具有身份要求或編號要求。例如,您可能需要運行該應(yīng)用程序的不多不少剛好三個實例,并且實例命名為0,1和2。那么StatefulSet是適合于這種應(yīng)用。StatefulSet對于需要獨立存儲的應(yīng)用程序(例如數(shù)據(jù)庫zookeeper群集)最有用。

總結(jié)起來,就是有狀態(tài)的應(yīng)用就選擇StatefulSet。

應(yīng)用類型 K8S 資源類型 備注
Job、批處理 Jobs CronJob
長時間運行的無狀態(tài)應(yīng)用 Deployment DeploymentConfig DeploymentConfig是OpenShift特有的
長時間運行的無狀態(tài)應(yīng)用- 高可用 Deployment里加ReplicaSet字段
需要在每個節(jié)點上運行的應(yīng)用 DaemonSet
復雜的應(yīng)用,或需要全生命周期管理的應(yīng)用 Operator Helm Charts也適用于安裝復雜應(yīng)用
有狀態(tài)應(yīng)用 StatefulSet

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊10 分享