kubernetes進階之二:概述

一:kubernetes是什麼

Kubernetes一個用於容器集羣的自動化部署、擴容以及運維的開源平臺。經過Kubernetes,你能夠快速有效地響應用戶需求;快速而有預期地部署你的應用;docker

極速地擴展你的應用;無縫對接新應用功能;節省資源,優化硬件資源的使用。爲容器編排管理提供了完整的開源方案。數據庫

官方網站:www.kubernetes.io
中文官方網站:https://kubernetes.io/zh/docs/

二:kubernetes集羣的架構

一個kubernetes集羣都至少由一個Master節點和若干個Node節點組成。

Master節點是集羣控制節點,負責整個集羣的管理和控制,基本上Kubernetes全部的控制命令都是發給它,它來負責具體的執行過程。

因爲Master節點的重要性,它一般會獨佔一個物理機或虛擬機。

Master節點外的其它機器被稱爲Node節點,Node節點是集羣中的工做負載節點,每一個Node都會被Master分配一些工做負載(如Docker容器),當某

個Node宕機時,其工做負載會被Master自動轉移到其餘節點上。api

三:kubernetes集羣的核心組件安全

    

Master節點組件提供整個集羣的控制面板:

kube-apiserver: 暴露API操做接口,是kubernetes裏面全部資源增,刪,改,查等操做的惟一入口;也是集羣控制的入口。

etcd: 集羣的主數據庫,集羣裏面的全部數據都存儲於此。

kube-controller-manager: kubernetes裏全部資源對象的自動化控制中心, 控制器的大管家。

kube-scheduler: 負責資源調度(Pod調度)的進程,爲新建立的Pod分配Node節點去運行。至關於公交公司的「調度室」。

Node節點組件維持Pods的運行:

kubelet:負責Pod對應容器的建立,啓動,中止等任務; 同時與Master節點密切協做,實現集羣管理的基本功能。

kube-proxy:實現Service的通訊和負載均衡機制的重要組件。

docker: docker引擎,負責本節點的容器建立和管理工做。
網絡

Flannel:是Overlay網絡的一種,也是將源數據包封裝在另外一種網絡包裏面進行路由轉發和通訊,目前已經支持UDPVXLANAWS VPCGCE路由等數據轉發方式。架構

多主機容器網絡通訊其餘主流方案:隧道方案( WeaveOpenvSwitch ),路由方案(Calico)等。

 kubernetes集羣中的對象或資源併發

      

pod:kubernetes中可以被建立,調度和管理的最小部署單元。

label:一組綁定到kubernetes對象上的鍵/值對,同一對象的labels屬性的Key必須獨一無二。

label selector: kubernetes核心的分組機制,經過它客戶端可以識別一組有共同特徵或屬性的kubernetes對象。

serice: pod副本組成的集羣實例。主要由一個IP和一個label selector組成。 實現pod集羣的IP代理和負載均衡。

voLume:相似於虛擬機的磁盤。Pod中能被多個容器訪問的共享目錄。

namespaces:用於多租戶的資源隔離。

replicaSet:決定一個pod有多少同時容許的副本,並保證這些副本的指望狀態與當前狀態保持一致。

Deployment: replica set的升級版

DaemonSet: 讓全部Node節點運行同一個pod

Job: 相似於Quartz

statefulSet: pod狀態保留
負載均衡

 kubernetes特性運維

  1.自我修復優化

    在節點故障時從新啓動失敗的容器,替換和從新部署,保證預期的副本數量;

    殺死健康檢查失敗的容器,而且健康檢查失敗的容器,而且在未準備好以前不會處理客戶端請求,確保線上服務不中斷。

  2.彈性伸縮

    使用命令、UI或者基於CPU使用狀況自動快速擴容和縮容應用程序實例,保證應用業務高峯併發時的高可用性;業務低峯時回收資源,以最小成本運行服務。

  3.自動部署和回滾

    K8S採用滾動更新策略更新應用,一次更新一個Pod,而不是同時刪除全部Pod,若是更新過程當中出現問題,將回滾更改,確保升級不受影響業務。

  4.服務發現和負載均衡

    K8S爲多個容器提供一個統一訪問入口(內部IP地址和一個DNS名稱),而且負載均衡關聯的全部容器,使得用戶無需考慮容器IP問題。

  5.機密和配置管理

    管理機密數據和應用程序配置,而不須要把敏感數據暴露在鏡像裏,提升敏感數據安全性。並能夠將一些經常使用的配置存儲在K8S中,方便應用程序使用。

  6.存儲編排

    掛載外部存儲系統,不管是來自本地存儲,公有云(如AWS),仍是網絡存儲(如NFS、GlusterFS、Ceph)都做爲集羣資源的一部分使用,極大提升存儲使用靈活性。

  7.批處理

    提供一次性任務,定時任務;知足批量數據處理和分析的場景。

相關文章
相關標籤/搜索