K8S是云原生,以及云计算核心,下面我详解K8S@mikechen
一、查看类命令(最常用)
1、查看集群节点
kubectl get nodes
作用:
查看当前 Kubernetes 集群中的所有节点。
输出示例:
NAME STATUS ROLES AGE VERSION
master-1 Ready control-plane 30d v1.30.0
worker-1 Ready <none> 29d v1.30.0
常见场景:
- 节点是否在线;
- 节点是否 Ready;
- 集群机器状态检查;
2、查看 Pod
kubectl get pods
查看当前 namespace 下的 Pod。
更常用:
kubectl get pods -A
含义:
-A= all namespaces;
输出:
NAMESPACE NAME STATUS
kube-system coredns-xxxxx Running
default order-service-xxxxx Running
这是使用频率最高的命令之一。
3、查看 Pod 详细信息
kubectl describe pod pod-name
作用:
查看 Pod 的完整运行信息。
包括:
- IP;
- Node;
- 镜像;
- 挂载;
- 事件;
- 调度失败原因;
排障核心命令。
例如:
kubectl describe pod nginx-7c6fdb
重点看:
Events:
很多问题都在这里。
4、查看 Deployment
kubectl get deployments
作用:
查看部署控制器。
示例:
kubectl get deploy
这是简写。
5、查看 Service
kubectl get svc
作用:
查看服务暴露情况。
输出:
NAME TYPE CLUSTER-IP
order-svc ClusterIP 10.96.0.1
核心用于:
- 服务发现;
- 端口暴露;
- 负载均衡;
二、日志与排障命令(高频)
6、查看 Pod 日志
kubectl logs pod-name
例如:
kubectl logs order-service
查看实时日志:
kubectl logs -f order-service
参数:
-f= follow
类似 Linux:
tail -f
这是生产环境排障最核心命令之一。
7、进入 Pod 容器
kubectl exec -it pod-name -- /bin/bash
例如:
kubectl exec -it nginx-pod -- /bin/bash
Alpine 镜像通常没有 bash:
kubectl exec -it nginx-pod -- /bin/sh
核心用途:
- 查看配置;
- 网络测试;
- JVM 排查;
- 文件检查;
非常高频。
8、查看 Pod 资源使用
kubectl top pod
查看:
- CPU
- Memory
例如:
kubectl top pod -A
依赖:
metrics-server
没有安装会报错。
9、查看节点资源使用
kubectl top nodes
用于:
- 节点 CPU 是否打满;
- 内存是否爆掉;
高并发场景非常关键。
三、部署与发布命令(核心)
10、创建资源
kubectl apply -f xxx.yaml
例如:
kubectl apply -f deployment.yaml
作用:
将 YAML 配置应用到集群。
这是 Kubernetes 最核心命令。
本质:
声明式部署。
11、删除资源
kubectl delete -f xxx.yaml
例如:
kubectl delete -f nginx.yaml
也可以直接删除:
kubectl delete pod pod-name
12、重启 Deployment
kubectl rollout restart deployment deployment-name
例如:
kubectl rollout restart deployment order-service
作用:
滚动重启。
不会直接中断服务。
生产环境非常常见。
13、查看发布状态
kubectl rollout status deployment deployment-name
例如:
kubectl rollout status deployment order-service
作用:
查看是否发布成功。
14、回滚 Deployment
kubectl rollout undo deployment deployment-name
例如:
kubectl rollout undo deployment order-service
作用:
版本回滚。
这是线上事故救命命令。
四、扩缩容命令(高并发核心)
15、扩容副本数
kubectl scale deployment order-service --replicas=5
作用:
快速扩容。
高并发场景:
- 秒杀;
- 大促;
- 流量突增;
非常常见。
16、自动扩缩容(HPA)
kubectl autoscale deployment order-service --cpu-percent=80 --min=2 --max=10
作用:
自动根据 CPU 扩容。
核心机制:
- CPU 超过 80%
- 自动增加 Pod
这是 K8S 弹性伸缩核心能力。
五、配置管理命令
17、查看 ConfigMap
kubectl get configmap
简写:
kubectl get cm
作用:
查看配置中心。
K8S 中:
- Nginx 配置
- Spring Boot 配置
- 环境变量
经常放这里。
18、查看 Secret
kubectl get secret
作用:
查看敏感配置。
例如:
- 数据库密码;
- Token;
- TLS证书;
注意:默认 Base64 编码。
不是加密。
六、Namespace 管理(非常重要)
19、查看 Namespace
kubectl get ns
作用:
查看命名空间。
K8S 中:
- 不同业务
- 不同环境
- 不同团队
通常都会隔离 namespace。
例如:
dev
test
prod