Kuboard 有效降低 Kubernetes 學習門檻

Kubernetes 學習門檻在哪兒

學習 Kubernetes 之前灶芝,必須具備的知識儲備:

學習 Kubernetes 的過程中可能碰到的難關:

  • 理解 Kubenetes 為了實現(xiàn)容器編排而提出的各種抽象概念以及他們之間的關系:容器組(Pod)、存儲卷(Volume)冀偶、存儲卷聲明(PVC)、Ingress、Service 等
  • 安裝及配置 Kubernetes 環(huán)境
  • 編寫和維護 Kubernetes Yaml 文件
  • 熟悉 kubectl 命令行工具中常用的 10 多個命令

降低 Kubernetes 學習門檻

學習路線

單純地按章節(jié)學習 Linux 基礎知識羽嫡、網(wǎng)絡知識、容器技術等肩袍,每一塊兒的基礎入門書籍就有幾百頁之多杭棵。作者認為,最好的學習方法是在實踐中學習氛赐,碰到問題時去尋求答案魂爪,解決問題后去反思總結。這種學習方法趣味性強艰管,得來的知識也最為牢靠滓侍,如果選對了方向,所學知識通常也是工作中實用性最高的知識牲芋。讀了100頁 K8S 文檔撩笆,也不如安裝一遍 K8S

Kuboard 為初學者學習 Kubernetes 時設計了如下學習路徑:

進階路線:

  • 在 Kubernetes 中部署 Spring Cloud 微服務應用

快速入門

? 在向 Kubernetes 集群部署應用時缸浦,開發(fā)者或者運維團隊必須花大量的時間去理解 Kubernetes 中各種對象的概念夕冲,并編寫 Yaml 文件去描述 Kubernetes 對象以及他們之間的關系,然而裂逐,不同的人因為經(jīng)驗歹鱼、視角的不同,對Kubernetes 中各對象之間關系的理解并不完全一致卜高,也因此產(chǎn)生了一系列問題:

  • 由于理解的不到位醉冤,剛入門Kubernetes的技術人員在使用 Kubernetes 部署應用時經(jīng)常性地受挫;
  • 由于理解方式的不一致篙悯,不同技術人員編寫的 yaml 文件結構各不一樣蚁阳,降低了部署在后期的可維護性;
  • 由于部署數(shù)量的增加鸽照,導致 YAML 文件的數(shù)量和代碼行數(shù)不斷增長螺捐;

? Kubernetes 官方提供的 Kubernetes Dashboard 充分意識到了 Kubernete 對象類型在種類上的多樣性以及關系上的復雜性,到目前為止并沒有在全功能 Dashboard 上做出過多努力,尤其是沒有付出過多努力去打造工作負載的 UI 編輯器定血。在 Kubernetes Dashboard 中赔癌,如果想要對 Service、Deployment澜沟、StatefulSet灾票、ConfigMap 等各種 Kubernetes 對象執(zhí)行新增或者變更操作時,您必須編寫 YAML 文件茫虽。從這個意義上來講刊苍,截止到作者寫這篇文章的時間點,Kubernetes 的官方 Dashboard 仍然是一個 “只讀” 型 Dashboard濒析,幾乎所有的運維操作仍然需要技術人員去編寫和維護冗長的 YAML 文件正什,并通過 kubectl 命令來完成。

? 由于 Kubernetes YAML 文件復雜性号杏,以及開發(fā)/運維團隊在多環(huán)境復制(開發(fā)環(huán)境婴氮、測試環(huán)境、準上線環(huán)境盾致、生產(chǎn)環(huán)境等)方面的普遍需求主经,Kubernetes 社區(qū)提出了各種各樣的解決方案,例如 kustomize / helm chart 等庭惜,這些解決方案在解決一個問題的同時旨怠,又在另一方面增加了復雜度,為 Kubernetes 愛好者增加了新的學習門檻蜈块。

入門利器

為了降低 Kubernetes 的學習難度和使用難度鉴腻,Kuboard 對 Kubernetes 中管理的各種對象做了一個梳理,并以此為基礎百揭,設計了 Kuboard 工作負載編輯器爽哎。

Kuboard 工作負載編輯器以下圖的方式理解和管理 Kubernetes 對象。

image-20190731221630097

上圖中各概念與 Kuboard 工作負載編輯器界面的映射關系如下:

image-20190722162249531

1. 基本信息

基本信息對應到 Kubernetes 的 Workload Controller器一,當前 Kuboard 工作負載編輯器已經(jīng)支持了使用頻率最高的幾類 Workload Controller :

  • Deployment
  • StatefulSet
  • DaemonSet

Kuboard 將陸續(xù)支持其他低頻使用的 Controller: Garbage Collection, TTL Controller, Jobs, Cron Job课锌。

Kubernetes Workload Controller 主要用于:

  • 根據(jù)容器組模板的定義,創(chuàng)建和管理多個容器組
  • 處理容器組的復制和上線
  • 在集群范圍內(nèi)提供自修復能力

例如:Workload Controller 起初在節(jié)點 A 上創(chuàng)建并運行了一個容器組 pod_a祈秕,當節(jié)點 A 出現(xiàn)故障不能正常工作時渺贤,Workload Controller 可以自動地在其他可用的節(jié)點上運行一個完全相同的容器組實例 pod_a' 以替代 pod_a。

不同類型的 Workload Controller 在處理容器組時请毛,會有各自不同的行為志鞍。

請參考 https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pods-and-controllers

基本信息編輯器的界面如下圖所示:

image-20190722172356943
字段名稱 字段描述
服務類型 即工作負載類型,
當前支持: Deployment方仿、StatefulSet固棚、DaemonSet
服務分層 決定了 Kuboard 將該工作負載展示在哪一個分層统翩,同時,也確定了該工作負載名稱的前綴此洲,可選項有:
  • 展現(xiàn)層 web厂汗、網(wǎng)關層 gateway、服務層 svc呜师、持久層 db娶桦、中間件層 cloud、監(jiān)控層 monitor汁汗;
  • 默認層當前不可選擇 |
    | 標簽 | 用于確定 Service 的 labelSelector衷畦、Controller 的 labels、容器組的 labels |
    | 服務描述 | 展示在 Kuboard 界面上的一段描述信息 |
    | 副本數(shù)量 | 對于 Deployment 和 StatefulSet 可以填寫碰酝,決定了該控制器應該維持的容器組副本的數(shù)量 |

2. 數(shù)據(jù)卷

? 容器每次啟動時,從鏡像中初始化所有文件戴差,后續(xù)對文件系統(tǒng)的修改送爸、新增、刪除操作的結果都是不能持久化的暖释。當容器崩潰時袭厂, kubelet 重啟該容器,但是原容器已經(jīng)做的修改將丟失球匕,因為每次啟動容器纹磺,都是從鏡像中初始化;此外亮曹,多個容器運行在同一個容器組中時橄杨,通常伴隨著在不同容器之間共享文件的需求。

? Kubernetes的抽象出了數(shù)據(jù)卷 Volume 的概念照卦,以解決上述的問題式矫。

? Kuboard 目前支持如下類型的數(shù)據(jù)卷:

  • NFS
  • 存儲卷聲明
  • emptyDir
  • 配置 ConfigMap
  • Secrets

Kubernetes 支持的數(shù)據(jù)卷類型,請參考:https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes

Kuboard 認為當前支持的數(shù)據(jù)卷類型已經(jīng)滿足絕大多數(shù)應用場景役耕,目前正在添加對更多類型數(shù)據(jù)卷的支持采转。

? 容器組中的不同容器都可以通過掛載點引用該容器組加載的數(shù)據(jù)卷。Kuboard 工作負載編輯中瞬痘,使用如下界面定義數(shù)據(jù)卷:

image-20190722182005060
字段名稱 說明
數(shù)據(jù)卷名稱 如圖中的 example-data 故慈、 empty-dir
數(shù)據(jù)卷類型
數(shù)據(jù)卷詳細信息 不同類型的數(shù)據(jù)卷需要填寫的信息不盡相同,例如

存儲卷聲明框全,需要選擇事先已經(jīng)在名稱空間中創(chuàng)建好的存儲卷聲明
NFS察绷,需要填寫 NFS Server 的地址,以及 NFS Path |

3. 身份信息

身份信息區(qū)域主要為容器組定義兩類信息:

  • imagePullSecrets津辩,容器組調用鏡像倉庫接口抓取鏡像時所使用的用戶名密碼克婶。如果您使用了私有鏡像倉庫筒严,您需要在此指定鏡像倉庫的用戶名密碼;如果您使用 docker 公共倉庫情萤,則無需填寫 imagePullSecrets
  • ServiceAccount鸭蛙,容器組調用 kubernetes apiserver 時,所使用的身份信息

Kuboard 工作負載編輯器中關于身份信息的編輯界面如下所示:

image-20190722183329825

4. 容器

容器是我們真正應用程序鏡像被加載和運行的地方筋岛,按照 Kubernetes 的設計娶视,一個容器組 Pod 中可以包含多個容器 Container,這些容器被分為兩類:

Kuborad中柒傻,定義容器的界面如下圖所示:

image-20190722183750444
image.png

5. 訪問方式

? 訪問方式孝赫,即 Kubernetes Service。

請參考: https://kubernetes.io/docs/concepts/services-networking/service/

? Kuboard 中红符,支持 ClusterIP(集群內(nèi)訪問) 以及 NodePort(VPC 內(nèi)訪問) 兩種 Service 訪問方式青柄,您也可以不為該工作負載定義 Service 訪問方式。訪問方式的界面如下所示:

image-20190722184943431

6. 互聯(lián)網(wǎng)入口

? 互聯(lián)網(wǎng)入口预侯,即 Kubernetes Ingress致开。

請參考: https://kubernetes.io/docs/concepts/services-networking/ingress/

? Kuboard 并不限定您使用何種類型的 Ingress Controller, 但是 安裝 Kubernetes 用于測試 文檔中萎馅,推薦使用的 Ingress Controller 是 Nginx-Ingress双戳。

? 在您使用 Nginx-Ingress 的情況下,要想確保您能按照互聯(lián)網(wǎng)入口中定義的域名訪問您的服務糜芳,請確保以下兩點:

  • 域名解析指向 Kubernetes 集群中 Worker 節(jié)點對應的負載均衡的 IP 地址
    • 如果是測試環(huán)境飒货,也可以只指向其中一臺 Worker 節(jié)點的 IP 地址
  • 通過該域名,可以訪問 Worker 節(jié)點的 80 端口
    • 如果您啟用了 HTTPS峭竣,請同時確保通過該域名可以訪問 Worker 節(jié)點的 443 端口

? Kuboard 中膏斤,定義互聯(lián)網(wǎng)入口的界面如下所示:

image-20190722185113938
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市邪驮,隨后出現(xiàn)的幾起案子莫辨,更是在濱河造成了極大的恐慌,老刑警劉巖毅访,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沮榜,死亡現(xiàn)場離奇詭異,居然都是意外死亡喻粹,警方通過查閱死者的電腦和手機蟆融,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來守呜,“玉大人型酥,你說我怎么就攤上這事山憨。” “怎么了弥喉?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵郁竟,是天一觀的道長。 經(jīng)常有香客問我由境,道長棚亩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任虏杰,我火速辦了婚禮讥蟆,結果婚禮上,老公的妹妹穿的比我還像新娘纺阔。我一直安慰自己瘸彤,他們只是感情好,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布笛钝。 她就那樣靜靜地躺著质况,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婆翔。 梳的紋絲不亂的頭發(fā)上拯杠,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天掏婶,我揣著相機與錄音啃奴,去河邊找鬼。 笑死雄妥,一個胖子當著我的面吹牛最蕾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播老厌,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼瘟则,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枝秤?” 一聲冷哼從身側響起醋拧,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淀弹,沒想到半個月后丹壕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡薇溃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年菌赖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沐序。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡琉用,死狀恐怖堕绩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邑时,我是刑警寧澤奴紧,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站刁愿,受9級特大地震影響绰寞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜铣口,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一滤钱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脑题,春花似錦件缸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至已艰,卻和暖如春痊末,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哩掺。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工凿叠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚼吞。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓盒件,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舱禽。 傳聞我的和親對象是個殘疾皇子炒刁,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容