翻譯作者:Miazzy 翻譯&轉載:https://mindmajix.com/kubernetes-tutorial
Kubernetes教程
本教程爲您提供了關於Kubernetes基礎知識的概述和討論。
Kubernetes是一個開源組合引擎,專門用於自動化容器化應用程序的部署,擴展和管理。它適用於任何規模和規模的容器,並由工具支持,可以將其連續分組爲邏輯單元,並跟蹤,管理和監控所有這些容器。Kubernetes可以幫助您做到這一點,被認爲是容器管理的絕對工具。
什麼是Kubernetes:
Kubernetes基本上是一個專門設計用於管理節點集羣中不同類型的容器化應用程序的系統。它旨在解決現代集羣基礎設施的設計方式之間的脫節。幾乎所有集羣技術都努力提供獨特或應用程序部署的平臺。
用戶不必關心工作安排的位置。呈現給用戶的工作單元處於服務級別,並且可以由任何成員節點完成。另一方面,許多構建時考慮到擴展的應用程序實際上是創建了較小元素的服務,這應該在常量主機上是常規的。一旦他們信任特定的網絡條件以便進行適當的溝通,它甚至是非常必要的。
考慮應用而非服務器
Kubernetes憑藉其優雅的抽象允許開發人員接受應用程序,而不是特定服務器,Pet(寵物)服務器,主機名等上的單個容器的服務器。容器,複製服務和控制器是Kubernetes的基本單元,用於描述系統所需的狀態。在Kubernetes中,部署基於規則進行處理,並通過主動監視,擴展和自動修復這些服務以進一步向前邁進,以維持其所需狀態。
Kubernetes特點:
Kubernetes通過以下功能幫助用戶快速有效地響應客戶需求:
- *有助於快速,可預測地部署任何應用程序。
- *無縫推出新功能並動態
- *擴展應用程序,僅限硬件使用所需資源。
- *有助於減輕在公共雲和私有云中運行應用程序的負擔。
本教程提供了有關Kubernetes集羣組合系統基礎知識的演練。每個模塊都包含一些關於kubernetes主要功能的背景信息和概念,包括交互式在線教程。本教程讓讀者可以管理一個簡單的集羣及其容器化應用程序。
使用這些交互式教程,您可以學習如何:
- *在集羣上部署
- *容器化的應用程序,調試容器化應用程序
- *使用新軟件版本擴展,更新容器化應用程序。
Kubernetes架構
H3主組件(H3 Master Components)
像CoreOS這樣的系統在基礎設施層面很難創建一個統一的環境,每個主機都是可互換的和一次性的。另一方面,Kubernetes以特定級別的主持人專業化運作。
Kubernetes集羣控制服務稱爲主機或控制平面組件。它們根據管理員的主要管理聯繫點進行操作,併爲相對愚蠢的工作節點提供多個羣集範圍的系統,這些系統可以安裝在單個計算機上或分佈在多個計算機上。
集羣體系結構遵循客戶端 - 服務器體系結構,其中主服務器安裝在一臺計算機上,節點安裝在不同的Linux計
Kubernetes Master Machine的主要組件:Kubernetes的關鍵組件如下:
Etcd
它存儲與羣集節點可以使用的配置相關的信息。它具有分佈在多個節點之間的高可用性密鑰值存儲,並且分佈式密鑰值存儲只能由Kubernetes API服務器訪問,因爲它可能是一些敏感信息。
API服務器
Kubernetes是一個API服務器,它使用可以輕鬆通信的不同工具和庫來實現集羣上的所有操作。Kubeconfig用於公開Kubernetes API,附帶服務器端工具,可用於通信。
控制管理器(Controller Manager)
此組件的此功能是調節羣集的狀態並執行任務,主要用於收集器。它在非終止循環中運行,負責向API服務器發送和收集信息。要使服務器進入所需狀態,它會收集共享數據並進行更改。其關鍵控制器包括複製控制器,命名空間控制器,服務帳戶控制器和端點控 控制器管理器運行不同類型的控制器來處理節點,端點等。
調度(Scheduler)
作爲Kubernetes master的關鍵組件之一,它負責工作負載分配和跟蹤羣集節點上的工作利用率負載,然後通過接受工作負載將它們放在可用資源上。簡而言之,它負責將pod分配給可用節點,並負責工作負載利用率。
Kubernetes節點的組件
以下是與Kubernetes master通信所必需的Node服務器的關鍵組件。
Docker - Docker是任何節點的主要要求,有助於運行任何封裝的應用程序容器和輕量級操作環境。
Kubelet服務 - 每個節點中的服務負責通過與etcd存儲庫交互來讀取配置和懷特的值,從而將信息傳遞到控制平面和從控制平面傳遞信息。它承擔維護工作狀態和節點的責任,還管理網絡規則,端口轉發等。
Kubernetes代理服務 - 這是一種在節點上運行的代理服務,有助於提供外部主機可用的服務。它負責轉發請求以更正容器並執行原始負載平衡,並確保網絡環境可訪問,可預測以及隔離。這個的任何關鍵功能是管理機密,節點上的pod,卷,新容器創建等。
設置Kubernetes - 必須設置虛擬數據中心(VDC)來設置Kubernetes,它可以被視爲一組負責通過網絡相互通信的機器。
完成任何雲上的IaaS設置後,您需要配置主服務器和節點。
在任何雲上設置IaaS後,應該完成主服務器和節點的配置。
先決條件
Docker安裝 - 每個Kubernetes安裝都需要Docker。
安裝Docker的步驟如下:
步驟1 - 使用root用戶的登錄憑據登錄計算機。
步驟2 - 使用apt軟件包,更新軟件包信息
步驟3 - 運行以下命令。
步驟4 - 添加新的GPG密鑰。
步驟5 - 更新API包圖像。
$ sudo apt-get update
完成上述任務後,通過驗證內核版本開始實際的Docker引擎安裝
Docker Engine安裝
運行以下命令以安裝Docker引擎。
步驟1 - 登錄到計算機。
步驟2 - 索引包更新。
$ sudo apt-get update
步驟3 - 使用以下命令更新信息。
$ sudo apt-get install docker-engine
第4步 - 啓動Docker守護程序。
$ sudo apt-get install docker-engine
步驟5 - 使用以下命令,驗證Docker引擎的安裝。
$ sudo docker run hello-world
安裝etcd 2.0
運行以下命令或安裝Kubernetes Master Machine。
在上面的命令集中 -
下載etcd後,使用指定的名稱保存它,然後取消tar tar包。
做一個目錄。在/ opt命名bin中,然後將提取的文件複製到目標位置。
現在,我們可以通過在集羣上的所有機器上安裝Kubernetes來構建它。
上面的命令將在kubernetes文件夾的根目錄中創建一個_output目錄。現在,我們必須將目錄解壓縮到我們選擇的/ opt / bin等目錄中的任何目錄。網絡部分是下一個需要加強Kubernetes主站和節點設置的部分。爲此,必須在節點機器上完成在主機文件中的輸入。以下是上述命令的輸出。
現在,實際配置從Kubernetes Master開始。首先將所有配置文件複製到正確的位置。
以上命令會將所有配置文件複製到所需位置。現在我們將回到我們構建Kubernetes文件夾的同一目錄。
下一步是更新/ etc下複製的配置文件。DIR。
使用以下命令在master上配置etcd。
$ ETCD_OPTS = "-listen-client-urls = http://kube-master:4001"
使用Kubernetes部署應用程序
要在Kubernetes中部署應用程序,Kubeapps是最簡單快捷的方法。它是Kubernetes的儀表板,可以通過任何格式的簡單瀏覽和應用程序部署來增強集羣。它還提供了一個完整的應用程序交付環境,使用戶能夠啓動,審查和共享應用程序。Kubeapps是一個開源項目,旨在鼓勵查看最新版本。它可以在幾分鐘內部署在集羣中。
Kubeapps項目包括以下內容:
CLI
這主要用於增強羣集和引導kubeapps以在終端窗口中運行Kubeapps CLI工具。可以使用單個命令安裝完整的應用程序交付環境。
Dashboard
對於簡化部署,Kubeapps提供了一個包含超過100個kubernetes就緒應用程序的集羣內工具集,這些應用程序打包爲Helm圖表和無kubeless函數。
Hub
這是一個基於Web的社區,旨在發現,評估和審查預先打包的kubernetes應用程序,這些應用程序可通過kubernetes集羣訪問。
爲何選擇Kubernetes
Kubernetes至少可以在每個身體和數字機器的集羣上安排和運行實用程序包裝容器。但是,它還允許建築商“切斷”繩索到身體和數字機器,從以數字爲中心的基礎設施轉移到以現場爲中心的基礎設施,提供繼承到容器的若干優勢。它提供了構建完整的以容器爲中心的開發環境所需的基礎結構。Kubernetes爲Docker提供了一種基礎技術,已經融入Linux內核已有一段時間了。
Kubernetes允許用戶部署雲原生應用程序,並在任何時間和地點完全按照他們的要求對其進行管理。其主要功能包括:
- *今天的基礎架構框架
- *模塊化以實現更好的管理
- *更新和部署用於擴展的軟件
- *爲雲原生應用奠定堅實的基礎
除此之外,Kubernetes還允許用戶獲得最大的容器實用程序並構建雲原生應用程序,從而使其能夠在任何地方獨立於特定於雲的要求運行。顯然,它是一種快速簡便的應用程序開發和操作的最有效模型。