Kubernetes 项目最主要的设计思想是,从宏观的角度,以统一的方式来定义任务之间的各 种关系,并且为将来支持更多种类的关系留有余地。
在 Kubernetes 项目中所推崇的使用方法是:
首先,通过一个“编排对象”,比如 Pod、Job、CronJob 等,来描述你试图管理的应用;
然后,再为它定义一些“服务对象”,比如 Service、Secret、Horizontal Pod Autoscaler(自 动水平扩展器)等。这些对象,会负责具体的平台级功能。
这种使用方法,就是所谓的“声明式 API”。这种 API 对应的“编排对象”和“服务对象”,都是 Kubernetes 项目中的 API 对象(API Object)。
K8S核心功能图:
一个简单的示例观察下“Kubernetes 项目如何启动一个容器化任务”:
- 编写一个yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
- 使用kubectl 通过yaml启动容器
$ kubectl create -f nginx-deployment.yaml