1.k8s文件编写
---
kind: 资源名
apiVersion: 版本
metadata:
名称、命名空间、标签和注解
spec:
容器
2.生成资源清单模版文件
kubectl create <资源类型> <资源名称> [参数] --dry-run=client -o yaml
参数说明:
| 参数 | 说明 | 示例 | 必选 |
|---|---|---|---|
<资源类型> |
资源类型(如 pod、deployment、configmap) |
deployment |
是 |
<资源名称> |
资源名称(自定义) | my-deployment |
是 |
[参数] |
资源特有参数(如镜像、端口、键值对等) | --image=nginx |
否(根据资源类型决定) |
--dry-run=client |
仅生成模板,不提交集群 | 必选 | 是 |
-o yaml |
输出为 YAML 格式 | 必选 | 是 |
3.查看有哪些资源
kubectl create --help
4.查询资源清单怎么编写
kubectl explain 资源.一级子项名.二级子项名
5.容器调度
1.基于节点调度
spec:
nodeName: node-0001 # 基于节点名称进行调度
2.基于标签调度
基于标签的资源调度,标签可以重复(可标识node节点服务器上的性能,内存等信息)
---
kind: Pod
apiVersion: v1
metadata:
name: myhttp
labels:
app: apache
spec:
nodeSelector: #多个标签是逻辑与
kubernetes.io/hostname: node-002 #node-002节点上的唯一标签
containers:
- name: apache
image: myos:httpd
标签命令
# 设置标签
kubectl label <资源类型>/<资源名称> <标签键>=<标签值>
# 给 Pod 添加环境标签
kubectl label pod my-pod env=prod
# 给 Deployment 添加版本标签
kubectl label deployment my-deploy version=1.2.3
# 删除标签
kubectl label 资源类型 资源名称 key值-
6.控制器详解
| 控制器 | 适用场景 | Pod 管理特点 | 存储支持 | 典型用例 |
|---|---|---|---|---|
| Deployment | 无状态应用、滚动更新 | 多副本、动态扩缩容 | 无(需 PVC) | Web 服务、API 网关 |
| DaemonSet | 节点级守护进程 | 每个节点一个 Pod | 独立存储(可选) | 日志收集、监控 Agent |
| Job | 一次性批处理任务 | 单次执行,确保成功 | 支持 PVC | 数据迁移、计算任务 |
| CronJob | 定时任务 | 按 Cron 表达式周期性执行 | 支持 PVC | 定时备份、日志清理 |
| StatefulSet | 有状态应用 | 有序启动、稳定网络标识和存储 | 必须 PVC(隔离数据) | 数据库、消息队列 |
| HPA | 弹性扩缩容 | 自动调整副本数 | 依赖其他控制器 | 应对流量波动 |
7.外部服务访问流程
服务名称.名称空间.svc.cluster.local
Ingess资源(配置外部访问的地址,以及转到内部服务地址)------>nginx(请求配置)------>后端