首页 > 其他分享 >创建一个deploy资源的过程都有哪些

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

时间:2025-01-23 22:42:33浏览次数:1  
标签:副本 Kubernetes 哪些 创建 deploy YAML nginx Deployment Pod

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 提供了一个强大的平台,帮助用户实现应用的高效部署、扩展和管理。

标签:副本,Kubernetes,哪些,创建,deploy,YAML,nginx,Deployment,Pod
From: https://www.cnblogs.com/leojazz/p/18688698

相关文章

  • Deployment资源的升级过程
    KubernetesDeployment升级过程在Kubernetes(K8S)中,Deployment的升级过程主要包括以下几个步骤:1.更新Deployment配置当需要对应用程序进行升级时,首先需要更新Deployment的YAML配置文件。可以更改的内容包括但不限于:容器镜像版本(如从v1.0升级到v2.0)应用配置(环......
  • 创建一个deploy资源的yaml文件需要哪些内容
    在Kubernetes(K8s)中,编写一个Deployment的YAML文件通常包括以下几个关键部分:1.apiVersion这是你希望使用的KubernetesAPI版本。对于Deployment,一般使用apps/v1版本。apiVersion:apps/v12.kind这指定了资源的类型,Deployment类型是Deployment。kind:Deplo......
  • SpringBoot创建第一个后端项目
    1.首先需要电脑安装Java17因为是基于SpringBoot3JavaArchiveDownloads-JavaSE17.0.12andearlier2.然后打开Idea创建项目,我们选择SpringInitializr我个人喜欢使用Maven管理包,这个看个人然后点击Next下一步之后上方选择SpringBoot版本号,下边选择需要导入的第三......
  • api-server在实现高可用在哪些方面
    1.冗余部署Kubernetes的APIServer是无状态的,这意味着你可以部署多个APIServer实例来增强高可用性。冗余部署的主要目标是确保如果某个实例发生故障,其他实例能继续服务请求,避免单点故障。多实例部署:通常,至少会部署三个APIServer实例,这样即便某个实例失败,其他实例仍能......
  • 借助MCP尝试创建自己的Agent(二)
    借助MCP尝试创建自己的Agent(二)PythonSDK构建个性化天气查询服务器1.环境配置2.构建天气服务器3.在Claude桌面版中配置天气查询服务器4.改进weather服务器代码关于模型上下文协议(modelcontextprotocol,MCP)的相关概念可以参考上一篇博客:借助MCP尝试创建自己的Ag......
  • centos7 创建软 raid0
    安装mdadmyum-yinstallmdadm查看可用磁盘lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTSsda8:00447.1G0disk├─sda18:10200M0part/boot/efi├─sda28:20500M0part/boot└......
  • 深入探讨存储过程的创建与应用:提高数据库管理效率的关键工具
    title:深入探讨存储过程的创建与应用:提高数据库管理效率的关键工具date:2025/1/23updated:2025/1/23author:cmdragonexcerpt:在数据驱动的商业环境中,数据库管理系统必须具备高效的操作能力。而存储过程作为一种封装的数据库逻辑,提供了一种有效的解决方案,以增强数据库......
  • 有哪些工具可以用于批量修改网站模板?
    批量修改网站模板可以提高工作效率,以下是几种常用的工具:工具名称描述Notepad++支持多文件搜索和替换,适合批量修改文本文件。SublimeText高性能的文本编辑器,支持插件扩展,可以安装批量替换插件。VisualStudioCode微软开发的代码编辑器,支持多文件编辑和查找替......
  • 网站创建的时间能修改吗?
    一般来说,网站创建的时间是由服务器记录的,通常无法直接修改。这个时间通常是指网站首次被创建或部署的时间,它是一个固定的时间戳,用于记录网站的历史信息。然而,在某些情况下,您可能可以通过修改服务器的配置文件或数据库来更改网站的创建时间。但这种操作需要一定的技术知识和权限,并......
  • 有哪些常用的网站代码修改软件?
    AdobeDreamweaver:这是一款专业的网页设计和开发工具,支持多种编程语言,如HTML、CSS、JavaScript等。它提供了可视化的编辑界面和代码编辑功能,方便用户进行网站代码的修改和调试。SublimeText:一款轻量级的代码编辑器,具有简洁的界面和强大的功能。它支持多种编程语言,并且可以通过......