<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      我們首先將對Kubernetes API Server進行概括性的介紹,然后對一些術(shù)語進行介紹,最后對API請求流程進行解釋。后續(xù)會有新的文章對API
      Server的存儲和擴展點等主題進行介紹。本篇是Kubernetes?API Server系列第一篇。? ?

      API Server簡介



      在概念層面上,Kubernetes由一系列不同角色的節(jié)點組成。Mater節(jié)點上的控制平面由API Server,Controller
      Manager和Scheduler組成。API Server是中心管理實體,是與分布式存儲組件(etcd)進行直接通信的唯一組件。API
      Server提供以下核心功能:



      *
      服務(wù)于被集群內(nèi)部工作節(jié)點和外部kubectl使用的Kubernetes API

      *
      為集群組件提供代理,如Kubernetes UI

      *
      允許對對象(例如pod和service等)的狀態(tài)進行操作

      *
      保持分布式存儲(etcd)中對象的狀態(tài)



      Kubernetes API是HTTP API,以JSON作為主要的結(jié)構(gòu)化數(shù)據(jù)的序列化格式,但同時它也支持Google的Protocol
      Buffers格式進行描述(主要用于集群內(nèi)部通信)。




      考慮到可擴展性原因,Kubernetes支持多個API版本,分別處于不同的API路徑上,例如/api/v1或/apis/extensions/v1beta1。不同的API版本意味著不同等級的穩(wěn)定性和支持度:



      *
      Alpha級別,例如v1alpha1,默認情況下被禁用,對此功能的支持可能隨時會被舍棄,而且不會進行通知,因此只能在短期測試的集群中使用。

      *
      Beta級別,例如v2beta3,默認情況下啟用,意味著代碼已經(jīng)經(jīng)過良好的測試,但對象的語義可能會在后續(xù)beta版或stable版中以不兼容的方式進行更改。

      *
      Stable級別,例如v1,將出現(xiàn)在多個后續(xù)版本的released軟件中。



      現(xiàn)在來看看HTTP
      API空間是如何組成的。在頂層,按照以下幾個組進行區(qū)分:核心組(均位于/api/v1路徑下,由于歷史原因位于此路徑,而不在/apis/core/v1路徑下),命名組(位于/apis/$NAME/$VERSION路徑下),以及系統(tǒng)范圍實體(如/metrics)。



      接下來我們將聚焦一個具體的例子:批處理(batch)操作。在Kubernetes
      1.5中,存在兩個版本的批處理操作:/apis/batch/v1和/apis/batch/v2alpha1,分別暴露不同的可以進行查詢和操作的實體集。



      下面我們展示一個與API進行交互的示范性例子(使用Minishift工具和代理命令行oc proxy –port=8080,以直接對API進行訪問):



      $ curl http://127.0.0.1:8080/apis/batch/v1?

      {?

      “kind”: “APIResourceList”,?

      “apiVersion”: “v1”,?

      “groupVersion”: “batch/v1”,?

      “resources”: [?

      {?

      “name”: “jobs”,?

      “namespaced”: true,?

      “kind”: “Job”?

      },?

      {?

      “name”: “jobs/status”,?

      “namespaced”: true,?

      “kind”: “Job”?

      }?

      ]?

      }



      接下來,使用新的Alpha版本:



      $ curl http://127.0.0.1:8080/apis/batch/v2alpha1?

      {?

      “kind”: “APIResourceList”,?

      “apiVersion”: “v1”,?

      “groupVersion”: “batch/v2alpha1”,?

      “resources”: [?

      {?

      “name”: “cronjobs”,?

      “namespaced”: true,?

      “kind”: “CronJob”?

      },?

      {?

      “name”: “cronjobs/status”,?

      “namespaced”: true,?

      “kind”: “CronJob”?

      },?

      {?

      “name”: “jobs”,?

      “namespaced”: true,?

      “kind”: “Job”?

      },?

      {?

      “name”: “jobs/status”,?

      “namespaced”: true,?

      “kind”: “Job”?

      },?

      {?

      “name”: “scheduledjobs”,?

      “namespaced”: true,?

      “kind”: “ScheduledJob”?

      },?

      {?

      “name”: “scheduledjobs/status”,?

      “namespaced”: true,?

      “kind”: “ScheduledJob”?

      }?

      ]?

      }



      通常情況下,通過標(biāo)準(zhǔn)HTTP的POST、PUT、DELETE和GET動作,以JSON作為默認有效載荷,Kubernetes
      API支持在給定路徑上進行創(chuàng)建(create)、更新(update)、刪除(delete)、檢索(retrieve)操作。




      大多數(shù)API對象會區(qū)分對象的期望狀態(tài)規(guī)格(specification)和對象的當(dāng)前狀態(tài)。對象規(guī)格(specification)是對期望狀態(tài)的完整描述,并保存在持久化存儲中。

      本文轉(zhuǎn)移K8S技術(shù)社區(qū)-深度解析 | K8S API Server之入門須知
      <https://yq.aliyun.com/go/articleRenderRedirect?url=http%3A%2F%2Fk8s.cn%2Findex.php%2F2017%2F07%2F03%2F510%2F>

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          中文字幕亚洲有码 | 开心婷婷五月天 | 手机在线欧美 | 中文字幕一区在线播放 | 黄页网站视频免费观看 | 污污的网站在线看 | 污污视频免费在线看 | 高清乱码 毛片 | 色色亚州| 国产丨熟女丨国产熟女视频 |