1 查看集群資源狀態
1.1 查看mster集群狀態
kubectl get cs
1.2 查看node狀態
kubectl get node
1.3 查看Apiserver代理的URL
kubectl cluster-info
1.4 查看集群線下信息
kubectl cluster-info dump
1.5 查看資源信息
kubectl describe <資源> <資源名稱>
1.6 列出k8s支持的資源
kubectl api-resources
1.7 實時查看資源信息
kubectl get pod(或是pod名稱) -w(或是--watch)
2 監控集群資源利用率
2.1 metrics server
Metrics server 是一個集群范圍的資源使用情況的數據聚合器,作為一個應用部署在集群中,metrics server 從每一個節點上kubelet api收集指標,通過kubernetes聚合器注冊在master apiserver中。
Metrics-server+cAdvisor監控集群資源消耗
2.2 部署
項目地址:https://github.com/kubernetes-sigs/metrics-server
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml
修改vim components.yaml
2.3 查看node資源消耗
kubectl top node
2.3.1 查看pod資源的消耗
kubectl top pod
3 管理k8s組件日志
Systemd守護進程管理的組件:
jurnalctl -u kubelet
Pod部署的組件:
Kubectl logs kube-proxy-btxd4 -n kube-system
系統日志:
/var/log/messages
4 管理k8s應用日志
K8s cluster里面部署的應用程序日志
-標准輸出
查看容器標准輸出的日志
kubectl logs podname
kubectl log -f podname
kubect logs –f podname -c containername
標准輸出在宿主機的路徑
/var/log/docker/containers/<container-id>/<container-id>-json.log
-日志文件
容器中應用日志可以使用emptyDir數據卷將日志文件持久化到宿主機上,
宿主機的路徑:
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes,io~empty-dir/logs/*.log
4.1 日志收集方案
方案一:將容器應用程序日志共享到宿主機通過掛載空目錄emptyDir
實例:
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx-php-1
name: my-nginx-pod
spec:
containers:
- image: lizhenliang/nginx-php
name: nginx-php-1
volumeMounts:
- name: logs
mountPath: /usr/local/nginx/logs
volumes:
- name: logs
emptyDir: {}
參考文檔:
https://kubernetes,io/docs/concepts/cluster-administration/logging
方案二:pod 創建一個邊車容器讀取業務容器日志
[root@k8s-master ~]# cat nginx-logs.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
name: nginx-pods-logs
spec:
containers:
- image: lizhenliang/nginx-php
name: nginx-pods
volumeMounts:
- name: logs
mountPath: /usr/local/nginx/logs
- name: nginx-pods-longs
image: busybox
args: [/bin/sh, -c,'tail -f /opt/access.log']
volumeMounts:
- name: logs
mountPath: /opt
volumes:
- name: logs
emptyDir: {}