您好,登錄后才能下訂單哦!
這篇文章主要講解了“開發人員怎么理解kubernetes”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“開發人員怎么理解kubernetes”吧!
在JAVA開發中使用 docker run
命令配合上自建的Docker倉庫可以很容易部署JAVA服務,但是使用Docker部署應用會有幾個問題:
docker run
不是部署服務的可靠方法,因為它創建的容器在單個機器運行。雖然Docker引擎提供了一些基本的管理功能,例如在容器崩潰或計算器重啟時自動重啟容器。但是它不能處理機器崩潰。無法保證服務的高可用!在開發過程中特別好用的方法是使用Docker Compose。Docker Compose是一個工具,它允許使用YAML文件以聲明方式定義一組容器,然后以組的形式啟動和停止這些容器。
但是使用Docker Compose也有個很明顯的問題就是它僅限于一臺機器。要可靠的部署服務,必須使用Docker編排框架,例如Kubernetes。
Kubernates是一個Docker編排框架,是Docker之上的一個軟件層,它將一組計算機硬件資源轉變成用于運行服務的單一資源池。它努力保持每個服務所需要的實例數量,并確保它們一直在線,即使服務實例或機器崩潰也是如此。容器的靈活性和Kubernetes的復雜性相結合是部署服務的一種強有力的方式。
Kubernetes有三個主要功能:
Kubernetes在一組機器上運行。Kubernetes集群中的計算機角色分為主節點和普通節點。集群中只有很少的幾個主節點(可能只有一個)和很多普通節點。
「主節點」負責管理集群。Kubernetes的「普通節點」稱為 “工作節點”,它會運行一個或多個Pod。Pod是Kubernetes的部署單元,由一組容器組成。
主節點運行多個組件,包括以下內容:
普通節點運行多個組件,包括以下內容:
接下來我們看一下Kubernetes上部署服務需要掌握的關鍵Kubernetes概念,掌握這幾個概念就抓住了Kubernetes的核心。
Kubernetes是很復雜的,但是,一旦掌握了一些「關鍵對象」的概念,就可以高效的使用Kubernetes。Kubernetes定義了許多類型的對象,從開發人員的角度來看,最重要的對象如下:
Pod:
Pod是Kubernetes的基本部署單元。它由一個或多個共享IP地址和存儲卷的容器組成。服務實例的pod通常由單個容器組成,例如運行 JVM 的容器。但在某些情況下,Pod包含一個或多個實現支持功能的 「邊車」(sidecar)容器。例如,Nginx 服務器可以有一個邊車容器,定期執行 git pull 以下載最新版本的網站。Pod的生命周期很短,因為Pod的容器或它運行的節點可能會崩潰。
Deployment:
Deployment : Pod 的聲明性規范。Deployment是一個控制器,可確保始終運行所需數量的Pod實例 (服務實例)。它通過滾動升級和回滾來支持版本控制。
Service:
向應用程序服務的客戶端提供的一個靜態/穩定的網絡地址。它是基礎設施提供的服務發現的一種形式。每個 Service具有一個 IP 地址和一個可解析為該 IP 地址的 DNS 名稱,并跨一個或多個 Pod對 TCP 和 UDP 流量進行負載均衡處理。IP地址和 DNS 名稱只能在Kubernetes內部訪問。
Service默認是使用ClusterIp模式,如果需要外部能訪問到這個Service則需要使用另外兩種類型的對象:NodePort 和 LoadBalancer。
ConfigMap:
名稱與值對的命名集合,用于定義一個或多個應用程序服務的外部化配置。Pod容器的定義可以引用ConfigMap來定義容器的環境變量。它還可以使用ConfigMap在容器內創建配置文件。可以使用Secret來存儲敏感信息(如密碼),它也是 ConfigMap的一種形式。
感謝各位的閱讀,以上就是“開發人員怎么理解kubernetes”的內容了,經過本文的學習后,相信大家對開發人員怎么理解kubernetes這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。