k8s pod 配置详解

博客提供了一个链接https://www.cnblogs.com/mybxy/p/10233682.html ,未明确具体内容,但标签显示与容器相关。

https://www.cnblogs.com/mybxy/p/10233682.html

### Kubernetes Deployment 配置详解 #### ### 1. `apiVersion` 字段 `apiVersion` 指定所使用的 Kubernetes API 版本。对于 Deployment 资源,通常使用的是 `apps/v1`,这是稳定版本的 API[^2]。此字段确保 Kubernetes 控制器能够正确解析和处理资源对象。 示例: ```yaml apiVersion: apps/v1 ``` #### ### 2. `kind` 字段 `kind` 指定资源类型,对于 Deployment 资源,其值为 `Deployment`。此字段告诉 Kubernetes 当前 YAML 文件定义的是哪种类型的资源。 示例: ```yaml kind: Deployment ``` #### ### 3. `metadata` 字段 `metadata` 包含与资源相关的元数据信息,例如名称、命名空间和标签等。这些信息用于标识和分类资源。 - **`name`**: 定义资源的名称,必须在命名空间内唯一。 - **`namespace`**: 指定资源所属的命名空间,默认为 `default`。 - **`labels` 和 `annotations`**: 用于标记和附加额外信息到资源上。 示例: ```yaml metadata: name: example-deployment namespace: default labels: app: example annotations: description: "This is an example Deployment" ``` #### ### 4. `spec` 字段 `spec` 是 Deployment 的核心部分,定义了期望的状态和行为。 ##### ###### 4.1 `replicas` `replicas` 指定运行的 Pod 副本数量。Kubernetes 将确保集群中始终有指定数量的 Pod 实例在运行。 示例: ```yaml spec: replicas: 3 ``` ##### ###### 4.2 `selector` `selector` 定义如何找到关联的 Pod。它通过 `matchLabels` 匹配 Pod 的标签。 示例: ```yaml selector: matchLabels: app: example ``` ##### ###### 4.3 `template` `template` 定义 Pod 的模板,包含 Pod 的详细配置。 - **`metadata.labels`**: 为 Pod 添加标签,这些标签需要与 `selector.matchLabels` 匹配。 - **`spec.containers`**: 定义容器的详细信息,包括镜像、端口、资源限制等。 示例: ```yaml template: metadata: labels: app: example spec: containers: - name: example-container image: nginx:latest ports: - containerPort: 80 resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "250m" memory: "256Mi" ``` ##### ###### 4.4 `strategy` `strategy` 定义 Deployment 的更新策略。常见的策略包括 `RollingUpdate` 和 `Recreate`。 - **`rollingUpdate`**: 允许逐步更新 Pod,避免服务中断。 - **`maxSurge`**: 指定超出期望副本数的最大 Pod 数量。 - **`maxUnavailable`**: 指定更新期间不可用的最大 Pod 数量。 示例: ```yaml strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 ``` #### ### 5. `status` 字段 `status` 提供 Deployment 的当前状态信息,包括可用的副本数、更新的副本数等。此字段由 Kubernetes 自动维护,用户无需手动设置。 示例: ```yaml status: replicas: 3 availableReplicas: 3 updatedReplicas: 3 ``` --- ### 示例完整配置 以下是一个完整的 Deployment 配置示例: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: example-deployment namespace: default labels: app: example spec: replicas: 3 selector: matchLabels: app: example template: metadata: labels: app: example spec: containers: - name: example-container image: nginx:latest ports: - containerPort: 80 resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "250m" memory: "256Mi" strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值