上QQ阅读APP看书,第一时间看更新
1.4 Kubernetes API
若想了解一个系统的功能及其提供的服务,需要关注它的API。API为使用该系统的用户提供了一个全局图。Kubernetes从多角度为开发者提供多组REST API。有些API需通过工具使用,有些则可以被开发者直接使用。API的一个重要方面在于它们也在不断地发展,Kubernetes开发者通过尝试扩展(向现有对象添加新对象和新字段),避免重命名或删除现有对象和字段来保持其可管理性。此外,所有API端点都是版本化的,通常也包含Alpha或Beta记法。代码如下。
/api/v1
/api/v2alpha1
通过基于客户端库的kubectl CLI,或者直接调用REST API,可以访问API。下面的章节会对认证和授权机制进行详细介绍。由此,读者可对API有初步的认识。
1.4.1 Kubernetes API
这是Kubernetes的主要API,它非常庞大。前文所讲的所有概念以及许多辅助概念,都有相应的API对象和运算。若有正确的权限,则可列出、获取、创建和更新对象。下面是一个常见操作的详细文档,可以得到所有的Pod列表。
GET /api/v1/pods
它支持各种可选参数。
pretty:
如果为true
,输出则用pretty
打印。labelSelector:
用于限制结果的选择器表达。watch:
如果为true
,则观察变化并返回事件流。resourceVersion:
使用watch
,只返回该版本之后发生的事件。timeoutSeconds:
列表或监控器的超时时长。
1.4.2 自动伸缩 API
自动伸缩API非常聚焦,允许控制同级别的Pod自动缩放器。该自动缩放器基于CPU利用率,甚至特定于应用的度量来管理一组Pod。它可以用/apis/autoscaling/v1
端点来列出、查询、创建、更新和销毁自动缩放器对象。
批处理API
批处理API用来管理作业。作业是执行和终止某些活动的Pod。与副本控制器管理的常规Pod不同,它们在作业完成时就应该终止。批处理API使用Pod模板指定作业,然后在大部分情况下,允许通过/apis/batch/v1
端点列出、查询、创建和删除作业。