k8s资源清单+YAML格式+常用字段说明+pod的yml

本文深入探讨了Kubernetes中的关键概念和组件,包括Pod、Service、Deployment、StatefulSet、DaemonSet、Job、CronJob以及Volume。重点阐述了如何通过资源清单进行部署,HPA的自动扩展原理,以及配置管理如ConfigMap和Secret。此外,还介绍了如何选择节点、处理端口冲突以及检查Pod的状态和日志。通过这些内容,读者将能更好地理解和管理Kubernetes集群的资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在k8s中部署pod和服务都需要资源清单
在这里插入图片描述
在这里插入图片描述

k8s默认组件都是放在kube system命名空间下的
但是kubectl get pods 默认是在default下

HPA通过CPU利用率进行扩展,就是典型的元数据型,通过指标。

在这里插入图片描述
实例化就是被运行了
在这里插入图片描述
RS是控制器,管理pod的创建,通过标签去管理pod的副本数目。
deployment通过控制RS的创建去创建Pod
Statefulset为有状态服务建立的控制器
Damonset可以在每个节点运行一个pod的组件
Job,cronjob都是为了批处理而生的

服务都是为了把pod暴露出去

volume为了pod的持久化存储

只要存储资源符合CSI的接口规范,那k8s集群的pod就可以调用这个接口的存储。

通过configmap存储配置文件达到热更新的状态

secret 使用加密的方案去存储数据的,通过他存储密码文件,密钥。

downloadAPI就是下载文件的一口接口,通过这个接口去调用里面的数据去存储和上传等。
在这里插入图片描述
元数据资源pod模版、资源限制等都是根据指标去进行对应的操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复合结构可以放在一起
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用字段说明

在这里插入图片描述
在这里插入图片描述
command指的是就是构建镜像的时候会有CMD启动命令,如果此处写的话在启动容器的时候命令会替换到dockerfile镜像中的CMD

command通常和args一起使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nodeselector可以选择node节点去运行

imagepullsecrets指的是当使用pull去下载镜像的时候使用的secret密钥。或者用户名密码信息。

hostnetwork false指不使用主机网络。

查看详细的
在这里插入图片描述
在这里插入图片描述
可以查看详细信息。
kubectl explain pod.spec
可以查看具体的
可以继续看下面的

vim pod.yaml
采用的什么版本进行资源申请
在这里插入图片描述
注意存在端口占用的情况,因为都要使用80端口
在这里插入图片描述

在这里插入图片描述
等待一会儿就会报错
在这里插入图片描述
可以看到重启次数

查看报错原因

describe查看具体的信息 比如命名空间等,以及每个容器的状态
在这里插入图片描述
可以看到第一个pod成功运行,第二个报错了
所以查看第二个容器的日志
在这里插入图片描述
在这里插入图片描述
-c. 指定具体的容器。 只有一个容器就不需要-c

在这里插入图片描述
vim中删除test容器。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

### 正确编写 Kubernetes (k8s) 中的 YAML 文件 #### 单文档文件格式 当仅描述单一 Kubernetes 资源时,在 YAML 文件内可不必加入分隔符 `---`,这种简化方式适用于多数应用场景[^1]。 #### 修改模板适应需求 通过调整现有模板中的名称、标签以及其他特定字段来匹配项目具体要求是一种高效的实践方法。这种方法类似于利用代码补全功能快速生成所需配置[^2]。 #### 验证YAML语法准确性 为了确保编写的 YAML 文件无误,建议使用在线验证工具如[YAML Validator](https://www.yamllint.com/)来进行校验。 #### YAML文件的应用范围 这类文件不仅限于简单的资源配置;更常应用于复杂的自动化流程之中,比如 CI/CD 流水线构建以及服务部署策略制定等方面。其清晰易懂的特点使得运维人员能够更加便捷地管理和维护集群环境下的各项设置[^3]。 #### 基础结构解析 一份典型的 Kubernetes YAML 文件由多个部分构成,包括但不限于 API 版本声明(apiVersion),资源种类(kind),元数据(metadata) 和规格(spec)。 #### 实际操作案例展示 下面给出一创建命名空间(namespace) 的简单例子: ```yaml apiVersion: v1 kind: Namespace metadata: name: example-namespace ``` 对于更为复杂的情况,例如定义 Deployment 控制器管理 Pod 实例,则有如下示范: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值