成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發人員如何理解kubernetes

云計算
在開發過程中特別好用的方法是使用Docker Compose。Docker Compose是一個工具,它允許使用YAML文件以聲明方式定義一組容器,然后以組的形式啟動和停止這些容器。

 [[382171]]

本文轉載自微信公眾號「JAVA日知錄」,作者+++++。轉載本文請聯系JAVA日知錄公眾號。

概述

在JAVA開發中使用 docker run命令配合上自建的Docker倉庫可以很容易部署JAVA服務,但是使用Docker部署應用會有幾個問題:

  1. 一個docker run 不是部署服務的可靠方法,因為它創建的容器在單個機器運行。雖然Docker引擎提供了一些基本的管理功能,例如在容器崩潰或計算器重啟時自動重啟容器。但是它不能處理機器崩潰。無法保證服務的高可用!
  2. 另一個問題是服務通常不是孤立存在,而是相互依賴的,例如數據庫和消息隊列。我們通常需要將服務及其依賴項作為一個單元部署或取消部署。

在開發過程中特別好用的方法是使用Docker Compose。Docker Compose是一個工具,它允許使用YAML文件以聲明方式定義一組容器,然后以組的形式啟動和停止這些容器。

但是使用Docker Compose也有個很明顯的問題就是它僅限于一臺機器。要可靠的部署服務,必須使用Docker編排框架,例如Kubernetes。

Kubernetes簡介

Kubernates是一個Docker編排框架,是Docker之上的一個軟件層,它將一組計算機硬件資源轉變成用于運行服務的單一資源池。它努力保持每個服務所需要的實例數量,并確保它們一直在線,即使服務實例或機器崩潰也是如此。容器的靈活性和Kubernetes的復雜性相結合是部署服務的一種強有力的方式。

Kubernetes有三個主要功能:

  • 資源管理:將一組計算機視為由CPU、內存和存儲卷構成的資源池,將計算機集群視為一臺計算機。
  • 調度:選擇要運行容器的機器。默認情況下,調度考慮容器的資源需求和每個節點的可用資源。它還可以實現在同一節點部署具有親和性(affinity)的容器,或保持特定幾個容器分散部署在不同的節點上(反親和性,anti-affinity)
  • 服務管理:實現命名和版本化服務的概念,這個概念可以直接映射到微服務架構中的具體服務。編排框架確保始終運行所需數量的正常實例。它實現請求的負載均衡。編排框架也可以執行服務的滾動升級,并允許你回滾到舊版本。

Kubernetes架構

Kubernetes架構

Kubernetes在一組機器上運行。Kubernetes集群中的計算機角色分為主節點和普通節點。集群中只有很少的幾個主節點(可能只有一個)和很多普通節點。

「主節點」負責管理集群。Kubernetes的「普通節點」稱為 “工作節點”,它會運行一個或多個Pod。Pod是Kubernetes的部署單元,由一組容器組成。

主節點運行多個組件,包括以下內容:

  • API服務器:用于部署和管理服務的REST API,例如,可被kubectl命令行使用。
  • Etcd:存儲集群數據鍵值的NoSQL數據庫。
  • 調度器:選擇要運行POD的節點。
  • 控制器管理器:運行控制器,確保集群狀態與預期狀態匹配。例如,一種被稱為 復制(replication)控制器 的控制器通過啟動和終止實例來確保運行所需要的服務實例。

普通節點運行多個組件,包括以下內容:

  • Kubelet:創建和管理節點上運行的Pod。
  • Kube-proxy:管理網絡,包括跨Pod的負載均衡。
  • Pods:應用程序服務。

接下來我們看一下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的一種形式。

 

責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2009-12-07 16:07:19

WCF編程

2023-03-15 07:12:53

企業開發人員提供商

2019-11-27 18:54:07

物聯網數字孿生機器學習

2023-08-14 15:23:37

2013-04-15 10:00:09

程序員

2009-11-23 20:07:51

ibmdw開發

2009-12-11 14:50:14

Visual Basi

2021-12-10 23:48:19

Java開發技術

2012-05-30 15:15:42

ibmdw

2012-07-12 00:09:34

2009-12-09 10:04:20

ibmdwJavaTwitter

2022-01-04 19:26:42

開發人員安全性網絡安全

2012-11-23 09:42:26

開源軟件開發人員

2022-02-17 16:05:58

SQL開發招聘

2020-10-27 08:46:06

降低開發人員的生產力

2010-08-09 16:09:25

2009-05-31 08:31:07

GoogleWaveTechCrunch

2011-09-05 14:21:29

webOS

2022-12-19 07:33:49

開發人員谷歌制度

2015-02-13 09:13:22

Java開發Docker
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品电影在线观看 | 伊人啪啪网 | 在线资源视频 | 久久久久国产一区二区三区四区 | 伊人久久综合影院 | 免费看日韩视频 | 奇米影视在线 | 夜夜爽99久久国产综合精品女不卡 | 精品乱人伦一区二区三区 | 日本高清精品 | 国产精品欧美一区二区三区 | 中文字幕视频在线看 | 亚洲精品乱码久久久久久久久 | 日韩高清国产一区在线 | 欧美日韩视频网站 | 国产精品久久久久久久久久久免费看 | 国产高清精品在线 | 视频在线观看一区 | 一级高清免费毛片 | 亚洲成人av| 亚洲欧美日韩精品久久亚洲区 | 欧美视频日韩 | 一区二区三区中文字幕 | 天天人人精品 | 精品无码久久久久久国产 | 女同videos另类 | 91偷拍精品一区二区三区 | 中文字幕精品视频 | 美日韩视频 | 国产一区二区三区四区在线观看 | 国产精品久久久久久久久久免费看 | 密室大逃脱第六季大神版在线观看 | 国产精品久久在线观看 | 成年人网站在线观看视频 | 久久一二区 | 亚洲成人福利在线观看 | 国产麻豆乱码精品一区二区三区 | 美女视频黄的 | 中文字幕av在线 | 国产精彩视频在线观看 | 日韩手机在线看片 |