中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes是什么?

發布時間:2020-05-23 17:27:57 來源:億速云 閱讀:281 作者:鴿子 欄目:云計算

kubernetes基本介紹

一、kubernetes是什么?  
Kubernetes是一個開源的容器管理平臺,簡稱k8s,用于管理多個主機上的容器化應用程序,提供應用程序的快速部署,擴縮容,升級,維護和擴展等機制,利用service可以實現服務注冊、發現以及四層負載均衡,通過ingress可以實現七層負載均衡等功能,Kubernetes這個名字源于希臘語,意思是舵手或飛行員,結合了社區中的最佳創意和實踐,社區活躍度極高,幕后擁有大量技術人員在維護和支持。

二、kubernetes容器編排工具的優勢
1.用戶體驗效果好,可以快速上手操作:
擁有良好的web ui界面,可以實現應用程序的快速部署,升級,擴容,縮容,回滾等。
2.根據節點資源的使用情況對pod進行合理的調度:
可以按照用戶需要調度pod,例如保證Pod只在資源足夠的節點上運行,會嘗試把同一功能的pod分散在不同的節點上,還會嘗試平衡不同節點的資源使用率等。
3.靈活部署:
支持多種平臺,如公有云、私有云、混合云,VMware vSphere、VMware Workstation、虛擬機、物理機等。
4.完善的認證授權機制,自帶審計功能:
可以對多用戶做細化的授權管理,達到相互之間的操作完全隔離,互不影響,而且自身帶有審計功能,可以對操作過程進行實時的日志記錄,出現問題可以方便排查。
5.可擴展性強:
擁有強大的集群擴展能力,可以根據業務規模自動增加和縮減主機節點的數量,確保服務可以承受大量并發帶來的壓力,保證業務穩定運行。
6.擁有完善的災備預警解決方案:
擁有多種災備解決方案,支持備份和容災,出現故障可以達到秒級切換,保證線上業務不受影響。
7.支持windows節點:
kubernetes支持將windows節點添加為工作節點并部署windows容器,確保不再受到具體的操作系統類型的影響,提升整體部署的效率。

三、應用場景實踐
1.kubernetes在日志管理系統中的應用:在生產環境中,日志對于排查問題至關重要,我們需要有一個日志管理系統,如efk,kubernetes可以實現efk的快速部署,通過采用daemonset控制器部署fluentd組件,來收集節點和k8s集群的日志,通過kubernetes部署efk日志管理系統可實現如下功能:

(1)如果集群擴容,那么daemonset控制器會自動檢測到新增加的node節點,就會在新的node節點上部署fluentd,完成日志收集,這就可以減少人為干預,提高工作效率,確保日志可以被正常收集;
(2)如果es數據量大,kubernetes可以實現集群中pod應用的水平擴展,完成應用的彈性擴容和收縮等操作。

2.kubernetes在DevOps場景下的應用:
DevOps是一套完整的運維開發流程,可以實現快速的構建、測試和發布軟件,整個流程包括敏捷開發->持續集成->持續交付->持續部署->DevOps,通過 Kubernetes,我們可以實現容器在多個計算節點上的統一調度,可以將容器對接到持久存儲、虛擬網絡,還可以實現彈性伸縮等,提高了產品的迭代速度,在DevOps體系下加入k8s可以實現如下功能:

(1)多集群管理:可以根據客戶需求對開發,測試,生產環境部署多套kubernetes集群,每個環境使用獨立的物理資源,相互之間避免影響;
(2)多環境一致性:Kubernetes是基于docker的容器編排工具,因為容器的鏡像是不可變的,所以鏡像把 OS、業務代碼、運行環境、程序庫、目錄結構都包含在內,鏡像保存在我們的私有倉庫,只要用戶從我們提供的私有倉庫拉取鏡像,就能保證環境的一致性;
(3)持續集成,持續部署,持續交付:可以讓產品快速迭代,自動部署,根據客戶的要求達到持續交付的能力。

3.kubernetes在微服務中的應用:
service Mesh可以很好地保證未拆分的應用與已經拆分出來的微服務之間的互通和統一治理,不將業務代碼與任何框架,平臺或者服務綁定,管理微服務時,我們需要對這些微服務和它們的調用關系進行注冊、為其分配資源、創建一定數量的節點副本、并發布到集群中去;同時還要為其配置好網絡和負載均衡,使這些微服務能夠被外部訪問,在這些微服務的運行過程中,需要始終保持其可用性,一旦有節點出現問題,需要立即創建新的節點將其替換掉,運行過程中需要對這些微服務進行監控和日志收集;在負載發生變化的時候,還要能夠迅速調整資源分配,kubernetes在微服務中可實現如下功能:

(1)服務發現:通過service可以實現服務發現,負載均衡,自修復,自動關聯;
(2)提供統一的配置管理中心:對于配置中心,K8S提供了configMap,可以在容器啟動的時候,將配置注入到環境變量或者Volume里面;
(3)彈性伸縮:通過控制器創建指定數量的pod副本,通過hpa可以實現pod應用的水平擴容和回收;
(4)通過jenkins實現持續集成/持續部署
(5)自動擴展:當Kubernetes集群的資源嚴重不足而導致Job排隊等待時,可以很容易的添加一個Kubernetes Node到集群中,從而實現擴展。

四、kubernetes特點

  1. 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

  2. 可擴展: 模塊化, 插件化, 可掛載, 可組合

  3. 自愈: 自動布置,自動重啟,自動復制,自動擴展。

五、kubernetes功能詳細介紹

  1. 多租戶的網絡隔離:
    Kubernetes支持多種網絡插件,如flannel,calico,canel等,每個插件都有獨特的性能,可以分別適用于多種場景,我們可以利用calico的network policy(網絡策略)解決k8s中的網絡隔離,對于多租戶場景,可以每一個用戶一個名稱空間,然后對這個名稱空間設置網絡隔離。
  2. 高可用:
    kubernetes中支持多種高可用解決方案,如keepalive+nginx,keepalived+haproxy等,
    可以使訪問流量分發到不同的主機節點,減輕節點壓力,如果某個節點出現故障,可以實現妙級切換,達到高可用,保證業務不中斷;
  3. 用戶數據的持久化存儲:
    kubernetes支持多種持久化存儲解決方案,保證數據可以得到很好的備份,降低用戶數據丟失的風險,kubernetes中可使用的存儲方案如下:
    (1)本地存儲
    emptyDir,hostPath
    (2)網絡連接類存儲
    SAN/網絡附加存儲:iSCSI
    NAS/存儲局域網絡:nfs,cifs
    (3)分布式存儲
    glusterfs,ceph/塊級別的存儲,cephfs/文件系統級別的存儲
    (4)云存儲:Azure Disk等
  4. 擁有多種更新回滾策略:
    通過管理kubernetes的控制器和service等,可以實現灰度發布,藍綠部署,
    金絲雀發布等,達到業務的快速和回滾等操作,用以滿足不同客戶的不同升級需求。
  5. 彈性伸縮:
    根據訪問的流量壓力,可以實現pod的水平擴容和縮減,達到秒級擴容,讓pod始終處于滿足業務正常運行時所需的數量即可,避免了資源的浪費。
  6. Kubernetes可以滿足很多運行環境中應用的需求,如下:
    進程協同,利用復合應用保證應用和容器一對一的模型
    存儲系統掛載
    分發密鑰
    應用健康檢測
    應用實例復制
    水平自動擴展
    命名和發現
    負載均衡
    滾動更新
    資源監控
    日志訪問
    自檢和調試
    識別和認證
    這為PaaS提供了IaaS層的便利,提供了基礎設施提供者間的可移植性。

六、kubernetes架構
kubernetes的物理架構是master/node模式,master一般是三個節點或者五個節點做高可用,根據集群規模來定,master高可用指的是對apiserver做高可用或者對master的物理節點做高可用,node可以有多個節點,專門用來部署應用的,架構圖如下所示:
kubernetes是什么?

七、kubernetes核心組件
1.master節點組件
apiserver:提供了資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制,負責接收、解析、處理請求。
scheduler:調度器,負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上。
kube-controller-manager:控制器,負責維護集群的狀態,檢查pod的健康狀態,比如故障檢測、自動擴展、滾動更新等一些操作。
docker:是一個容器引擎,用于運行容器。
etcd:etcd是一個key/value形式的鍵值存儲,保存了整個kubernetes集群的狀態,在kubernetes中使用etcd時,需要對etcd做備份,保證高可用,整個kubernetes系統中一共有兩個服務需要用到etcd用來協同和存儲配置,分別是:

(1)網絡插件calico、對于其它網絡插件也需要用到etcd存儲網絡的配置信息;
(2)kubernetes本身,包括各種對象的狀態和元信息配置。

 注:關于etcd API版本的說明:
網絡插件操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,所以在下面我們執行etcdctl的時候需要設置ETCDCTL_API環境變量,該變量默認值為2,表示使用v2版本的api,v3表示使用v3版本的api。

2.node節點(工作節點)組件
kubelet:負責與master節點的apiserver進行通信的,接收到客戶的請求,進行創建Pod,管理Pod,啟動pod等相關操作。
kube-proxy:k8s代理,是在群集中的每個節點上運行的網絡代理,kube-proxy負責請求轉發,一旦發現了某一個Service關聯的Pod信息發生了改變(如IP、Port等),由Kube-Proxy就會把變化后的service轉換成IPVS或IPtables規則中,完成對后端pod的負載均衡。
docker:是一個容器引擎,用于運行容器。

3.附加組件
coredns:k8s1.11之前使用的是kubedns,1.11之后才有coredns,coredns是一個DNS服務器,能夠為 Kubernetes services提供 DNS記錄
dashboard:k8s的web界面,通過這個界面可以對k8s資源進行操作
Ingress Controller :七層負載均衡控制器,可以創建nginx或者traefik這種七層負載應用,實現域名和https訪問
prometheus+alertmanager+grafana:監控組件
efk:日志采集組件

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

左权县| 苏州市| 嵊泗县| 湛江市| 启东市| 蓬溪县| 英山县| 阳信县| 北海市| 宝应县| 武清区| 钟祥市| 建昌县| 佛冈县| 招远市| 天柱县| 阿拉善左旗| 襄汾县| 旅游| 九江市| 江源县| 汉川市| 五家渠市| 临武县| 轮台县| 安福县| 那曲县| 唐山市| 房产| 财经| 吴旗县| 尼玛县| 嘉黎县| 郑州市| 晋江市| 永年县| 改则县| 洛浦县| 兖州市| 舞钢市| 遂宁市|