首页 > 其他分享 >在K8S中,deploy创建过程包括什么?

在K8S中,deploy创建过程包括什么?

时间:2024-01-29 09:15:14浏览次数:22  
标签:Kubernetes deploy 创建 YAML nginx Deployment Pod K8S

在Kubernetes(简称K8s)中,创建一个Deployment的过程主要包括以下步骤:

  1. 编写Deployment YAML文件
    首先,需要使用YAML格式编写一个描述Deployment的配置文件。这个文件定义了 Deployment 的关键属性,如副本数(replicas)、容器镜像、Pod模板以及健康检查等。例如,创建一个运行Nginx服务的Deployment,可以编写如下YAML文件:

    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
    
  2. 应用Deployment配置
    使用 kubectl 工具将上面编写的YAML文件应用到Kubernetes集群中,执行命令:

    kubectl apply -f deployment.yaml
    
  3. Kubernetes处理过程

    • Kubernetes API Server接收到 kubectl 发送的创建请求后,解析并验证YAML文件中的资源配置。
    • 根据提供的信息创建一个新的Deployment资源对象,并持久化存储在etcd集群中。
    • Deployment Controller检测到新的或更新的资源对象后开始工作,它会确保指定数量的Pod实例(在这个例子中是3个)根据Pod模板被创建和管理。
  4. 创建和调度Pod

    • 根据Deployment的Pod模板,Kubernetes Scheduler负责将Pod调度到合适的Node节点上。
    • kubelet在每个选定的Node上启动Pod,并拉取指定的容器镜像(在这里是Nginx镜像)进行运行。
  5. 健康检查与自动恢复

    • 如果Pod未通过liveness probes或readiness probes健康检查,kubelet会按照Deployment的策略自动重启Pod。
    • 在整个生命周期内,Deployment控制器将持续监控Pod的数量和状态,确保任何时候都有期望数量的可用Pod实例。

综上所述,通过以上步骤,Kubernetes便成功地创建了一个高可用且能够自我修复的Deployment资源,从而实现了应用程序在集群内的部署与管理。

标签:Kubernetes,deploy,创建,YAML,nginx,Deployment,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/17993760

相关文章

  • 在K8S中,deploy升级过程包括什么?
    在Kubernetes(K8S)中,Deployment的升级过程主要包括以下几个步骤:更新Deployment配置:当需要对应用程序进行升级时,通常会更新Deployment的YAML配置文件,可以更改的内容包括但不限于:容器镜像版本(从v1.0升级到v2.0)应用配置(环境变量、命令参数等)资源请求与限制更新策略和其他......
  • 在K8S中,deploy和Statefulset有何区别?
    在Kubernetes(K8s)中,Deployment和StatefulSet是两种不同类型的控制器对象,它们设计用于管理Pod的生命周期,但在管理和部署的应用程序类型、持久性保证以及Pod标识等方面存在显著区别:Deployment:无状态应用:Deployment主要用于部署无状态服务,即服务实例之间可以相互替换且不需要保留......
  • 在K8S中,Service类型有哪些?
    在Kubernetes(简称K8s)中,Service是定义访问Pod的一种抽象方法,它提供了负载均衡和网络代理功能。以下是KubernetesService的几种主要类型:ClusterIP(默认类型)创建一个仅集群内部可以访问的虚拟IP。通过这个IP地址,Kubernetes会将流量路由到与Service关联的一组Pod。这种类型......
  • 在K8S中,怎样实现数据持久化?
    在Kubernetes(简称K8s)中,数据持久化是通过Volume机制来实现的。Volume是一个抽象概念,它代表了Pod能够访问的存储资源,这些资源可以是本地磁盘、网络文件系统(NFS)、云提供商提供的块存储或对象存储等。以下是Kubernetes实现数据持久化的关键组件和过程:Volume:Volume为Pod提供了一......
  • 离线部署K8s V1.29.1版本
    准备私用的系统ISO镜像为:CentOS-7-x86_64-Everything-1908.iso安装方式为带GUI的服务器架构说明K8s集群规划VIP:192.168.24.2        通过keepalived提供harbor:镜像仓库、nfs、ntp        连接外网;        内网地址:192.168.24.5k8s-master0:......
  • k8s笔记17(组播测试代码)
    摘要:mc_svcttl;mc_clittl;mcjoin;smcrouted;ompingk8s笔记13(SMCRoute)_ATCtoK8s空管智能运维的技术博客_51CTO博客(第2项)k8s笔记14_ATCtoK8s空管智能运维的技术博客_51CTO博客(第2、8项)测试OK:(前提k8s-node07和k8s-node08运行smcrouted)--->k8s-node07smcroute.confmgroupfromen......
  • JVM对象创建与内存分配
    对象创建流程对象内存分配对象内存分配流程图对象栈上分配我们通过JVM内存分配可以知道JAVA中的对象都是在堆上进行分配,当对象没有被引用的时候,需要依靠GC进行回收内存,如果对象数量较多的时候,会给GC带来较大压力,也间接影响了应用的性能。为了减少临时对象在堆内分配的数量,JV......
  • 使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器
    使用NuGet.Server创建和部署ASP.NETWeb应用程序搭建私有Nuget服务器在VisualStudio中,选择“新建>文件>”Project,搜索“ASP.NETWeb应用程序(.NETFramework)”,选择C#的匹配模板。将“框架”设置为“.NETFramework4.6”。为应用程序提供除NuGet.Server......
  • k8s之helm部署mysql集群
    一、简介HelmHelm是Kubernetes的包管理器。ChartHelm使用的包格式称为chart。chart存储在ChartRepository。chart就是一个描述Kubernetes相关资源的文件集合。单个chart可以用来部署一些简单的,类似于memcachepod,或者某些复杂的HTTP服务器以及web全栈应用、数据库、缓......
  • OpenIM (Open-Source Instant Messaging) Mac Deployment Guide
    Thisguideprovidesstep-by-stepinstructionsfordeployingOpenIMonaMac,includingbothsourcecodeandDockerdeploymentmethods.##PreliminaryEnvironmentSetupEnsureacleanworkingenvironment:1.**CreateaNewDirectory**:Startinanewdirec......