第三章 Kubernetes监控与日志
1、查看集群资源状态
在 Kubernetes 集群中,查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释,帮助你更好地管理和监控 Kubernetes 集群。
1.1 查看master组件状态
Kubernetes 的 Master 组件包括 API Server、Controller Manager 和 Scheduler。可以使用 kubectl get cs (cs:componentstatuses)命令来查看这些组件的状态。
- 命令:kubectl get cs
[root@k8s-master-1-71 ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
etcd-0 Healthy {"health":"true","reason":""}
controller-manager Healthy ok
scheduler Healthy ok
ComponentStatus 在 Kubernetes 1.19 及以上版本中已被弃用,建议使用其他方式监控 Master 组件的状态;没有显示 API Server 的状态,因为查看 Master 组件状态的请求本身就是通过 API Server 进行的
1.2 查看所有的node状态
使用 kubectl get node 命令可以查看集群中所有节点的状态。
- 命令:kubectl get node
[root@k8s-master-1-71 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master-1-71 Ready control-plane 72m v1.26.0
k8s-node1-1-72 Ready <none> 58m v1.26.0
k8s-node2-1-73 Ready <none> 58m v1.26.0
该命令获取的是 kubelet 的信息,显示节点的状态、角色、年龄和版本
1.3 查看资源的详细信息
使用 kubectl describe 命令可以查看特定资源的详细信息,包括 Events 相关事件。
- 命令:kubectl describe <资源类型> <资源名称>
kubectl describe node k8s-master-1-71
该命令会输出节点的详细信息,包括 CPU、内存、存储等资源的使用情况,以及最近的事件(Events)
1.4 查看资源信息
使用 kubectl get 命令可以查看资源的简要信息,通过添加 -o wide 或 -o yaml 参数可以输出更详细的信息或导出 YAML 文件。
- 命令:kubectl get <资源类型> <资源名称> //-o wide、-o yaml
-o wide 输出详细信息
-o yaml 导出YAML文件
kubectl get pod my-pod
NAME READY STATUS RESTARTS AGE
my-pod 1/1 Running 0 5m
kubectl get pod my-pod -o wide ## 详细信息
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
my-pod 1/1 Running 0 5m 10.244.1.2 k8s-node1-1-72 <none> <none>
kubectl get pod my-pod -o yaml ## 导出 YAML 文件
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: default
...
spec:
containers:
- name: my-container
image: my-image:latest
...
sta