• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年4月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456


            專注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺尊重!!如為您帶來不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215511
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

            十分鐘帶你理解Kubernetes核心概念

            原文地址:http://www.dockone.io/article/932
            本文將會(huì)簡單介紹Kubernetes的核心概念。因?yàn)檫@些定義可以在Kubernetes的文檔中找到,所以文章也會(huì)避免用大段的枯燥的文字介紹。相反,我們會(huì)使用一些圖表(其中一些是動(dòng)畫)和示例來解釋這些概念。我們發(fā)現(xiàn)一些概念(比如Service)如果沒有圖表的輔助就很難全面地理解。在合適的地方我們也會(huì)提供Kubernetes文檔的鏈接以便讀者深入學(xué)習(xí)。
            這就開始吧。

            什么是Kubernetes?

            Kubernetes(k8s)是自動(dòng)化容器操作的開源平臺(tái),這些操作包括部署,調(diào)度和節(jié)點(diǎn)集群間擴(kuò)展。如果你曾經(jīng)用過Docker容器技術(shù)部署容器,那么可以將Docker看成Kubernetes內(nèi)部使用的低級(jí)別組件。Kubernetes不僅僅支持Docker,還支持Rocket,這是另一種容器技術(shù)。
            使用Kubernetes可以:
            • 自動(dòng)化容器的部署和復(fù)制
            • 隨時(shí)擴(kuò)展或收縮容器規(guī)模
            • 將容器組織成組,并且提供容器間的負(fù)載均衡
            • 很容易地升級(jí)應(yīng)用程序容器的新版本
            • 提供容器彈性,如果容器失效就替換它,等等...

            實(shí)際上,使用Kubernetes只需一個(gè)部署文件,使用一條命令就可以部署多層容器(前端,后臺(tái)等)的完整集群:
            $ kubectl create -f single-config-file.yaml
            

            kubectl是和Kubernetes API交互的命令行程序。現(xiàn)在介紹一些核心概念。

            集群

            集群是一組節(jié)點(diǎn),這些節(jié)點(diǎn)可以是物理服務(wù)器或者虛擬機(jī),之上安裝了Kubernetes平臺(tái)。下圖展示這樣的集群。注意該圖為了強(qiáng)調(diào)核心概念有所簡化。這里可以看到一個(gè)典型的Kubernetes架構(gòu)圖。
            1.png

            上圖可以看到如下組件,使用特別的圖標(biāo)表示Service和Label:
            • Pod
            • Container(容器)
            • Label(label)(標(biāo)簽)
            • Replication Controller(復(fù)制控制器)
            • Service(enter image description here)(服務(wù))
            • Node(節(jié)點(diǎn))
            • Kubernetes Master(Kubernetes主節(jié)點(diǎn))

            Pod

            Pod(上圖綠色方框)安排在節(jié)點(diǎn)上,包含一組容器和卷。同一個(gè)Pod里的容器共享同一個(gè)網(wǎng)絡(luò)命名空間,可以使用localhost互相通信。Pod是短暫的,不是持續(xù)性實(shí)體。你可能會(huì)有這些問題:
            • 如果Pod是短暫的,那么我怎么才能持久化容器數(shù)據(jù)使其能夠跨重啟而存在呢? 是的,Kubernetes支持的概念,因此可以使用持久化的卷類型。
            • 是否手動(dòng)創(chuàng)建Pod,如果想要?jiǎng)?chuàng)建同一個(gè)容器的多份拷貝,需要一個(gè)個(gè)分別創(chuàng)建出來么?可以手動(dòng)創(chuàng)建單個(gè)Pod,但是也可以使用Replication Controller使用Pod模板創(chuàng)建出多份拷貝,下文會(huì)詳細(xì)介紹。
            • 如果Pod是短暫的,那么重啟時(shí)IP地址可能會(huì)改變,那么怎么才能從前端容器正確可靠地指向后臺(tái)容器呢?這時(shí)可以使用Service,下文會(huì)詳細(xì)介紹。

            Lable

            正如圖所示,一些Pod有Label(enter image description here)。一個(gè)Label是attach到Pod的一對(duì)鍵/值對(duì),用來傳遞用戶定義的屬性。比如,你可能創(chuàng)建了一個(gè)"tier"和“app”標(biāo)簽,通過Label(tier=frontend, app=myapp)來標(biāo)記前端Pod容器,使用Label(tier=backend, app=myapp)標(biāo)記后臺(tái)Pod。然后可以使用Selectors選擇帶有特定Label的Pod,并且將Service或者Replication Controller應(yīng)用到上面。

            Replication Controller

            是否手動(dòng)創(chuàng)建Pod,如果想要?jiǎng)?chuàng)建同一個(gè)容器的多份拷貝,需要一個(gè)個(gè)分別創(chuàng)建出來么,能否將Pods劃到邏輯組里?

            Replication Controller確保任意時(shí)間都有指定數(shù)量的Pod“副本”在運(yùn)行。如果為某個(gè)Pod創(chuàng)建了Replication Controller并且指定3個(gè)副本,它會(huì)創(chuàng)建3個(gè)Pod,并且持續(xù)監(jiān)控它們。如果某個(gè)Pod不響應(yīng),那么Replication Controller會(huì)替換它,保持總數(shù)為3.如下面的動(dòng)畫所示:
            2.gif

            如果之前不響應(yīng)的Pod恢復(fù)了,現(xiàn)在就有4個(gè)Pod了,那么Replication Controller會(huì)將其中一個(gè)終止保持總數(shù)為3。如果在運(yùn)行中將副本總數(shù)改為5,Replication Controller會(huì)立刻啟動(dòng)2個(gè)新Pod,保證總數(shù)為5。還可以按照這樣的方式縮小Pod,這個(gè)特性在執(zhí)行滾動(dòng)升級(jí)時(shí)很有用。

            當(dāng)創(chuàng)建Replication Controller時(shí),需要指定兩個(gè)東西:
            1. Pod模板:用來創(chuàng)建Pod副本的模板
            2. Label:Replication Controller需要監(jiān)控的Pod的標(biāo)簽。

            現(xiàn)在已經(jīng)創(chuàng)建了Pod的一些副本,那么在這些副本上如何均衡負(fù)載呢?我們需要的是Service。

            Service

            如果Pods是短暫的,那么重啟時(shí)IP地址可能會(huì)改變,怎么才能從前端容器正確可靠地指向后臺(tái)容器呢?

            Service是定義一系列Pod以及訪問這些Pod的策略的一層抽象。Service通過Label找到Pod組。因?yàn)镾ervice是抽象的,所以在圖表里通常看不到它們的存在,這也就讓這一概念更難以理解。

            現(xiàn)在,假定有2個(gè)后臺(tái)Pod,并且定義后臺(tái)Service的名稱為‘backend-service’,lable選擇器為(tier=backend, app=myapp)。backend-service 的Service會(huì)完成如下兩件重要的事情:
            • 會(huì)為Service創(chuàng)建一個(gè)本地集群的DNS入口,因此前端Pod只需要DNS查找主機(jī)名為 ‘backend-service’,就能夠解析出前端應(yīng)用程序可用的IP地址。
            • 現(xiàn)在前端已經(jīng)得到了后臺(tái)服務(wù)的IP地址,但是它應(yīng)該訪問2個(gè)后臺(tái)Pod的哪一個(gè)呢?Service在這2個(gè)后臺(tái)Pod之間提供透明的負(fù)載均衡,會(huì)將請(qǐng)求分發(fā)給其中的任意一個(gè)(如下面的動(dòng)畫所示)。通過每個(gè)Node上運(yùn)行的代理(kube-proxy)完成。這里有更多技術(shù)細(xì)節(jié)。

            下述動(dòng)畫展示了Service的功能。注意該圖作了很多簡化。如果不進(jìn)入網(wǎng)絡(luò)配置,那么達(dá)到透明的負(fù)載均衡目標(biāo)所涉及的底層網(wǎng)絡(luò)和路由相對(duì)先進(jìn)。如果有興趣,這里有更深入的介紹。
            3.gif

            有一個(gè)特別類型的Kubernetes Service,稱為'

            Node

            節(jié)點(diǎn)(上圖橘色方框)是物理或者虛擬機(jī)器,作為Kubernetes worker,通常稱為Minion。每個(gè)節(jié)點(diǎn)都運(yùn)行如下Kubernetes關(guān)鍵組件:
            • Kubelet:是主節(jié)點(diǎn)代理。
            • Kube-proxy:Service使用其將鏈接路由到Pod,如上文所述。
            • Docker或Rocket:Kubernetes使用的容器技術(shù)來創(chuàng)建容器。

            Kubernetes Master

            集群擁有一個(gè)Kubernetes Master(紫色方框)。Kubernetes Master提供集群的獨(dú)特視角,并且擁有一系列組件,比如Kubernetes API Server。API Server提供可以用來和集群交互的REST端點(diǎn)。master節(jié)點(diǎn)包括用來創(chuàng)建和復(fù)制Pod的Replication Controller。

            下一步

            現(xiàn)在我們已經(jīng)了解了Kubernetes核心概念的基本知識(shí),你可以進(jìn)一步閱讀Kubernetes 
            用戶手冊(cè)。用戶手冊(cè)提供了快速并且完備的學(xué)習(xí)文檔。
            如果迫不及待想要試試Kubernetes,可以使用Google Container Engine。Google Container Engine是托管的Kubernetes容器環(huán)境。簡單注冊(cè)/登錄之后就可以在上面嘗試示例了。

            原文鏈接:Learn the Kubernetes Key Concepts in 10 Minutes(翻譯:崔婧雯) 
            ===========================
            譯者介紹
            崔婧雯,現(xiàn)就職于IBM,高級(jí)軟件工程師,負(fù)責(zé)IBM WebSphere業(yè)務(wù)流程管理軟件的系統(tǒng)測試工作。曾就職于VMware從事桌面虛擬化產(chǎn)品的質(zhì)量保證工作。對(duì)虛擬化,中間件技術(shù),業(yè)務(wù)流程管理有濃厚的興趣。
            posted on 2016-09-24 10:50 思月行云 閱讀(680) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Docker\K8s
            久久久久无码专区亚洲av| 久久亚洲AV成人无码| 久久久久亚洲AV无码专区桃色| 久久久久无码精品| 久久国产精品77777| 国产精品日韩深夜福利久久 | 天天久久狠狠色综合| 久久久久久久久久久免费精品| 久久人妻无码中文字幕| 四虎国产永久免费久久| 亚洲精品午夜国产VA久久成人| 亚洲午夜精品久久久久久人妖| 久久久久久精品免费看SSS| 国产精品欧美亚洲韩国日本久久| 久久久噜噜噜久久中文字幕色伊伊| AA级片免费看视频久久| 久久久精品国产sm调教网站| 久久婷婷色香五月综合激情| 国产亚洲美女精品久久久| 精品国产乱码久久久久久1区2区| 18禁黄久久久AAA片| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久99国产精品久久| 2021国内久久精品| 亚洲人成无码www久久久| 久久久久香蕉视频| 亚洲伊人久久大香线蕉苏妲己| 久久精品国产亚洲av影院| 久久99久久99精品免视看动漫| 欧美久久天天综合香蕉伊| 久久精品免费网站网| 99久久精品无码一区二区毛片| 狠狠久久亚洲欧美专区| 国产精品99久久久久久人| 精品久久久久久久久中文字幕| 国产亚洲综合久久系列| 嫩草伊人久久精品少妇AV| 亚洲精品美女久久777777| 亚洲中文精品久久久久久不卡| 亚洲AV无码一区东京热久久| 亚洲精品无码久久一线|