色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Kubernetes開發指南之深入理解CRD

馬哥Linux運維 ? 來源:稀土掘金 ? 2023-12-13 18:19 ? 次閱讀

CRD本身是Kubernetes內置的資源類型,全稱是CustomResourceDefinition,可以通過命令查看,kubectl get查看集群內定義的CRD資源。


NAME                         CREATED AT
apps.app.o0w0o.cn            2019-07-25T07:02:47Z
microservices.app.o0w0o.cn   2019-07-25T07:02:47Z

在與人們談論CRD時,我發現人們對CRD存在一些常見的誤解,因此需要提前澄清一些概念:

在 Kubernetes 中,一切都稱為資源,如 Yaml 中的 Kind 項所述。

但除了 Deployment 等常見的內置資源之外,Kube 還允許用戶定義資源(CR)。

CRD 并不是真正的自定義資源,而是自定義資源的定義(描述我們定義的資源的樣子)

對于 CRD,它本質上是一個 Open Api 架構,正如 Kuber 博客文章 ( kubernetes.io/blog/2019/0…) 所說,R 和 CR 都需要 Yaml。但是如何保證Yaml描述的資源是規范的、合法的,這就是schema的作用,而CRD的作用就是向集群注冊一個新的資源,并告訴ApiServer這個資源是如何合法定義的。

控制器模式

在詳細介紹 CRD 之前,我們先簡要解釋一下控制器模型。如果你對 Kubernetes 有了解的話,就知道我們可以通過創建 Deployment 來管理 Pod,但是 Deployment 并不是直接創建 Pod,而是 Deployment 管理 RS,RS 管理 Pod,這實際上就是控制器模式。

0c34693a-999c-11ee-8b88-92fbcf53809c.png

控制器模式允許基于現有資源定義更高階的控制器,以實現更復雜的功能,當然,具體細節肯定會更復雜。

CRD 可以做什么

總的來說,我們用CRD定義的CR是一個新的控制器,我們可以自定義Controller的邏輯來完成一些Kubernetes集群原生不支持的功能。

舉個具體的例子,我使用 Kubebulder 創建了一個簡單的 CRD(github.com/Coderhypo/K…),嘗試將微服務管理構建到 Kubernetes 集群中。

我創建了兩個資源,一個名為App,負責管理整個應用程序生命周期,另一個名為MicroService,負責管理微服務的生命周期。

具體邏輯結構可以理解如下

0c3998ce-999c-11ee-8b88-92fbcf53809c.png

App可以直接管理多個MicroServices,每個都MicroService支持多個版本,并且得益于控制器模型,MicroService可以Deployment為每個版本創建一個,允許多個版本同時部署。

如果管理應用部署過于簡單,MicroService支持創建Service并Ingress為每個微服務啟用四層負載均衡和七層負載均衡。

0c51e776-999c-11ee-8b88-92fbcf53809c.png

并且,如果啟用負載平衡,將為每個版本創建一個 SVC,因此一個服務將有 n + 1 個 SVC,其中 n 為每個版本 1 個,額外的 1 個 SVC 在運行后不會更改(名稱和 clusterIP)MicroService。微服務創建完成后,該SVC的Selector將始終與CurrentVersion SVC相同。

換句話說,存在一個穩定的SVC,它向其他組件提供當前版本的服務,而其他組件則可以訪問特定版本的服務。這種SVC+CurrentVersion使得實現藍綠發布能力變得非常容易。

除了SVC之外,MicroService還基于nginx Ingress控制器的能力實現灰度發布,通過修改canaryLoadBalance中的配置,可以通過scale/header/cookie實現灰度發布。

在這個例子中,App并MicroService沒有創建new capabilities,而是通過組合 Kubernetes 中已有的資源來實現新功能。

但是,除了快速藍綠化和灰化微服務之外,還有什么新價值嗎App?MicroService另一個看不見的價值是管理的標準化,以前應用程序下的任何操作都需要翻譯成“Kube語言”,即對Deployment或Ingress進行管理,現在可以通過統一的入口點規范化進行管理。

概括

通過一個簡單的小演示來描述 CRD 是什么,很容易概括。從我目前的想法來看,我認為CRD有兩個非常重要的能力。

首先,從功能上來說,CRD 將 Kubernetes 中已有的資源和能力變成了樂高積木,我們可以輕松地使用它來擴展 Kubernetes 原生不具備的能力。

其次,基于Kubernetes的產品不可避免地要求我們將產品術語與Kube術語保持一致,例如服務是Deployment,實例是Pod等等。但CRD讓我們可以根據產品創建自己的概念(或者資源),讓Kube現有的資源為我們的概念服務,這讓產品更專注于它解決的場景,而不是考慮如何將場景應用到Kubernetes上。

鏈接:https://juejin.cn/post/7277387014046810146







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16332

    瀏覽量

    177812
  • SVC
    SVC
    +關注

    關注

    0

    文章

    33

    瀏覽量

    12128
  • CRD
    CRD
    +關注

    關注

    0

    文章

    14

    瀏覽量

    4015

原文標題:圖解Kubernetes開發指南之深入理解CRD

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深入理解Android

    深入理解Android
    發表于 08-20 15:30

    深入理解和實現RTOS_連載

    和trcohili的帖子。深入理解和實現RTOS_連載1_RTOS的前生今世今天發布的是第一篇,"RTOS的前生今世"。通過軟件系統結構的比對簡要的介紹rtos為何而生。如果讀者對RTOS
    發表于 05-29 11:20

    深入理解和實現RTOS_連載

    和trcohili的帖子。trochili rtos完全是作者興趣所在,且行且堅持,比沒有duo。深入理解和實現RTOS_連載1_RTOS的前生今世今天發布的是第一篇,"RTOS的前生今世"
    發表于 05-30 01:02

    深入理解lte-a

    深入理解LTE-A
    發表于 02-26 10:21

    如何深入理解ES6函數

    深入理解ES6函數
    發表于 05-22 07:40

    深入理解STM32

    時鐘系統是處理器的核心,所以在學習STM32所有外設之前,認真學習時鐘系統是必要的,有助于深入理解STM32。下面是從網上找的一個STM32時鐘框圖,比《STM32中文參考手冊》里面的是中途看起來清晰一些:重要的時鐘:PLLCLK,SYSCLK,HCKL,PCLK1,...
    發表于 08-12 07:46

    深入理解SQLite3sqlite3_exec及回調函數sqlite3

    深入理解SQLite3sqlite3_exec及回調函數sqlite3:深入理解sqlite3_stmt 機制sqlite3: sqlite3_step 函數sqlite3
    發表于 11-04 07:11

    對棧的深入理解

    為什么要深入理解棧?做C語言開發如果棧設置不合理或者使用不對,棧就會溢出,溢出就會遇到無法預測亂飛現象。所以對棧的深入理解是非常重要的。注:動畫如果看不清楚可以電腦看更清晰啥是棧先來看一段動畫:沒有
    發表于 02-15 07:01

    為什么要深入理解

    [導讀] 從這篇文章開始,將會不定期更新關于嵌入式C語言編程相關的個人認為比較重要的知識點,或者踩過的坑。為什么要深入理解棧?做C語言開發如果棧設置不合理或者使用不對,棧就會溢出,溢出就會遇到無法
    發表于 02-15 06:09

    深入理解Android資源文件

    深入理解Android資源文件
    發表于 01-22 21:11 ?22次下載

    深入理解Android》文前

    深入理解Android》文前
    發表于 03-19 11:23 ?0次下載

    深入理解Android:卷I》

    深入理解Android:卷I》
    發表于 03-19 11:23 ?0次下載

    深入理解Android網絡編程

    深入理解Android網絡編程
    發表于 03-19 11:26 ?1次下載

    深入理解MOS管電子版資源下載

    深入理解MOS管電子版資源下載
    發表于 07-09 09:43 ?0次下載

    深入理解LED開發過程

    不知道你是否想過,一個LED燈點亮過程的本質是什么。當你是一個小白的時候,點亮一個LED燈,IDE都會幫你做好所有的事情,你只需要點擊一下編譯即可。但是,當你成長到一定程度時,就需要好好想想,一個LED的點亮,其實是對單片機中背后原理機制真正的深入理解。今天我就帶你,來深入理解
    發表于 12-22 19:08 ?9次下載
    <b class='flag-5'>深入理解</b>LED<b class='flag-5'>開發</b>過程
    主站蜘蛛池模板: 亚洲人视频在线| 国产精品看高国产精品不卡| www.狠狠色| 国产GV天堂亚洲国产GV刚刚碰| 国产色婷婷亚洲99麻豆| 久久人妻少妇嫩草AV蜜桃35I| 欧美亚洲视频在线二区| 无码天堂亚洲内射精品课堂| 办公室韩国电影免费完整版| 蜜臀AV人妻久久无码精品麻豆| 少妇高潮惨叫久久久久久欧美 | 亚洲欧美中文日韩v在线| 国产精品免费观看视频播放| 色噜噜狠狠色综合中文字幕| 超碰97免费人妻| 日本无修肉动漫在线观看| 持田香织abc| 手机看片成人| 国产麻豆精品人妻无码A片| 午夜婷婷一夜七次郎| 国产全肉乱妇杂乱视频| 亚洲国产综合人成综合网站00| 北岛玲手机在线观看视频观看| 欧美午夜a级精美理论片| 菠萝菠萝蜜免费播放高清| 日日操夜夜操狠狠操| 国产精品久久婷婷五月色 | 秋霞伦理电影在2017韩国在线伦| 一区三区不卡高清影视| 久久久免费观看| 99久久久无码国产精品AAA| 欧美国产精品久久久乱码| 怡春院国产精品视频| 快播最新电影网站| qvod伦理片| 挺弄抽插喷射HH| 精品一成人岛国片在线观看| 52色擼99热99| 手机看片国产日韩欧美| 交换邻居波多野结衣中文字幕| 午理论理影片被窝|