当前位置: 首页 > news >正文

K8S 完整核心笔记

一、K8S 高频核心命令(最全总结 + 区别)

1. 资源查看命令

bash

运行

# 通用查看语法:查看指定名称空间的指定资源 kubectl get 资源类型 -n 命名空间名称 # 案例:查看test1命名空间下的所有Pod kubectl get pod -n test1 # 查看资源详细信息(事件、原因、参数、报错)排错必备 kubectl describe 资源类型 资源名 -n 命名空间 # 案例:查看my-nginx这个pod详细信息 kubectl describe pod my-nginx -n test1

2. 资源删除命令

bash

运行

# 精准删除单个资源 kubectl delete 资源类型 资源名 -n 命名空间 # 案例:删除my-nginx的pod kubectl delete pod my-nginx -n test1 # 通过yaml清单删除资源(删除当前文件定义的所有资源) kubectl delete -f 资源清单.yaml

3. 资源创建 / 更新命令(重点区别)

bash

运行

# create:仅创建资源,资源已存在直接报错,不能更新 kubectl create -f xx.yaml # apply:万能命令,无资源则创建,有资源则更新,不会报错 kubectl apply -f xx.yaml

核心区别: create = 只新增,不更新(重复执行报错) apply = 存在更新、不存在创建(生产 99% 用 apply)

4. 快速生成 yaml 模板(企业常用)

bash

运行

# 不真实创建资源,仅输出标准yaml清单模板 kubectl create ns test1 --dry-run=client -o yaml

作用:快速生成干净模板,不用手写骨架,提高开发效率


二、K8S 标签管理命令(label)

1. 查看资源标签

bash

运行

# 查看资源自带所有标签 kubectl get 资源类型 --show-labels # 案例:查看所有pod的标签 kubectl get pod --show-labels

2. 根据标签筛选资源

bash

运行

# 只查询匹配指定标签的资源 kubectl get 资源类型 -l 标签key=标签value # 案例:只查app=nginx的pod kubectl get pod -l app=nginx

3. 给资源打标签

bash

运行

kubectl label 资源类型 资源名 key=value # 案例:给my-nginx的pod打上app=web标签 kubectl label pod my-nginx app=web

三、K8S 资源清单 YAML 完整骨架(核心五大字段)

所有 K8S 资源(pod/deployment/svc/secret)全部通用这套骨架

yaml

# 1.apiVersion:资源API版本,不同资源版本不同 apiVersion: v1 # 2.kind:资源类型(Pod/Service/Deployment/Secret等) kind: Pod # 3.metadata:资源元数据(名称、命名空间、标签、注释) metadata: name: my-nginx # Pod名称,当前命名空间唯一 # 4.spec:【期望状态】你告诉K8S你想要什么样的资源 spec: containers: # 定义容器列表(数组,可以多个容器) - name: my-nginx # 容器名称 image: nginx # 容器镜像 # 5.status:【真实状态】K8S自动生成,用户无需手写 # 记录当前Pod真实运行状态、端口、IP、就绪状态

最简可直接运行的 Pod 完整案例(带全注释)

yaml

# 指定API版本,固定v1 apiVersion: v1 # 资源类型为Pod kind: Pod metadata: # 自定义pod名称 name: my-nginx-pod spec: # pod内容器列表,可以写多个容器 containers: # 第一个容器 - name: nginx-container # 使用nginx官方镜像 image: nginx:latest

四、K8S YAML 五种数据类型(必考 + 案例)

1. string 字符串类型

文本内容,不需要引号也默认字符串

yaml

metadata: name: web-demo # string字符串类型

2. int 数值类型

数字,纯数字

yaml

spec: replicas: 3 # int数值:副本数量3个

3. boolean 布尔类型

只有 true /false

yaml

spec: automountServiceAccountToken: false

4. Object 对象类型(键值嵌套)

大括号嵌套、层级结构,键值对结构

yaml

metadata: labels: # 对象 app: web # 对象内键值 env: test

5. 数组 / 列表类型(并列多个对象)

-就是数组,同一类资源多个并列

yaml

spec: containers: - name: nginx # 数组第1个容器 image: nginx - name: mysql # 数组第2个容器 image: mysql:5.7

五、Pod 三大探针(核心重点:保证 Pod 稳定运行)

探针作用:检测容器健康状态,自动容错、自动重启、自动屏蔽故障 Pod

1. 存活探针 livenessProbe

  • 作用:检测容器是否活着、是否崩溃卡死
  • 机制:Pod 运行期间持续循环检测
  • 异常动作:检测失败 →直接重启 Pod
  • 用途:解决容器卡死、进程挂掉但 Pod 不重启问题

2. 就绪探针 readinessProbe

  • 作用:检测容器是否就绪、能否对外提供服务
  • 机制:Pod 运行期间持续循环检测
  • 异常动作:检测失败 →不会重启 Pod,会被 Service 剔除,不接收流量
  • 用途:避免把用户流量转发到未启动好、故障的 Pod

3. 启动探针 startupProbe

  • 作用:专门检测容器是否启动完成
  • 机制:仅启动阶段检测,启动成功后永久不再检测
  • 用途:适配启动慢的服务(java、微服务),防止启动阶段被存活探针误杀重启

六、探针三种检测方式(实操方式)

1. exec 命令检测

在容器内部执行一条命令,命令返回 0 正常,非 0 失败案例:检测 nginx 页面目录是否存在

yaml

livenessProbe: exec: command: ["test","-d","/usr/share/nginx/html"]

2. tcpSocket 端口检测

检测容器指定端口是否监听,端口通则正常 适合:mysql、redis、nginx 端口类服务检测

yaml

livenessProbe: tcpSocket: port: 80

3. httpGet 请求检测

向容器发送 http 请求,状态码 2xx/3xx 正常,4xx/5xx 失败 适合:web 项目、接口服务

yaml

livenessProbe: httpGet: path: / port: 80

七、Secret 三种类型(K8S 机密资源)

Secret 用于存放密码、密钥、证书、镜像账号,加密存储

1. 账号密码类型

存储普通用户名、密码(数据库密码、系统账号密码)

2. 镜像仓库类型

存储镜像仓库账号密码,用于私有镜像拉取

3. TLS 证书类型

存储 https 证书、密钥,用于 Ingress HTTPS 域名加密访问


补充:create 与 apply 终极总结

  1. kubectl create -f yaml
    • 只能新建
    • 资源已存在 →报错
  2. kubectl apply -f yaml
    • 无资源:创建
    • 有资源:更新
    • 生产环境唯一推荐使用
http://www.jsqmd.com/news/1217376/

相关文章:

  • 问题的起点:为什么 Token 效率是硬指标
  • JavaScript进阶:原型链、闭包与异步编程实战
  • 2026 年了,写代码不如写 Prompt?聊聊我如何用 Vibe Coding 在 48 小时内极速搓出全栈应用
  • Claude Code安装使用全攻略:从环境配置到高级编程技巧
  • 关注是一个很有效的吸引人的方式-------一定要关注
  • Django Auth模块详解:用户认证与权限管理实战
  • 网安第一课
  • 2026 年当下,象山口碑好的道闸划线厂家哪个好,揭秘:这道闸的划线,竟藏着避开罚单的秘密? - 实业推荐官【官方】
  • 多维聚合数据操纵:从GROUP BY到N维立方体的工程实践
  • UE5顶点动画VAT全流程:从3dsMax烘焙到引擎性能优化
  • Flask-Login会话失效机制与安全实践
  • LizzieYzy围棋AI分析工具:免费开源的专业围棋复盘学习指南
  • Airflow云原生ELT实战:MWAA+Redshift+dbt架构落地指南
  • 若依项目目录治理的案例
  • 贵阳影楼和工作室怎么选?大影楼还是小众工作室更合适?
  • EUI-NEO:纯C++跨平台GUI框架开发实践与安卓部署指南
  • Unity3D AR应用集成实时口罩检测:轻量模型与Barracuda实战
  • 2026年7月新疆聚氨酯封边岩棉板/新疆聚氨酯封边岩棉板冷库板行业公司推荐_新疆泽宇盛华建材有限公司 - 行业平台推荐
  • Kimi K3编程助手:1M上下文在代码分析与项目重构中的实战应用
  • 全功能AI语音处理模组的算法集成与接口设计分析
  • 2026年AI协同底座深度评测:让外部Agent真正落地企业多Agent协作链路
  • 太好了吧这也,千问新人福利2VeHAO,附优惠券口令(2026.7)
  • 用户名密码认证原理与安全实践指南
  • CX32L003单片机UART模块配置与应用详解
  • 2026世界人工智能大会亮点多:AI产业走向现实交付,多款创新产品亮相!
  • Python三大基础结构实战:循环与条件判断详解
  • Flask用户登录系统实现与安全实践
  • 基于字典数组的中文句子相似度计算技术解析
  • Whisper中文会议转写:LoRA微调实战指南与全量微调避坑手册
  • Flask框架:Python轻量级Web开发全解析