Kubernetes Deployment详解及示例(11)

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

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

Kubernetes Deployment详解及示例(11)

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。

Kubernetes Deployment详解及示例(11)

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

kubectl apply –f deploy.yaml

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

Kubernetes Deployment详解及示例(11)

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

Kubernetes Deployment详解及示例(11)

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

kubectl get pod

Kubernetes Deployment详解及示例(11)

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

kubectl get pod

Kubernetes Deployment详解及示例(11)

结论

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


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

常见问题FAQ

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

发表评论

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