随笔 - 307  文章 - 0  评论 - 5  阅读 - 4264

创建一个deploy资源的过程都有哪些

1. 编写 Deployment YAML 文件

在 Kubernetes 中,创建一个 Deployment 资源时,需要使用 YAML 文件来描述它的配置。这个文件会指定如下内容:

  • 副本数 (replicas):定义需要运行的 Pod 副本的数量。例如,在这个例子中是 3 个副本。
  • Pod 模板 (template):定义了每个 Pod 的配置,包括容器的镜像、端口、健康检查等。
  • 选择器 (selector):用于确定哪些 Pod 属于该 Deployment,通过标签选择匹配的 Pods。

示例 YAML 文件(创建一个运行 Nginx 服务的 Deployment):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx-deployment
spec:
  replicas: 3 # 副本数量为3个
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.21.6 # 使用Nginx 1.21.6版本镜像
        ports:
        - containerPort: 80

这个 YAML 文件定义了一个名为 my-nginx-deployment 的 Deployment,它会运行 3 个 Nginx 容器副本,暴露容器的端口 80。

2. 应用 Deployment 配置

使用 kubectl apply 命令将上述 YAML 文件应用到 Kubernetes 集群中:

kubectl apply -f deployment.yaml

kubectl 命令会将 YAML 文件中定义的资源配置发送给 Kubernetes API Server,API Server 会解析并验证文件内容,并将其保存到 etcd(Kubernetes 的配置存储系统)中。

3. Kubernetes 处理过程

  • API Server:接收并解析 YAML 文件后,Kubernetes API Server 会验证配置并将 Deployment 资源对象存储在 etcd 集群中。
  • Deployment Controller:在 Deployment 创建后,Deployment Controller 会检测到新的资源对象,并开始确保期望的 Pod 副本数量(在此例中为 3)存在并运行。它还会持续监控 Deployment 的状态。

4. 创建和调度 Pod

  • Kubernetes Scheduler:根据 Deployment 中的 Pod 模板,Scheduler 会选择合适的节点来运行 Pod。
  • Kubelet:每个选定的节点上的 Kubelet 会拉取所需的容器镜像(这里是 nginx:1.21.6),并在节点上启动这些 Pod。

5. 健康检查与自动恢复

  • Liveness ProbeReadiness Probe:在 Pod 的配置中,通常会定义健康检查(如 liveness 和 readiness probes)。这些 probes 用于检测容器是否健康。若 Pod 不健康,Kubelet 会根据 Deployment 配置的策略自动重启 Pod。
  • 自我修复:如果某个 Pod 由于故障或其他原因停止运行,Deployment 控制器会根据配置的副本数(在本例中是 3)自动启动新 Pod,确保系统持续满足副本数量的要求。

总结

通过以上步骤,Kubernetes 会确保你的应用始终保持高可用和可靠性。具体过程如下:

  1. 通过 YAML 文件定义 Deployment 资源。
  2. 使用 kubectl apply 命令提交该文件。
  3. Kubernetes 系统根据定义的规则创建、调度和管理 Pod,确保应用持续运行,并根据健康检查自动修复故障。

这些步骤使得 Kubernetes 提供了一个强大的平台,帮助用户实现应用的高效部署、扩展和管理。

posted on   Leo-Yide  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示