使用yaml创建Deployment
Deployment是新一代用于Pod管理的对象,与Replication Controller相比,它提供了更加完善的功能,使用起来更加简单方便。
如果Pod出现故障,对应的服务也会挂掉,所以Kubernetes提供了一个Deployment的概念 ,目的是让Kubernetes去管理一组Pod的副本,也就是副本集 ,这样就能够保证一定数量的副本一直可用,不会因为某一个Pod挂掉导致整个服务挂掉。
一个完整的Deployment的YAML文件:
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kube100-site
spec:
replicas: 2
template:
metadata:
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: flaskapp-demo
image: jcdemo/flaskapp
ports:
- containerPort: 5000
apiVersion:注意这里apiVersion对应的值是extensions/v1beta1
kind的类型:指定为Deployment。
metadata:指定一些meta信息,包括名字或标签之类的。
spec:选项定义需要两个副本,此处可以设置很多属性,主要是受此Deployment影响的Pod的选择器
spec 选项的template其实就是对Pod对象的定义
可以在Kubernetes v1beta1 API 参考中找到完整的Deployment可指定的参数列表
创建Deployment:
将上述的YAML文件保存为deployment.yaml,然后创建Deployment:
# kubectl create -f deployment.yaml
deployment "kube100-site" created
检查Deployment的列表:
# kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube100-site 2 2 2 2 2m
删除Deployment:
[root@k8s-master ~]# kubectl delete deployments my-nginx
deployment "my-nginx" deleted