kubernetes实战之六(Kubernetes API)

一、API对象与元数据
kubernetes中的很多功能是通过API对象来实现的,API对象包括Pod、Replication Controller、Service和Secret等。在定义API对象的时候需要分别声明API版本(apiVersion)和类型(kind)。
当前版本支持的API对象的API版本和类型如下:
1.v1/Pod
2.v1/ReplicationController
3.v1/Service
4.v1/Endpoint
5.v1/Events
6.v1/Node
7.v1/Namespace
8.v1/Secret
9.v1/ServiceAccount
10.v1/PersistentVolume
11.v1/PersistentVolumeClaim
12.v1/LimitRange
13.v1/ResourceQuota
14.extensions/v1betal/Deployment
15.extensions/v1betal/HorizontalPodAutoscaler
16.extensions/v1betal/Ingress
17.extensions/v1betal/Job
18.extensions/v1betal/Daemonset
API对象的元数据用来定义API对象的基本信息,体现在定义中的metadata字段,包含以下属性:
1).Namespace:指定API对象所在的Namespace
2).name:指定API对象的名称
3).labels:设置API对象的Label
4).annotations:设置API对象的Annotation

1.Namespace
Namespace是kubernetes提供的多租户,不同的项目、团队或者用户可以通过Namespace进行区分管理,并且设置安全控制和其他策略。绝大部分API对象(除了Node)归属于Namespace,API对象通过.metadata.namespace指定Namespace,如果没有指定Namespace,那么就是归属于默认Namespace:default。
2.Name
名称是一个重要的属性,是人类可读的,元数据中的.metadata.name用于指定API对象的名称。
3.Label
Label用于区分API对象的key/value对,Label存放的应该是具有标识性的数据,kubernetes通过Label可以对API对象进行选择。
Replication Controller和Service都是通过Label关联Pod,而Pod也可以通过Label选择Node。
4.Annotation
Annotation用于存放用户的自定义数据,Annotation存放的是非表示的数据,所以不能像Label一样进行对象选择。但是Annotation的数据可以是长数据,可以有结构或者无结构,作为Label的一种补充,Annotation也是key/value对。
annotations:
key1:value1
key2:value2
二、kubernetes API访问
使用Kubernetes都需要访问其API,而Kubernetes API Server作为Kubernetes系统的入口,以REST API接口方式提供给外部调用,所以访问Kubernetes API实际上就是调用Kubernetes API Server。其中Kubernetes API Server集成了Swagger,可以通过界面查询所有API的详细信息(http://kube-master:8080/swagger-ui)。
三、使用命令行工具kubectl
Kubernetes提供了命令行工具kubectl,它提供了非常简洁快速的方法来访问Kubernetes API,可以满足大部分对Kubernetes的操作。

posted @ 2017-12-17 18:00  牛头人  阅读(303)  评论(0)    收藏  举报