共计 1049 个字符,预计需要花费 3 分钟才能阅读完成。
今天就跟大家聊聊有关如何理解 Deployment,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Deployment 是继 ReplicationController 和 ReplicaSet 之后推出的更高级的控制器,它通过 Deployment 对象来声明 Pod 的期望状态,这些状态包括 Pod 的副本数和 Pod 的模版等,运行于 kube-controller-manager 组件中的 Deployment Controller(Deployment 控制器)时刻监控 Deployment 对象的变化,并根据 Deployment 对象中的配置来调整 Pod,最终保证 Pod 以期望的形态在运行。
配置格式
我们先看一个简单的 Deployment 配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.0
metadata.name:指定 Deployment 的名称;
spec.replicas:指定期望的副本数;
spec.selector:指定查找 Pod 的标签;
spec.template:指定 Pod 的模板,当 Deployment 控制器需要创建 Pod 时会根据此模版创建 Pod。
上面这份 Deployment 配置和之前介绍的 ReplicaSet 非常类似,主要也是声明 Pod 的副本数以及 Pod 的模版,将该配置提交给 kube-apiserver 后,运行于 kube-controller-manager 组件中的 Deployment Controller 也会创建 3 个 Pod 副本,这个行为跟 ReplicaSet 还是一样,但 Deployment 更强大的功能体现在配置发生变化时的行为,比如修改配置中 Pod 模板中的镜像版本,Deployment Controller 会自动地创建新的 Pod 来运行新镜像并逐步删除旧的 Pod,从而达到自动升级的目的。
看完上述内容,你们对如何理解 Deployment 有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。