GaussDB(DWS) k8s簡介以及管控面微服務
Kubernetes概述
Kubernetes是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful),Kubernetes提供了應用部署,規(guī)劃,更新,維護的一種機制。
Kubernetes一個核心的特點就是能夠自主的管理容器來保證云平臺中的容器按照用戶的期望狀態(tài)運行著(比如用戶想讓apache一直運行,用戶不需要關心怎么去做,Kubernetes會自動去監(jiān)控,然后去重啟,新建,總之,讓apache一直提供服務),管理員可以加載一個微型服務,讓規(guī)劃器來找到合適的位置,同時,Kubernetes也系統(tǒng)提升工具以及人性化方面,讓用戶能夠方便的部署自己的應用(就像canary deployments)
Kubernetes節(jié)點
Kubernetes集群包含有節(jié)點代理kubelet和Master組件(APIs, scheduler, etc),一切都基于分布式的存儲系統(tǒng)。
master上的組件主要有API service 、調(diào)度器和controller manager,controller manager上有一組控制器;k8s上API對象所有的狀態(tài)變化都存儲在ETCD上面,
節(jié)點/node:在這里最主要的兩個概念kubelet、kube-proxy
kubelet主要負責:pod被調(diào)度之后完整的生命周期的管理
kube-proxy主要負責:services和endpoint的生命周期的管理,給pod配置loadbalance規(guī)則;
Kubernetes中基本概念
Cluster : 集群是指由Kubernetes使用一系列的物理機、虛擬機和其他基礎資源來運行你的應用程序。
Node : 一個node就是一個運行著Kubernetes的物理機或虛擬機,并且pod可以在其上面被調(diào)度。.
Pod?:?一個pod對應一個由相關容器和卷組成的容器組 (了解Pod詳情)
Label : 一個label是一個被附加到資源上的鍵/值對,譬如附加到一個Pod上,為它傳遞一個用戶自定的并且可識別的屬性.Label還可以被應用來組織和選擇子網(wǎng)中的資源(了解Label詳情)
selector是一個通過匹配labels來定義資源之間關系得表達式,例如為一個負載均衡的service指定所目標Pod.(了解selector詳情)
Replication Controller?: replication controller 是為了保證一定數(shù)量被指定的Pod的復制品在任何時間都能正常工作.它不僅允許復制的系統(tǒng)易于擴展,還會處理當pod在機器在重啟或發(fā)生故障的時候再次創(chuàng)建一個(了解Replication Controller詳情)
Service?: 一個service定義了訪問pod的方式,就像單個固定的IP地址和與其相對應的DNS名之間的關系。(了解Service詳情)
Volume: 一個volume是一個目錄,可能會被容器作為未見系統(tǒng)的一部分來訪問。(了解Volume詳情)
Kubernetes volume 構建在Docker Volumes之上,并且支持添加和配置volume目錄或者其他存儲設備。
Secret : Secret 存儲了敏感數(shù)據(jù),例如能允許容器接收請求的權限令牌。
Name : 用戶為Kubernetes中資源定義的名字
Namespace : Namespace 好比一個資源名字的前綴。它幫助不同的項目、團隊或是客戶可以共享cluster,例如防止相互獨立的團隊間出現(xiàn)命名沖突
Annotation : 相對于label來說可以容納更大的鍵值對,它對我們來說可能是不可讀的數(shù)據(jù),只是為了存儲不可識別的輔助數(shù)據(jù),尤其是一些被工具或系統(tǒng)擴展用來操作的數(shù)據(jù)
名詞解釋 Pods
在Kubernetes中,最小的管理元素不是一個個獨立的容器,而是Pod,Pod是最小的,管理,創(chuàng)建,計劃的最小單元.,一組container的集合,scheduling為pod找到一個合適的Node。
名詞解釋:Node
Node是Pod真正運行的主機,可以物理機,也可以是虛擬機。為了管理Pod,每個Node節(jié)點上至少要運行container runtime(比如docker或者rkt)、kubelet和kube-proxy服務。
每個Node都包括以下狀態(tài)信息
地址:包括hostname、外網(wǎng)IP和內(nèi)網(wǎng)IP
條件(Condition):包括OutOfDisk、Ready、MemoryPressure和DiskPressure
容量(Capacity):Node上的可用資源,包括CPU、內(nèi)存和Pod總數(shù)
基本信息(Info):包括內(nèi)核版本、容器引擎版本、OS類型等
名稱解釋:Deployment
Deployment為Pod和ReplicaSet提供了一個聲明式定義(declarative)方法,用來替代以前的ReplicationController來方便的管理應用。典型的應用場景包括:
定義Deployment來創(chuàng)建Pod和ReplicaSet
滾動升級和回滾應用
擴容和縮容
暫停和繼續(xù)Deployment
名詞解釋 Services
Kubernetes Pod是平凡的,它門會被創(chuàng)建,也會死掉(生老病死),并且他們是不可復活的。 ReplicationControllers動態(tài)的創(chuàng)建和銷毀Pods(比如規(guī)模擴大或者縮小,或者執(zhí)行動態(tài)更新)。每個pod都由自己的ip,這些IP也隨著時間的變化也不能持續(xù)依賴。這樣就引發(fā)了一個問題:如果一些Pods(讓我們叫它作后臺,后端)提供了一些功能供其它的Pod使用(讓我們叫作前臺),在kubernete集群中是如何實現(xiàn)讓這些前臺能夠持續(xù)的追蹤到這些后臺的?
答案是:Service
Kubernete Service 是一個定義了一組Pod的策略的抽象,我們也有時候叫做宏觀服務。這些被服務標記的Pod都是(一般)通過label Selector決定的(下面我們會講到我們?yōu)槭裁葱枰粋€沒有l(wèi)abel selector的服務)
名詞解釋:ConfigMap
ConfigMap用于保存配置數(shù)據(jù)的鍵值對,可以用來保存單個屬性,也可以用來保存配置文件。
可以使用kubectl create configmap從文件、目錄或者key-value字符串創(chuàng)建等創(chuàng)建ConfigMap。
ConfigMap可以通過多種方式在Pod中使用,比如設置環(huán)境變量、設置容器命令行參數(shù)、在Volume中創(chuàng)建配置文件等。
kubernetes API對象基本構成
typeMeta:主要表面是哪個類型對象,版本
objectMeta:對象元數(shù)據(jù)
spec:期望狀態(tài)
status:實際狀態(tài)
Pod調(diào)度
服務容器化
管控面微服務運行在容器平臺(kubernetes)上而不是現(xiàn)在的ECS VM上,利用容器平臺(kubernetes)自動化的部署,運行,和擴展服務;集成Service Mesh 微服務框架,為管控面服務提供一個完整的服務部署,運行,治理的環(huán)境。管控面統(tǒng)一使用SRE的CDK工具來部署。
通過Kubernetes可以:
快速部署應用
快速擴展應用
無縫對接新的應用功能
節(jié)省資源,優(yōu)化硬件資源的使用
目標:促進完善組件和工具的生態(tài)系統(tǒng),以減輕應用程序在公有云或私有云中運行的負擔
Kubernetes的特點:
可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
可擴展:模塊化,插件化,可掛載,可組合
自動化:自動部署,自動重啟,自動復制,自動伸縮/擴展
k8s常用查詢,主要是node/pod/configmap/deployment/service
EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉庫服務 GaussDB(DWS)
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。