一、资源清单文件
1.1 Pod清单格式案例
格式1(标准缩进)
Yaml
apiVersion: v1 kind: Pod metadata: name: myweb spec: containers: - name: nginx image: myos:nginx status: {}
格式2(紧凑JSON风格)
Yaml
apiVersion: v1 kind: Pod metadata: {name: myweb} spec: {containers: [{name: nginx, image: myos:nginx}]} status: {}
二、资源管理命令
2.1 核心子命令
| 命令 | 说明 | 支持模式 |
|---|---|---|
create | 创建资源(不能更新) | 指令式/清单文件 |
apply | 创建/更新资源(声明式) | 仅清单文件 |
delete | 删除资源 | 指令式/清单文件 |
replace | 强制替换资源(需配合--force) | 清单文件 |
2.2 常用操作示例
Bash
# 创建资源 kubectl create -f myweb.yaml # 更新资源 kubectl apply -f myweb.yaml # 强制重建 kubectl replace --force -f myweb.yaml # 批量操作目录 kubectl apply -f app/ # 管道操作 cat myweb.yaml | kubectl apply -f -
三、标签管理
3.1 标签操作命令
Bash
# 查看标签 kubectl get pods --show-labels # 添加标签 kubectl label pod myhttp app=apache # 删除标签 kubectl label pod myhttp app-
3.2 清单文件标签配置
Yaml
apiVersion: v1 kind: Pod metadata: name: myhttp labels: app: apache spec: [...]
3.3 标签筛选
Bash
kubectl get pods -l app=apache kubectl get nodes -l kubernetes.io/hostname=master
四、多容器Pod管理
4.1 多容器配置示例
Yaml
apiVersion: v1 kind: Pod metadata: name: mynginx spec: containers: - name: nginx image: myos:nginx - name: php image: myos:php-fpm
4.2 多容器操作命令
Bash
# 查看指定容器日志 kubectl logs mynginx -c nginx # 进入指定容器 kubectl exec -it mynginx -c php -- /bin/sh # 拷贝文件 kubectl cp mynginx:/etc/php-fpm.conf /root/php.conf -c php
五、自定义任务配置
5.1 嵌入式脚本示例
Yaml
apiVersion: v1 kind: Pod metadata: name: mycmd spec: containers: - name: linux image: myos:8.5 command: [sh] args: - -c - | ID=${RANDOM} for i in {1..9};do echo "${ID} : hello world." sleep 5 done
5.2 保护策略配置
| 策略 | 说明 |
|---|---|
restartPolicy: OnFailure | 任务失败后重启 |
terminationGracePeriodSeconds: 0 | 立即终止进程 |
activeDeadlineSeconds: 60 | 最大运行时间限制 |
六、Pod调度策略
6.1 硬编码调度
Yaml
spec: nodeName: node-0001 # 直接指定节点
6.2 标签调度
Yaml
spec: nodeSelector: kubernetes.io/hostname: node-0002
6.3 调度操作流程
- 查看节点标签
Bash
kubectl get nodes --show-labels
- 添加节点标签
Bash
kubectl label node node-0001 disktype=ssd
七、辅助工具
7.1 生成模板
Bash
kubectl create namespace work --dry-run=client -o yaml
7.2 文档查询
Bash
kubectl explain Pod.metadata
八、注意事项
apply与create的区别:- apply支持声明式更新,create仅用于新建
- 批量操作建议:
- 使用目录管理(
kubectl apply -f app/) - 合并文件时保留原始配置(
cat app/* > app.yaml)
- 使用目录管理(
- 生产环境建议:
- 重要任务配置
activeDeadlineSeconds - 事务型任务设置
terminationGracePeriodSeconds
- 重要任务配置
201

被折叠的 条评论
为什么被折叠?



