可观察性
探针
存活性
使用一条命令来确定何时重启容器:
apiVersion: v1 kind: Pod metadata: name: my-liveness-pod spec: containers: - name: myapp-container image: busybox command: ['sh', '-c', "echo Hello, Kubernetes! && sleep 3600"] livenessProbe: exec: command: - echo - testing initialDelaySeconds: 5 periodSeconds: 5
- initialDelaySeconds:容器启动后第一次执行探测是需要等待多少秒
- periodSeconds:执行探测的频率。默认是10秒,最小1秒
就绪性
使用一个http请求(get)来确定容器是否 已经就绪可以接受流量 :
apiVersion: v1 kind: Pod metadata: name: my-readiness-pod spec: containers: - name: myapp-container image: nginx readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 5
日志
获取容器日志:
kubectl logs counter
对于多容器的pod来说:
kubectl logs <pod name> -c <container name>
保存日志到文件:
kubectl logs counter > counter.log
指标
安装metrics服务器:
cd ~/
git clone https://github.com/linuxacademy/metrics-server
kubectl apply -f ~/metrics-server/deploy/1.8+/
验证:
kubectl get --raw /apis/metrics.k8s.io/
监控
使用 kubectl top 命令可以监控资源使用:
kubectl top pods kubectl top nodes
按资源消耗排序:
kubectl top pod resource-consumer-big
调试
差错
kubectl get pods kubectl get namespace kubectl get pods --all-namespaces kubectl describe pod nginx -n nginx-ns
修复
直接编辑
kubectl edit pod nginx -n nginx-ns
导出文件
kubectl get pod nginx -n nginx-ns -o yaml --export > nginx-pod.yml
重启容器
kubectl delete pod nginx -n nginx-ns kubectl apply -f nginx-pod.yml -n nginx-ns