Deployment 简述
Deployment
为 Pod
和 ReplicaSet
提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationController
更方便的管理应用。
作为最常用的 Kubernetes 对象,Deployment
经常会用来创建 ReplicaSet
和 Pod
,我们往往不会直接在集群中使用 ReplicaSet
部署一个新的微服务,一方面是因为 ReplicaSet
的功能其实不够强大,一些常见的更新、扩容和缩容运维操作都不支持,Deployment
的引入就是为了支持这些复杂的操作。
Deployment API 版本对照表
Kubernetes 版本 | Deployment 版本 |
---|---|
v1.5-v1.15 | extensions/v1beta1 |
v1.7-v1.15 | apps/v1beta1 |
v1.8-v1.15 | apps/v1beta2 |
v1.9+ | apps/v1 |
Deployment 一个典型的用例
一个典型的用例如下:
- 使用 Deployment 来创建 ReplicaSet。ReplicaSet 在后台创建 pod。检查启动状态,看它是成功还是失败。
- 然后,通过更新 Deployment 的 PodTemplateSpec 字段来声明 Pod 的新状态。这会创建一个新的 ReplicaSet,Deployment 会按照控制的速率将 pod 从旧的 ReplicaSet 移动到新的 ReplicaSet 中。
- 如果当前状态不稳定,回滚到之前的 Deployment revision。每次回滚都会更新 Deployment 的 revision。
- 扩容 Deployment 以满足更高的负载。
- 暂停 Deployment 来应用 PodTemplateSpec 的多个修复,然后恢复上线。
- 根据 Deployment 的状态判断上线是否 hang 住了。
- 清除旧的不必要的 ReplicaSet。
创建 Deployment
Deployment yaml
文件包含四个部分:
- apiVersion: 表示版本
- kind: 表示资源
- metadata: 表示元信息
- spec: 资源规范字段
Deployment yaml
名词解释:
1 | apiVersion: apps/v1 # 指定api版本,此值必须在kubectl api-versions中 |
Service yaml
名词解释:
1 | apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中 |
参考链接
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
- https://feisky.gitbooks.io/kubernetes/concepts/deployment.html
- https://draveness.me/kubernetes-deployment
---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---
本文作者:
Peng Yang
本文链接: https://www.yp14.cn/2019/12/30/K8s-Deployment-YAML-名词解释/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://www.yp14.cn/2019/12/30/K8s-Deployment-YAML-名词解释/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!