Kubernetes 監(jiān)控和日志
1 查看集群資源狀態(tài)
1.1 查看mster集群狀態(tài)
kubectl get cs

1.2 查看node狀態(tài)
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 實(shí)時(shí)查看資源信息
kubectl get pod(或是pod名稱) -w(或是--watch)

2 監(jiān)控集群資源利用率
2.1 metrics server
Metrics server 是一個(gè)集群范圍的資源使用情況的數(shù)據(jù)聚合器,作為一個(gè)應(yīng)用部署在集群中,metrics server 從每一個(gè)節(jié)點(diǎn)上kubelet api收集指標(biāo),通過(guò)kubernetes聚合器注冊(cè)在master apiserver中。

Metrics-server+cAdvisor監(jiān)控集群資源消耗
2.2 部署
項(xiàng)目地址: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守護(hù)進(jìn)程管理的組件:
jurnalctl -u kubelet
Pod部署的組件:
Kubectl logs kube-proxy-btxd4 -n kube-system
系統(tǒng)日志:
/var/log/messages
4 管理k8s應(yīng)用日志
K8s cluster里面部署的應(yīng)用程序日志
-標(biāo)準(zhǔn)輸出
查看容器標(biāo)準(zhǔn)輸出的日志
kubectl logs podname
kubectl log -f podname
kubect logs –f podname -c containername
標(biāo)準(zhǔn)輸出在宿主機(jī)的路徑
/var/log/docker/containers/<container-id>/<container-id>-json.log
-日志文件
容器中應(yīng)用日志可以使用emptyDir數(shù)據(jù)卷將日志文件持久化到宿主機(jī)上,
宿主機(jī)的路徑:
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes,io~empty-dir/logs/*.log
4.1 日志收集方案
方案一:將容器應(yīng)用程序日志共享到宿主機(jī)通過(guò)掛載空目錄emptyDir
實(shí)例:
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 創(chuàng)建一個(gè)邊車容器讀取業(yè)務(wù)容器日志
[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: {}

浙公網(wǎng)安備 33010602011771號(hào)