Kuberbetes(十一)--使用yaml创建Deployment

510 阅读1分钟

使用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