
一、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 test12. 资源删除命令bash运行# 精准删除单个资源 kubectl delete 资源类型 资源名 -n 命名空间 # 案例删除my-nginx的pod kubectl delete pod my-nginx -n test1 # 通过yaml清单删除资源删除当前文件定义的所有资源 kubectl delete -f 资源清单.yaml3. 资源创建 / 更新命令重点区别bash运行# create仅创建资源资源已存在直接报错不能更新 kubectl create -f xx.yaml # apply万能命令无资源则创建有资源则更新不会报错 kubectl apply -f xx.yaml核心区别 create 只新增不更新重复执行报错 apply 存在更新、不存在创建生产 99% 用 apply4. 快速生成 yaml 模板企业常用bash运行# 不真实创建资源仅输出标准yaml清单模板 kubectl create ns test1 --dry-runclient -o yaml作用快速生成干净模板不用手写骨架提高开发效率二、K8S 标签管理命令label1. 查看资源标签bash运行# 查看资源自带所有标签 kubectl get 资源类型 --show-labels # 案例查看所有pod的标签 kubectl get pod --show-labels2. 根据标签筛选资源bash运行# 只查询匹配指定标签的资源 kubectl get 资源类型 -l 标签key标签value # 案例只查appnginx的pod kubectl get pod -l appnginx3. 给资源打标签bash运行kubectl label 资源类型 资源名 keyvalue # 案例给my-nginx的pod打上appweb标签 kubectl label pod my-nginx appweb三、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 字符串类型文本内容不需要引号也默认字符串yamlmetadata: name: web-demo # string字符串类型2. int 数值类型数字纯数字yamlspec: replicas: 3 # int数值副本数量3个3. boolean 布尔类型只有 true /falseyamlspec: automountServiceAccountToken: false4. Object 对象类型键值嵌套大括号嵌套、层级结构键值对结构yamlmetadata: labels: # 对象 app: web # 对象内键值 env: test5. 数组 / 列表类型并列多个对象带-就是数组同一类资源多个并列yamlspec: containers: - name: nginx # 数组第1个容器 image: nginx - name: mysql # 数组第2个容器 image: mysql:5.7五、Pod 三大探针核心重点保证 Pod 稳定运行探针作用检测容器健康状态自动容错、自动重启、自动屏蔽故障 Pod1. 存活探针 livenessProbe作用检测容器是否活着、是否崩溃卡死机制Pod 运行期间持续循环检测异常动作检测失败 →直接重启 Pod用途解决容器卡死、进程挂掉但 Pod 不重启问题2. 就绪探针 readinessProbe作用检测容器是否就绪、能否对外提供服务机制Pod 运行期间持续循环检测异常动作检测失败 →不会重启 Pod会被 Service 剔除不接收流量用途避免把用户流量转发到未启动好、故障的 Pod3. 启动探针 startupProbe作用专门检测容器是否启动完成机制仅启动阶段检测启动成功后永久不再检测用途适配启动慢的服务java、微服务防止启动阶段被存活探针误杀重启六、探针三种检测方式实操方式1. exec 命令检测在容器内部执行一条命令命令返回 0 正常非 0 失败案例检测 nginx 页面目录是否存在yamllivenessProbe: exec: command: [test,-d,/usr/share/nginx/html]2. tcpSocket 端口检测检测容器指定端口是否监听端口通则正常 适合mysql、redis、nginx 端口类服务检测yamllivenessProbe: tcpSocket: port: 803. httpGet 请求检测向容器发送 http 请求状态码 2xx/3xx 正常4xx/5xx 失败 适合web 项目、接口服务yamllivenessProbe: httpGet: path: / port: 80七、Secret 三种类型K8S 机密资源Secret 用于存放密码、密钥、证书、镜像账号加密存储1. 账号密码类型存储普通用户名、密码数据库密码、系统账号密码2. 镜像仓库类型存储镜像仓库账号密码用于私有镜像拉取3. TLS 证书类型存储 https 证书、密钥用于 Ingress HTTPS 域名加密访问补充create 与 apply 终极总结kubectl create -f yaml只能新建资源已存在 →报错kubectl apply -f yaml无资源创建有资源更新生产环境唯一推荐使用