Kubernetes Deployment详解及示例(11)

作者 : 慕源网 本文共3104个字,预计阅读时间需要8分钟 发布时间: 2021-11-27 共516人阅读

本文是Kubernetes权威指南系列的一部分,你可以点击Kubernetes权威指南查看所有教程

Kubernetes Deployment介绍

在 Kubernetes 中,Deployment 用于为 Pod 和 ReplicaSet 提供声明性更新。此外,Deployment控制器是复制控制器的更高版本,因为它删除、添加、更新 ReplicaSet 中的 Pod。当我们拥有包含数十个 Pod 的 ReplicaSet 并且需要修改它们时,我们需要它以更快、更动态的方式工作。通过使用 Kubernetes Deployment,如果以正确的方式使用,可以毫不费力地实现这一点。

什么是 Kubernetes Deployment?

  • Kubernetes Deployment基于规范的 YAML 文件工作,您在其中描述了所需的状态。然后Deployment控制器将 Pods 或 ReplicaSets 的当前状态更改为所需状态。我们可以定义Deployment来创建新的副本集或删除现有的副本集或许多其他操作。
  • 在 Kubernetes 中,Deployment 是部署 Pod 或 RS 的推荐方式。它代表一组配置相同但具有唯一身份的多个 Pod。Deployment运行应用程序的多个副本,还会自动扩展或缩减 Pod 的数量。
  • 此外,在进行扩展时,它还可以通过一次限制其在几个 pod 上的操作来确保您的应用程序在某一时刻处于 UP 状态。
  • Deployment由Deployment控制器管理,它使用一个 pod 模板,其中提到了 pod 的规范。本规范采用 YAML 格式。在这个 YAML 中,你可以提到 Pod 或 ReplicaSet 应该是什么样子,什么应用程序应该在容器内运行,哪些卷应该安装在容器内等等。
  • 当Deployment更改并应用时,将自动创建 Pod。较旧的 Pod 将随着控制器速度被移除。

Kubernetes Deployment是如何工作的?

在开始使用Deployment之前,我们应该了解Kubernetes的工作方式。此外,要使用 Kubernetes Deployment,我们需要有一个 Kubernetes 环境,即使您在进行实验室设置,它也应至少包含以下内容: –

  • 带有 Pod 的 Kubernetes 集群或
  • Kubectl 命令行
  • 如果您的集群中有多个节点,则网络应该可以正常工作。
  • Kubernetes 版本应高于 9。

此外,要创建用于Deployment的规范 YAML 文件,它必须事先知道这些字段,并且应该在部署规范 YAML 文件中提及。

  • apiVersion:告诉api版本
  • kind:这必须是Deployment
  • metadata:在此之下,您指定Deployment的详细信息
  • name:这指定Deployment的名称。
  • Spec:此下的字段指定要匹配的标签和要匹配的副本数
  • selector:在此字段下,您在进行任何缩放之前提及要匹配的标签。
  • selector.matchLabels:这些是键值对形式的标签。
  • replicas:要创建的 pod 数量。
  • template: pod 的模板规范,附加到 pod 的标签
  • spec:镜像和版本等。
  • metadata.labels:键值对中 pod 的标签。

使用上述字段的Deployment规范 YAML 文件的示例如下所示,此Deployment将创建 2 个带有标签 app: nginx 的复制 pod。其中容器镜像为nginx,版本为1.14.2。

当您使用 Kubectl 应用此文件时,如下所示:

kubectl apply –f deploy.yaml

您的部署将创建,命令将为您提供如下输出: –

  • 使用如下所示的 Kubectl 删除
kubectl delete deployments redis-deploy-exam

检查当前 pod 的状态。您将看到 Pods 正在终止

kubectl get pod

再次检查,你将找不到任何pod

kubectl get pod

结论

Kubernetes Deployment 是创建复制应用程序的首选方式,它反过来使用 ReplicaSet (RS),然后在其下的 Pod 上工作。有效地使用 Deployment 使您的部署顺利且超级简单。您只需要知道它是如何工作的,并做好充分的准备。回滚Deployment 等功能可以在升级失败和类似情况下为您节省费用。


慕源网 » Kubernetes Deployment详解及示例(11)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录