教程 > k8s 教程 > 阅读:37

kubernetes(k8s) api——迹忆客-ag捕鱼王app官网

kubernetes api 是系统声明性配置模式的基础。 kubectl 命令行工具可用于创建、更新、删除和获取 api 对象。 kubernetes api 充当 kubernetes 不同组件之间的通信器。


向 kubernetes 添加 api

向 kubernetes 添加新的 api 将为 kubernetes 添加新功能,这将增加 kubernetes 的功能。 然而,与此同时,它也会增加系统的成本和可维护性。 为了在成本和复杂性之间建立平衡,为此定义了一些集合。

正在添加的 api 应该对 50% 以上的用户有用。 在 kubernetes 中没有其他方法可以实现该功能。 异常情况在 kubernetes 的社区会议上讨论,然后添加 api。


api 更改

为了增加 kubernetes 的能力,不断地向系统引入变化。 kubernetes 团队在不删除或影响系统现有功能的情况下将功能添加到 kubernetes。

为了演示一般过程,下面是一个(假设的)示例

  • 用户 post 一个 pod 对象到 /api/v7beta1/...
  • json 被解组为 v7beta1.pod 结构
  • 默认值应用于 v7beta1.pod
  • v7beta1.pod 转换为 api.pod 结构
  • api.pod 被验证,任何错误都返回给用户
  • 将 api.pod 转换为 v6.pod(因为 v6 是最新的稳定版本)
  • v6.pod 编组为 json 并写入 etcd

现在我们已经存储了 pod 对象,用户可以在任何支持的 api 版本中获取该对象。例如 -

  • 用户从 /api/v5/... 获取 pod
  • json 从 etcd 读取并解组为 v6.pod 结构
  • 默认值应用于 v6.pod
  • v6.pod 转换为 api.pod 结构
  • api.pod 转换为 v5.pod 结构
  • v5.pod 被编组为 json 并发送给用户

这个过程的含义是 api 更改必须小心且向后兼容。


api 版本控制

为了更容易支持多种结构,kubernetes 支持多个 api 版本,每个版本位于不同的 api 路径,例如 /api/v1 或 /apsi/extensions/v1beta1

kubernetes 的版本控制标准在多个标准中定义。

alpha 级别

  • 此版本包含 alpha(例如 v1alpha1)
  • 这个版本可能有问题; 启用的版本可能有错误
  • 可以随时放弃对错误的支持。
  • 建议仅在短期测试中使用,因为支持可能不会一直存在。

beta 级别

  • 版本名称包含 beta(例如 v2beta3)
  • 代码经过全面测试,启用的版本应该是稳定的。
  • 不会放弃对该功能的支持; 可能会有一些小的变化。
  • 建议仅用于非业务关键用途,因为后续版本中可能会出现不兼容的更改。

stable 级别

  • 版本名称是 vx,其中 x 是一个整数。
  • 稳定版本的功能将出现在许多后续版本的已发布软件中。

查看笔记

扫码一下
查看教程更方便
网站地图