首页 > 其他分享 >在K8S中,deploy的yaml如何编写?

在K8S中,deploy的yaml如何编写?

时间:2024-01-28 13:34:38浏览次数:29  
标签:容器 deploy 标签 app yaml Deployment Pod K8S my

在Kubernetes(简称K8s)中,编写一个Deployment的YAML文件通常包括以下几个关键部分:

点击查看代码
apiVersion: apps/v1  # Kubernetes API版本,根据你的集群版本选择合适的API版本
kind: Deployment  # 资源类型为Deployment

metadata:
  name: my-deployment  # 部署的名称
  namespace: default   # 可选,部署所在的命名空间,默认为default
  labels:              # 可选,用于标识和管理部署的标签
    app: my-app

spec:
  replicas: 3           # 指定Pod副本的数量
  selector:             # 标签选择器,用于关联此Deployment与Pod模板
    matchLabels:
      app: my-app       # 确保selector匹配到具有相同app=my-app标签的Pod

  template:             # Pod模板定义了将要创建的Pod的具体内容
    metadata:
      labels:            # Pod的标签,必须与上面的选择器相匹配
        app: my-app
    spec:
      containers:         # 容器列表
      - name: my-container   # 容器名称
        image: nginx:1.21.0  # 使用的容器镜像
        ports:
        - containerPort: 80     # 容器暴露的端口
        resources:               # 可选,指定容器的资源请求和限制
          requests:
            cpu: 500m
            memory: 1Gi
          limits:
            cpu: 1
            memory: 2Gi
        livenessProbe:            # 可选,存活探针配置
          httpGet:
            path: /healthz
            port: 80
            initialDelaySeconds: 10
            periodSeconds: 10
        readinessProbe:           # 可选,就绪探针配置
          httpGet:
            path: /readyz
            port: 80
            initialDelaySeconds: 5
            periodSeconds: 5

  strategy:                   # 可选,滚动更新策略
    type: RollingUpdate       # 更新策略类型,RollingUpdate或Recreate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1

  revisionHistoryLimit: 10    # 可选,保留的修订历史记录数

综上所述,以上是一个基本的Deployment YAML示例,它会创建一个包含3个Nginx副本的Deployment。可以根据实际需求调整参数,例如设置环境变量、挂载卷、配置生命周期钩子等。在完成编写后,通过kubectl apply -f deployment.yaml命令应用这个YAML配置文件来创建或更新Deployment。

标签:容器,deploy,标签,app,yaml,Deployment,Pod,K8S,my
From: https://www.cnblogs.com/huangjiabobk/p/17992780

相关文章

  • 在K8S中,api-server究竟是如何实现高可用?
    在Kubernetes(K8S)中,实现APIServer(kube-apiserver)的高可用性是构建稳定和可靠的集群架构的关键部分。以下是KubernetesAPIServer实现高可用的主要方法:冗余部署:通常会部署多个APIServer实例,并且它们之间是无状态的,这样任何一个实例崩溃或维护时,其他实例可以继续处理请求。......
  • 在K8S中,二进制与Kubeadm安装有何区别?
    在Kubernetes(K8S)的部署中,二进制安装和使用Kubeadm工具进行安装的主要区别在于复杂性和灵活性:二进制安装手动与细致:通过下载官方提供的各个组件(如kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kubectl等)的二进制文件并手动配置每个组件的方式进行......
  • 在K8S中,集群安装过程有哪些?
    Kubernetes(简称K8s)的安装过程因具体环境和需求的不同而有所差异,但通常包括以下核心步骤:准备环境:确保至少有两台或更多服务器或虚拟机作为集群节点(包括控制平面节点和工作节点)。安装配置好操作系统(如Ubuntu、CentOS等),并更新到最新状态。安装必要的软件包(例如Docker用于容器......
  • 在K8S中,静态、动态、自主式Pod有何区别?
    在Kubernetes(简称K8s)中,静态Pod、自主式Pod和动态Pod是不同管理方式下的Pod类型,它们的区别主要体现在创建和管理方式上:静态Pod:静态Pod是由kubelet直接管理的,其配置文件存储在节点本地而非通过APIServer创建。kubelet会根据指定路径下的静态Pod配置文件来创建和管理Pod,这些Po......
  • pytest-yaml 测试平台-5.平台实现用例分层API和用例层
    前言在平台上可以添加API层和用例层,API层维护接口相关信息,用例层复用API层接口。用例分层分2层:API层和Testcase用例层API层:描述接口request请求,可以带上validate基本的校验Testcase用例层:用例层多个步骤按顺序引用APIAPI层API层只做接口的描述,基本状态码校验,不做业......
  • k8s创建NFS动态存储
    1.插件项目地址k8s实验版本:v1.28.2第三方插件地址:https://github.com/kubernetes-retired/external-storagenfs插件:https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client需要注意的是,nfs最新文档已经迁移到其他地址2. 创建存储类资源对象wg......
  • 在K8S中,Pod生命周期包含哪些?
    在Kubernetes(简称K8s)中,Pod的生命周期经历了一系列状态变化。以下是Pod可能处于的一些主要状态:Pending:当创建一个Pod时,它首先会进入Pending状态。这个状态下,Kubernetes正在为Pod分配节点、拉取容器镜像或等待其他资源就绪。在这个阶段,Pod尚未被调度到具体的Node上或者其依赖的......
  • 在K8S中,镜像拉取策略有哪些?
    在Kubernetes(简称K8s)中,镜像更新策略主要由imagePullPolicy参数控制。当Pod中的容器镜像需要更新时,Kubernetes会根据这个策略决定如何处理镜像拉取行为。Always:如果容器的imagePullPolicy设置为Always,每次创建Pod或者重启容器时,kubelet都会尝试从镜像仓库拉取最新的镜像版本。......
  • 在K8S中,Pod删除过程会发生什么?
    在Kubernetes(简称K8s)中,删除一个Pod时会发生以下一系列事件:发出删除命令:用户通过kubectl命令行工具或者API接口发出删除Pod的请求,例如执行kubectldeletepod<pod-name>。APIServer响应:KubernetesAPIServer接收到删除请求后,验证权限并更新其内部状态,标记指定Pod为待删......
  • 在K8S中,Pod创建过程包括什么?
    在Kubernetes(K8s)中,Pod的创建过程通常包括以下步骤:提交Pod定义:用户通过kubectl命令行工具或者调用APIServer接口,提交一个包含Pod配置信息的YAML或JSON文件。这个配置文件详细描述了Pod的元数据(如名称、标签等)、容器镜像、环境变量、端口映射、卷挂载以及其他运行时参数。接......