Kubernetes资源管理笔记

一、资源清单文件

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 调度操作流程

  1. 查看节点标签

Bash

kubectl get nodes --show-labels

  1. 添加节点标签

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

八、注意事项

  1. applycreate的区别:
    • apply支持声明式更新,create仅用于新建
  2. 批量操作建议:
    • 使用目录管理(kubectl apply -f app/
    • 合并文件时保留原始配置(cat app/* > app.yaml
  3. 生产环境建议:
    • 重要任务配置activeDeadlineSeconds
    • 事务型任务设置terminationGracePeriodSeconds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值