作者信息:https://home.cnblogs.com/u/huangjiabobk

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

在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。

posted @ 2024-01-28 13:23  黄嘉波  阅读(140)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波