deployment.yaml 文件解读
apiVersion: apps/v1
kind: Deployment
apiVersion
: 资源的版本,这里使用的是apps/v1
,表示这是一个 Deployment 的最新版本。kind
: 资源类型,这里是Deployment
,表示这是一个 Deployment 资源。
metadata: name: project_name-project_envname
: Deployment 的名字,通常用来标识这个 Deployment 实例。
namespace: baidu-project_envnamespace
: 指定 Deployment 所在的命名空间,这里是baidu-project_env
。
labels: app: project_name-project_envlabels
: 用于标识 Deployment 的键值对。标签可以帮助我们管理和选择特定的资源。
spec: replicas: 1replicas
: 指定要运行的 Pod 副本数量,这里是 1 个
selector: matchLabels: app: project_name-project_envselector
: 指定如何选择 Pod。它会选择带有app: project_name-project_env
标签的 Pod。 template: metadata: labels: app: project_name-project_envtemplate
: 定义 Pod 的模板。 spec: nodeSelector: environment: dtm-project_envnodeSelector
: 指定 Pod 应该在哪些节点上运行。这里 Pod 会运行在带有environment: dtm-project_env
标签的节点上。
containers: - name: project_name-project_envname
: 容器的名字。 image: project_images_url
image
: 容器使用的镜像 lifecycle:
lifecycle
: 定义容器的生命周期钩子。 postStart:
postStart
: 在容器启动后执行的命令 exec:
exec
: 执行 shell 命令,改变/data/logs
、/data/webapps
、/data/cache
目录的所有者。 command: - /bin/sh - -c - | chown -R www-data.www-data /data/logs /data/webapps /data/cache ports:
ports
: 容器暴露的端口,这里暴露了 80 端口。 - containerPort: 80 resources:
resources
: 定义容器的资源请求和限制 limits:
limits
用于设置容器可用的最大资源量。如果容器超出这些限制,可能会被 Kubernetes 终止(OOMKilled 或者超出 CPU 限制)。
限制(limits):用于限制容器的资源消耗,防止容器消耗过多的资源,影响其他 Pod。 memory: "1Gi" cpu: "1" requests:
requests
表示一个Pod需要的最小CPU和内存资源量。
请求值用来告诉 Kubernetes 调度器(Scheduler),这个 Pod 至少需要这些资源才能运行。
目的:通过定义请求值,Kubernetes 可以更好地将 Pod 安排到能够满足其最低需求的节点上。 memory: "256Mi" cpu: "100m" terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts:
volumeMounts
: 定义容器的卷挂载点。 - mountPath: /data/logs/svc/nginx
mountPath
: 卷在容器中的挂载路径 name: nginx-error-log
name
: 引用的卷名称 imagePullSecrets:
imagePullSecrets
: 用于拉取私有镜像仓库中的镜像。这里使用了aliyun-registry-secret
。 - name: aliyun-registry-secret volumes:
volumes
: 定义了容器使用的卷 - hostPath:
hostPath
: 卷的类型,这里是主机路径。 path: /data/logs/svc/nginx
path
: 主机上的实际路径 type: ''type
: 定义路径类型(这里为空,表示默认值)。
name: nginx-error-logname
: 卷的名称,用于在volumeMounts
中引用。
分类:
kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通