K8s
閱讀數 1萬+
Kubernetes概述Kubernetes(簡稱k8s)是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,k8s的目標是讓部署容器化的應用簡單而且高效(powerful),k8s提供了應用部署... 博文 來自: lifugui001的專欄
•Kubernetes介紹php
1.背景介紹html
雲計算飛速發展java
- IaaSnode
- PaaSpython
- SaaSmysql
Docker技術日新月異linux
- 一次構建,處處運行android
- 容器的快速輕量nginx
- 完整的生態環境程序員
2.什麼是kubernetes
首先,他是一個全新的基於容器技術的分佈式架構領先方案。Kubernetes(k8s)是Google開源的容器集羣管理系統(谷歌內部:Borg)。在Docker技術的基礎上,爲容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等一系列完整功能,提升了大規模容器集羣管理的便捷性。
Kubernetes是一個完備的分佈式系統支撐平臺,具備完備的集羣管理能力,多擴多層次的安全防禦和准入機制、多租戶應用支撐能力、透明的服務註冊和發現機制、內建智能負載均衡器、強大的故障發現和自我修復能力、服務滾動升級和在線擴容能力、可擴展的資源自動調度機制以及多粒度的資源配額管理能力。同時Kubernetes提供完善的管理工具,涵蓋了包括開發、部署測試、運維監控在內的各個環節。
Kubernetes中,Service是分佈式集羣架構的核心,一個Service對象擁有以下關鍵特徵:
Service的服務進程目前都是基於Socket通訊方式對外提供服務,好比Redis、Memcache、MySQL、Web Server,或者是實現了某個具體業務的一個特定的TCP Server進程,雖然一個Service一般由多個相關的服務進程來提供服務,每一個服務進程都有一個獨立的Endpoint(IP+Port)訪問點,但Kubernetes可以讓咱們經過服務鏈接到指定的Service上。有了Kubernetes內奸的透明負載均衡和故障恢復機制,無論後端有多少服務進程,也無論某個服務進程是否會因爲發生故障而從新部署到其餘機器,都不會影響咱們隊服務的正常調用,更重要的是這個Service自己一旦建立就不會發生變化,意味着在Kubernetes集羣中,咱們不用爲了服務的IP地址的變化問題而頭疼了。
容器提供了強大的隔離功能,全部有必要把爲Service提供服務的這組進程放入容器中進行隔離。爲此,Kubernetes設計了Pod對象,將每一個服務進程包裝到相對應的Pod中,使其成爲Pod中運行的一個容器。爲了創建Service與Pod間的關聯管理,Kubernetes給每一個Pod貼上一個標籤Label,好比運行MySQL的Pod貼上name=mysql標籤,給運行PHP的Pod貼上name=php標籤,而後給相應的Service定義標籤選擇器Label Selector,這樣就能巧妙的解決了Service於Pod的關聯問題。
在集羣管理方面,Kubernetes將集羣中的機器劃分爲一個Master節點和一羣工做節點Node,其中,在Master節點運行着集羣管理相關的一組進程kube-apiserver、kube-controller-manager和kube-scheduler,這些進程實現了整個集羣的資源管理、Pod調度、彈性伸縮、安全控制、系統監控和糾錯等管理能力,而且都是全自動完成的。Node做爲集羣中的工做節點,運行真正的應用程序,在Node上Kubernetes管理的最小運行單元是Pod。Node上運行着Kubernetes的kubelet、kube-proxy服務進程,這些服務進程負責Pod的建立、啓動、監控、重啓、銷燬以及實現軟件模式的負載均衡器。
在Kubernetes集羣中,它解決了傳統IT系統中服務擴容和升級的兩大難題。你只需爲須要擴容的Service關聯的Pod建立一個Replication Controller簡稱(RC),則該Service的擴容及後續的升級等問題將迎刃而解。在一個RC定義文件中包括如下3個關鍵信息。
在建立好RC後,Kubernetes會經過RC中定義的的Label篩選出對應Pod實例並實時監控其狀態和數量,若是實例數量少於定義的副本數量,則會根據RC中定義的Pod模板來建立一個新的Pod,而後將新Pod調度到合適的Node上啓動運行,知道Pod實例的數量達到預約目標,這個過程徹底是自動化。
架構資料領取地址:895244712
Kubernetes優點:
- 容器編排
- 輕量級
- 開源
- 彈性伸縮
- 負載均衡
•Kubernetes的核心概念
1.Master
k8s集羣的管理節點,負責管理集羣,提供集羣的資源數據訪問入口。擁有Etcd存儲服務(可選),運行Api Server進程,Controller Manager服務進程及Scheduler服務進程,關聯工做節點Node。Kubernetes API server提供HTTP Rest接口的關鍵服務進程,是Kubernetes裏全部資源的增、刪、改、查等操做的惟一入口。也是集羣控制的入口進程;Kubernetes Controller Manager是Kubernetes全部資源對象的自動化控制中心;Kubernetes Schedule是負責資源調度(Pod調度)的進程
2.Node
Node是Kubernetes集羣架構中運行Pod的服務節點(亦叫agent或minion)。Node是Kubernetes集羣操做的單元,用來承載被分配Pod的運行,是Pod運行的宿主機。關聯Master管理節點,擁有名稱和IP、系統資源信息。運行docker eninge服務,守護進程kunelet及負載均衡器kube-proxy.
Node節點能夠在運行期間動態增長到Kubernetes集羣中,默認狀況下,kubelet會想master註冊本身,這也是Kubernetes推薦的Node管理方式,kubelet進程會定時向Master彙報自身情報,如操做系統、Docker版本、CPU和內存,以及有哪些Pod在運行等等,這樣Master能夠獲知每一個Node節點的資源使用狀況,冰實現高效均衡的資源調度策略。、
3.Pod
運行於Node節點上,若干相關容器的組合。Pod內包含的容器運行在同一宿主機上,使用相同的網絡命名空間、IP地址和端口,可以經過localhost進行通。Pod是Kurbernetes進行建立、調度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個Pod能夠包含一個容器或者多個相關容器。
Pod其實有兩種類型:普通Pod和靜態Pod,後者比較特殊,它並不存在Kubernetes的etcd存儲中,而是存放在某個具體的Node上的一個具體文件中,而且只在此Node上啓動。普通Pod一旦被建立,就會被放入etcd存儲中,隨後會被Kubernetes Master調度到摸個具體的Node上進行綁定,隨後該Pod被對應的Node上的kubelet進程實例化成一組相關的Docker容器冰啓動起來,在。在默認狀況下,當Pod裏的某個容器中止時,Kubernetes會自動檢測到這個問起而且重啓這個Pod(重啓Pod裏的全部容器),若是Pod所在的Node宕機,則會將這個Node上的全部Pod從新調度到其餘節點上。
架構資料領取地址:895244712
4.Replication Controller
Replication Controller用來管理Pod的副本,保證集羣中存在指定數量的Pod副本。集羣中副本的數量大於指定數量,則會中止指定數量以外的多餘容器數量,反之,則會啓動少於指定數量個數的容器,保證數量不變。Replication Controller是實現彈性伸縮、動態擴容和滾動升級的核心。
5.Service
Service定義了Pod的邏輯集合和訪問該集合的策略,是真實服務的抽象。Service提供了一個統一的服務訪問入口以及服務代理和發現機制,關聯多個相同Label的Pod,用戶不須要了解後臺Pod是如何運行。
外部系統訪問Service的問題
首先須要弄明白Kubernetes的三種IP這個問題
Node IP:Node節點的IP地址
Pod IP: Pod的IP地址
Cluster IP:Service的IP地址
首先,Node IP是Kubernetes集羣中節點的物理網卡IP地址,全部屬於這個網絡的服務器之間都能經過這個網絡直接通訊。這也代表Kubernetes集羣以外的節點訪問Kubernetes集羣以內的某個節點或者TCP/IP服務的時候,必須經過Node IP進行通訊
其次,Pod IP是每一個Pod的IP地址,他是Docker Engine根據docker0網橋的IP地址段進行分配的,一般是一個虛擬的二層網絡。
最後Cluster IP是一個虛擬的IP,但更像是一個僞造的IP網絡,緣由有如下幾點
Kubernetes集羣以內,Node IP網、Pod IP網於Cluster IP網之間的通訊,採用的是Kubernetes本身設計的一種編程方式的特殊路由規則。
6.Label
Kubernetes中的任意API對象都是經過Label進行標識,Label的實質是一系列的Key/Value鍵值對,其中key於value由用戶本身指定。Label能夠附加在各類資源對象上,如Node、Pod、Service、RC等,一個資源對象能夠定義任意數量的Label,同一個Label也能夠被添加到任意數量的資源對象上去。Label是Replication Controller和Service運行的基礎,兩者經過Label來進行關聯Node上運行的Pod。
咱們能夠經過給指定的資源對象捆綁一個或者多個不一樣的Label來實現多維度的資源分組管理功能,以便於靈活、方便的進行資源分配、調度、配置等管理工做。
一些經常使用的Label以下:
Label至關於咱們熟悉的標籤,給某個資源對象定義一個Label就至關於給它大了一個標籤,隨後能夠經過Label Selector(標籤選擇器)查詢和篩選擁有某些Label的資源對象,Kubernetes經過這種方式實現了相似SQL的簡單又通用的對象查詢機制。
架構資料領取地址:895244712
Label Selector在Kubernetes中重要使用場景以下:
•Kubernetes架構和組件
- 服務分組,小集羣,多集羣
- 服務分組,大集羣,單集羣
架構資料領取地址:895244712
Kubernetes 組件:
Kubernetes Master控制組件,調度管理整個系統(集羣),包含以下組件:
1.Kubernetes API Server
做爲Kubernetes系統的入口,其封裝了核心對象的增刪改查操做,以RESTful API接口方式提供給外部客戶和內部組件調用。維護的REST對象持久化到Etcd中存儲。
2.Kubernetes Scheduler
爲新創建的Pod進行節點(node)選擇(即分配機器),負責集羣的資源調度。組件抽離,能夠方便替換成其餘調度器。
3.Kubernetes Controller
負責執行各類控制器,目前已經提供了不少控制器來保證Kubernetes的正常運行。
4. Replication Controller
管理維護Replication Controller,關聯Replication Controller和Pod,保證Replication Controller定義的副本數量與實際運行Pod數量一致。
5. Node Controller
管理維護Node,按期檢查Node的健康狀態,標識出(失效|未失效)的Node節點。
6. Namespace Controller
管理維護Namespace,按期清理無效的Namespace,包括Namesapce下的API對象,好比Pod、Service等。
7. Service Controller
管理維護Service,提供負載以及服務代理。
8.EndPoints Controller
管理維護Endpoints,關聯Service和Pod,建立Endpoints爲Service的後端,當Pod發生變化時,實時更新Endpoints。
9. Service Account Controller
管理維護Service Account,爲每一個Namespace建立默認的Service Account,同時爲Service Account建立Service Account Secret。
10. Persistent Volume Controller
管理維護Persistent Volume和Persistent Volume Claim,爲新的Persistent Volume Claim分配Persistent Volume進行綁定,爲釋放的Persistent Volume執行清理回收。
11. Daemon Set Controller
管理維護Daemon Set,負責建立Daemon Pod,保證指定的Node上正常的運行Daemon Pod。
12. Deployment Controller
管理維護Deployment,關聯Deployment和Replication Controller,保證運行指定數量的Pod。當Deployment更新時,控制實現Replication Controller和 Pod的更新。
13.Job Controller
管理維護Job,爲Jod建立一次性任務Pod,保證完成Job指定完成的任務數目
14. Pod Autoscaler Controller
實現Pod的自動伸縮,定時獲取監控數據,進行策略匹配,當知足條件時執行Pod的伸縮動做。
Kubernetes Node運行節點,運行管理業務容器,包含以下組件:
1.Kubelet
負責管控容器,Kubelet會從Kubernetes API Server接收Pod的建立請求,啓動和中止容器,監控容器運行狀態並彙報給Kubernetes API Server。
2.Kubernetes Proxy
負責爲Pod建立代理服務,Kubernetes Proxy會從Kubernetes API Server獲取全部的Service信息,並根據Service的信息建立代理服務,實現Service到Pod的請求路由和轉發,從而實現Kubernetes層級的虛擬轉發網絡。
3.Docker
Node上須要運行容器服務
閱讀數 82
k8s簡介以及linux環境下的詳細安裝步驟k8s是Kubernetes的簡稱,Kubernetes中間有8個單詞,因此叫k8s,就是這麼簡單粗暴。咱們能夠看到docker的圖標是鯊魚,k8s的圖標是... 博文 來自: weixin_44130081的博客
閱讀數 1萬+
1、K8SDashboard簡介簡單的說,K8SDashboard是官方的一個基於WEB的用戶界面,專門用來管理K8S集羣,並可展現集羣的狀態。K8S集羣安裝好後默認沒有包含Dashboard,咱們需... 博文 來自: Mr.zhao
閱讀數 356
前言 是想要去學習這個技術的,就不要只看文章,不動手去實踐。 只是想作了解的,那麼則要重點結合圖一塊兒看故事。 在進行Kubernetes(K8S)實驗時,Pod等沒有運行起來,那麼則使用kubect... 博文 來自: Su_Levi_Wei的博客
閱讀數 778
•Kubernetes介紹1.背景介紹 雲計算飛速發展 - IaaS - PaaS - SaaS Docker技術日新月異 - 一次構建,處處運行 - 容器的快速輕量... 博文 來自: weixin_30315435的博客
閱讀數 323
O kubernetes簡介 k8s是什麼k8s是一個可移植的、可擴展的開源平臺,用於管理容器化的工做負載和服務,能夠促進聲明式配置和自動化。 k8s能作什麼1)服務發現和負載均衡Kubernetes... 博文 來自: qq_35550345的博客
閱讀數 51
前言:2019年已通過去了,在2019年阿里號稱雙11全面上雲,爲何要上雲?這你得問馬雲,開個玩笑...由於k8s的加持,讓雲發揮了更大價值,k8s的提供的彈性伸縮,使得雲資源獲得充分利用,目前全球... 博文 來自: 老漢健身的博客
閱讀數 90
前提:已經搭建K8s集羣、harbor服務,且已經在機器上配置能夠從harbor中拉取上傳鏡像。概要:要想k8s從harbor中拉取鏡像,須要有harbor的用戶、密碼、服務器信息,而後在k8s指定n... 博文 來自: 不會就學吧的博客
閱讀數 42萬+
我本科學校是渣渣二本,研究生學校是985,如今畢業五年,校招筆試、面試,社招面試參加了兩年了,就我我的的經從來說下這個問題。這篇文章很長,但絕對是精華,相信我,讀完之後,你會知道學歷很差的解決方案,記... 博文 來自: 啓艦
閱讀數 53萬+
因爲我以前一直強調數據結構以及算法學習的重要性,因此就有一些讀者常常問我,數據結構與算法應該要學習到哪一個程度呢?,說實話,這個問題我不知道要怎麼回答你,主要取決於你想學習到哪些程度,不過針對這個問題,... 博文 來自: 帥地
閱讀數 55萬+
大學四年,看課本是不可能一直看課本的了,對於學習,特別是自學,善於搜索網上的一些資源來輔助,仍是很是有必要的,下面我就把這幾年私藏的各類資源,網站貢獻出來給大家。主要有:電子書搜索、實用工具、在線視頻... 博文 來自: 帥地
閱讀數 2萬+
人生苦短,我用 Python前文傳送門:小白學 Python 爬蟲(1):開篇小白學 Python 爬蟲(2):前置準備(一)基本類庫的安裝小白學 Python 爬蟲(3):前置準備(二)Linux基... 博文 來自: 極客挖掘機
閱讀數 2127
目錄前言條形碼靜態二維碼二進制生成圖形碼二維碼的定位前言不知不覺中,咱們的生活處處充滿了二維碼。登陸帳戶須要二維碼;加好友須要二維碼;共享單車須要二維碼;商品包裝上也有二維碼;甚至連樓下賣水果的阿姨手... 博文 來自: csdn_aiyang的博客
閱讀數 6863
Jackson是一個簡單的、功能強大的、基於Java的**應用庫**。它能夠很方便完成**Java對象**和**json對象(xml文檔or其它格式)**進行互轉。Jackson社區相對比較活躍,更新... 博文 來自: BAT的烏托邦
閱讀數 8萬+
做者 | Rocky0429來源 | Python空間你們好,我是 Rocky0429,一個喜歡在網上收集各類資源的蒟蒻…網上資源眼花繚亂,下載的方式也一樣千奇百怪,好比 BT 下載,磁力連接,網... 博文 來自: Rocky0429
閱讀數 2840
夜深人靜,電視和電腦都已經關機休息,可是我還在默默工做,我安靜地趴在你家中的某個地方,7*24小時不眠不休,不辭辛苦,目的只有一個,能讓你舒服地躺在牀上,暢快地刷手機!沒錯,這就是我,...... 博文 來自: 碼農翻身
閱讀數 1萬+
前言2019即將過去,伴隨咱們即將迎來的又是新的一年,過完春節,立刻又要迎來新的金三銀四面試季。那麼,做爲程序猿的你,是否真的有所準備的呢,亦或是安於本職工做,繼續作好手頭上的事情。固然,不論選擇如何... 博文 來自: 程序猿學社的博客
閱讀數 2萬+
首先介紹下在本文出現的幾個比較重要的概念:函數計算(Function Compute): 函數計算是一個事件驅動的服務,經過函數計算,用戶無需管理服務器等運行狀況,只需編寫代碼並上傳。函數計算準備計算... 博文 來自: 阿里云云棲號
閱讀數 3萬+
目錄一、導入庫文件二、設計GUI三、調用攝像頭四、實時圖像處理4.一、閾值二值化4.二、邊緣檢測4.三、輪廓檢測4.四、高斯濾波4.五、色彩轉換4.六、調節對比度五、退出系統初學OpenCV圖像處理的... 博文 來自: 不脫髮的程序猿
閱讀數 4萬+
人才需求一線城市共發佈崗位38115個,招聘120827人。其中beijing 22805guangzhou 25081shanghai 39614shenzhen 3... 博文 來自: juwikuang的專欄
閱讀數 3萬+
相信你們時不時聽到程序員猝死的消息,可是基本上聽不到產品經理猝死的消息,這是爲何呢?咱們先百度搜一下:程序員猝死,出現將近700多萬條搜索結果:搜索一下:產品經理猝死,只有400萬條的搜索結果,從搜... 博文 來自: 曹銀飛的專欄
閱讀數 2萬+
聲明:本文以jdk1.8爲主!搞定HashMap做爲一個Java從業者,面試的時候確定會被問到過HashMap,由於對於HashMap來講,能夠說是Java集合中的精髓了,若是你以爲本身對它掌握的還不... 博文 來自: 編碼以外的技術博客
閱讀數 19萬+
天天都會收到不少讀者的私信,問我:「二哥,有什麼推薦的學習網站嗎?最近很浮躁,手頭的一些網站都看煩了,想看看二哥這裏有什麼新鮮貨。」今天一早作了個惡夢,夢到被老闆辭退了。雖說在咱們公司,只有我辭退老... 博文 來自: 沉默王二
閱讀數 15萬+
Windows可謂是大多數人的生產力工具,集娛樂辦公於一體,雖然在程序員這個羣體中都說蘋果是信仰,可是大部分不都是從Windows過來的,並且如今依然有不少的程序員用Windows。因此,今天我就把我... 博文 來自: 編碼以外的技術博客
沒有更多推薦了,返回首頁