Kubernetes是一個可移植、可擴充套件的開源平臺,用於管理容器化的工作負載和服務,有助於宣告式配置和自動化。目前,Kubernetes正在以強勁的勢頭持續發展,其相關的生態也在不斷完善。本文中,我們列出了所有Kubernetes入門者對於部署和管理Kubernetes容器不得不關注的17個方面。
Kubernetes有多個開源元件組合而成,這些元件由不同的公司開發,這給使用Kubernetes增加了難度——因為難以找到所有相關的軟體包,而且難以安裝、配置。幸運的是,市場上有一些解決方案和工具可以讓Kubernetes叢集高效執行。因此,強烈推薦您使用類似的工具在您的環境中設定Kubernetes叢集,如企業級的Kubernetes管理平臺Rancher等
現在你可以開始在Kubernetes上建立不同型別的資源。為了在微服務架構中實現您的應用程式,深入瞭解Kubernetes命令列介面(CLI)將有助於理解Kubernetes資源並加以整合。當您在Kubernetes中部署應用程式之後,您可以進行可擴充套件且高效的容器管理,還可以完成微服務的DevOps交付過程。
無論是使用CLI還是API(RESTful),都能讓使用Kubernetes變得輕鬆。當您安裝了Kubernetes master之後,您可以執行一個kubectl 命令列來檢視系統版本或進行其他互動。Kubectl是Kubernetes唯一的命令列工具,它可以控制Kubernetes叢集管理器。任何叢集或Kubernetes叢集的操作都能夠透過kubectl命令列執行。此外,kubectl允許透過命令列的可選引數或檔案(使用-f選項)輸入資訊。
Pod是一組包含個容器,還是Kubernetes中最小的部署單元。Pod始終位於同一位置、統一排程,並在共享上下文中執行。每個Pod都被以下Linux名稱空間隔離:程序 ID(PID)名稱空間、網路名稱空間、程序間通訊(IPC)名稱空間、Unix時間共享(UTS)名稱空間。在容器出現之前,它們將在同一物理機或虛擬機器上執行。構建混合了不同Docker映象的應用程式堆疊pod(如,web伺服器和資料庫)十分有用。
為了能夠提升資源的利用率,Kubernetes提供了一個強大的功能,它能在執行的服務上進行編碼並配置彈性伸縮,這一功能稱為Pod水平自動擴充套件(HPA)。在Rancher 2.3中,已經集成了HPA功能,使用者可以透過Rancher UI使用。關於HPA的詳細內容,可參見以下文章:
如何為Kubernetes配置Pod水平自動擴充套件
kubectl+HPA!提升K8S容器資源利用的關鍵解決方案
ReplicaSet是Kubernetes中用於引用Pod副本的API物件的術語。它主要的目的是控制一組Pod的行為。ReplicaSet可以保證執行使用者所指定的數量Pod。如果ReplicaSet中的某些Pod崩潰並終止,系統將在執行狀況良好的節點上自動使用初始配置重新建立Pod,並且保持一定數量的程序在持續執行。在更改一組Pod規模時,使用者可以輕鬆地伸縮應用程式。根據這一特性,無論是否需要Pod的副本,都可以始終依靠ReplicaSet來實現自動恢復和彈性伸縮。
早在Kubernetes 1.2版本的時候就引入了Deployment API,它可以更加方便地管理Pod和ReplicaSet。透過Replication Controller進行滾動更新和回滾的功能是透過客戶端(kubectl命令和REST API)實現的,kubectl在更新replication controller時需要保持連線。另一方面,deployment負責伺服器端的滾動更新和回滾過程。接受該請求後,客戶端可以立即斷開連線。因此,Deployment API被設計為管理ReplicaSet物件的高階API。
網路服務用於接收請求並提供解決方案,客戶端透過網路連線訪問服務,他們不必知道服務的架構或其執行方式。客戶端唯一需要驗證的是是否可以訪問服務的端點,然後遵循其使用策略來獲取伺服器的響應。Kubernetes服務也與其類似,它是一種為一組功能相同的pod提供單一不變的接入點的資源。當服務存在時,它的IP地址和埠不會改變。客戶端透過IP地址和埠號建立連線,這些連線會被路由到提供該服務的任意一個pod上。透過這種方式,客戶端不需要知道每個單獨的提供服務的pod的地址,這樣這些pod就可以在叢集中隨時被建立或移除。
容器中的檔案是臨時檔案,當容器終止時,檔案就會消失。Docker引入了資料volume來幫助我們持久化儲存資料。然而,當涉及到多個主機時,作為一個容器叢集,很難管理所有容器和主機之間的分享檔案和動態配置volume。因此Kubernetes也引入了volume,它與Pod的生命週期相同,但與容器的生命週期無關。換言之,當容器終止或重啟時,volume中的資料也不會丟失。Kubernetes中提供了十分豐富的volume型別,如emptyDir等。
Kubernetes是一個可移植、可擴充套件的開源平臺,用於管理容器化的工作負載和服務,有助於宣告式配置和自動化。目前,Kubernetes正在以強勁的勢頭持續發展,其相關的生態也在不斷完善。本文中,我們列出了所有Kubernetes入門者對於部署和管理Kubernetes容器不得不關注的17個方面。
Kubernetes有多個開源元件組合而成,這些元件由不同的公司開發,這給使用Kubernetes增加了難度——因為難以找到所有相關的軟體包,而且難以安裝、配置。幸運的是,市場上有一些解決方案和工具可以讓Kubernetes叢集高效執行。因此,強烈推薦您使用類似的工具在您的環境中設定Kubernetes叢集,如企業級的Kubernetes管理平臺Rancher等
現在你可以開始在Kubernetes上建立不同型別的資源。為了在微服務架構中實現您的應用程式,深入瞭解Kubernetes命令列介面(CLI)將有助於理解Kubernetes資源並加以整合。當您在Kubernetes中部署應用程式之後,您可以進行可擴充套件且高效的容器管理,還可以完成微服務的DevOps交付過程。
無論是使用CLI還是API(RESTful),都能讓使用Kubernetes變得輕鬆。當您安裝了Kubernetes master之後,您可以執行一個kubectl 命令列來檢視系統版本或進行其他互動。Kubectl是Kubernetes唯一的命令列工具,它可以控制Kubernetes叢集管理器。任何叢集或Kubernetes叢集的操作都能夠透過kubectl命令列執行。此外,kubectl允許透過命令列的可選引數或檔案(使用-f選項)輸入資訊。
Pod是一組包含個容器,還是Kubernetes中最小的部署單元。Pod始終位於同一位置、統一排程,並在共享上下文中執行。每個Pod都被以下Linux名稱空間隔離:程序 ID(PID)名稱空間、網路名稱空間、程序間通訊(IPC)名稱空間、Unix時間共享(UTS)名稱空間。在容器出現之前,它們將在同一物理機或虛擬機器上執行。構建混合了不同Docker映象的應用程式堆疊pod(如,web伺服器和資料庫)十分有用。
為了能夠提升資源的利用率,Kubernetes提供了一個強大的功能,它能在執行的服務上進行編碼並配置彈性伸縮,這一功能稱為Pod水平自動擴充套件(HPA)。在Rancher 2.3中,已經集成了HPA功能,使用者可以透過Rancher UI使用。關於HPA的詳細內容,可參見以下文章:
如何為Kubernetes配置Pod水平自動擴充套件
kubectl+HPA!提升K8S容器資源利用的關鍵解決方案
ReplicaSet是Kubernetes中用於引用Pod副本的API物件的術語。它主要的目的是控制一組Pod的行為。ReplicaSet可以保證執行使用者所指定的數量Pod。如果ReplicaSet中的某些Pod崩潰並終止,系統將在執行狀況良好的節點上自動使用初始配置重新建立Pod,並且保持一定數量的程序在持續執行。在更改一組Pod規模時,使用者可以輕鬆地伸縮應用程式。根據這一特性,無論是否需要Pod的副本,都可以始終依靠ReplicaSet來實現自動恢復和彈性伸縮。
早在Kubernetes 1.2版本的時候就引入了Deployment API,它可以更加方便地管理Pod和ReplicaSet。透過Replication Controller進行滾動更新和回滾的功能是透過客戶端(kubectl命令和REST API)實現的,kubectl在更新replication controller時需要保持連線。另一方面,deployment負責伺服器端的滾動更新和回滾過程。接受該請求後,客戶端可以立即斷開連線。因此,Deployment API被設計為管理ReplicaSet物件的高階API。
網路服務用於接收請求並提供解決方案,客戶端透過網路連線訪問服務,他們不必知道服務的架構或其執行方式。客戶端唯一需要驗證的是是否可以訪問服務的端點,然後遵循其使用策略來獲取伺服器的響應。Kubernetes服務也與其類似,它是一種為一組功能相同的pod提供單一不變的接入點的資源。當服務存在時,它的IP地址和埠不會改變。客戶端透過IP地址和埠號建立連線,這些連線會被路由到提供該服務的任意一個pod上。透過這種方式,客戶端不需要知道每個單獨的提供服務的pod的地址,這樣這些pod就可以在叢集中隨時被建立或移除。
容器中的檔案是臨時檔案,當容器終止時,檔案就會消失。Docker引入了資料volume來幫助我們持久化儲存資料。然而,當涉及到多個主機時,作為一個容器叢集,很難管理所有容器和主機之間的分享檔案和動態配置volume。因此Kubernetes也引入了volume,它與Pod的生命週期相同,但與容器的生命週期無關。換言之,當容器終止或重啟時,volume中的資料也不會丟失。Kubernetes中提供了十分豐富的volume型別,如emptyDir等。