在K8S中,deployment的yaml文件如何编写呢?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在K8S中,deployment的yaml文件如何编写呢?

在Kubernetes中,Deployment 是用来声明式地管理无状态应用的声明周期的API对象。一个典型的Deployment YAML 文件包含了一系列的字段,用于定义应用的期望状态。以下是编写Deployment YAML 文件的基本步骤和要点:

  1. 定义API版本 (apiVersion): 指定使用的Kubernetes API版本,例如 apps/v1
  2. 定义对象种类 (kind): 这里应该是 Deployment
  3. 定义元数据 (metadata): 包括Deployment的名称、命名空间、标签和注解等。
  4. 定义规范(spec): 这是最重要的部分,定义了应用的期望状态和行为。
  • replicas: 指定要运行的Pod副本数量。
  • selector: 定义如何选取一组Pod,通常使用标签选择器。
  • template: 定义Pod模板,即Pod的规格和配置。
  • metadata: Pod的元数据,如标签。
  • spec: Pod的规范,包括容器配置、重启策略、资源请求和限制等。
  • containers: 定义容器列表,每个容器需要nameimageports等字段。
  • imagePullSecrets: 如果需要,可以指定私有仓库的认证信息。
  1. 定义更新策略 (strategy): 可选,定义如何进行更新操作,可以是RollingUpdateRecreate

下面是一个简单的Deployment YAML 示例:

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: default
labels:
app: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app-image:latest
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
imagePullSecrets:
- name: my-registry-secret

这个示例中:

  • apiVersion: apps/v1 指定了使用的Kubernetes API版本。
  • kind: Deployment 定义了这是一个Deployment对象。
  • metadata 定义了Deployment的名称、命名空间和标签。
  • spec 定义了Deployment的详细规格,包括副本数量、选择器、更新策略和Pod模板。
  • template 下的 spec 定义了Pod的规范,包括容器的名称、镜像、端口和资源限制。
  • imagePullSecrets 用于指定私有镜像仓库的认证信息。

综上所述,请根据你的具体需求调整上述字段的值。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
20天前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
|
20天前
|
Kubernetes Shell Perl
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
|
11天前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
30 3
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
11天前
|
Kubernetes 容器 Perl
k8s基于keyring文件认证对接rbd块设备
文章介绍了如何在Kubernetes集群中使用Ceph的keyring文件进行认证,并对接RBD块设备,包括使用admin用户和自定义用户两种方式的详细步骤和注意事项。
15 3
|
21天前
|
Kubernetes 容器 Perl
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
|
16天前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
30 0
|
17天前
|
JSON Kubernetes 数据格式
k8s集群yaml文件方式迁移
k8s集群yaml文件方式迁移
|
19天前
|
Kubernetes NoSQL Go
最简单的 K8S 部署文件编写姿势,没有之一!
最简单的 K8S 部署文件编写姿势,没有之一!
|
21天前
|
存储 Kubernetes 网络协议
在K8S中,Deployment和Statefulset有何区别?
在K8S中,Deployment和Statefulset有何区别?
|
21天前
|
Kubernetes API 开发工具
在K8S中,Deployment的升级过程是什么?
在K8S中,Deployment的升级过程是什么?

热门文章

最新文章