Kubernetes环境下的各种调试方法
生活随笔
收集整理的這篇文章主要介紹了
Kubernetes环境下的各种调试方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
啟動(dòng)單個(gè)容器 不使用Pod或Replication Controller,啟動(dòng)單個(gè)容器:
$ kubectl run webserver --image=nginx 想更改鏡像,又不想升級版本? 每次修改之后,需要更新鏡像的版本也好煩人啊。每次構(gòu)建出新的鏡像,Push到Docker Registry時(shí),可以使用一個(gè)固定的版本,然后讓Kubernetes在啟動(dòng)某個(gè)鏡像時(shí),無論本地是否有鏡像,都去Docker Registry拉取鏡像就好了。 ImagePullPolicy從默認(rèn)的 IfNotPresent,改為 Always。
想直接修改容器里的程序,又不想更新鏡像? 什么,還能這樣做?在容器內(nèi)部修改,比如修改了腳本,或者直接替換二進(jìn)制程序,然后使用docker restart container-id。我嘗試過此時(shí)使用docker commit提交修改,但是下次啟動(dòng)時(shí),Kubernets就會(huì)報(bào)錯(cuò)。應(yīng)該是有完整性校驗(yàn)的原因。
Pod重啟了,如何看重啟之前的日志? 下面的命令只能看到當(dāng)前Pod的日志:
$ kubectl logs zookeeper-1 通過 --previous參數(shù)可以看之前Pod的日志
$ kubectl logs zookeeper-1 --previous 查看Pod生命周期的事件 通過如下命令,看命令末尾 events 一節(jié),查看kubelet給APIServer發(fā)送的Pod生命周期里發(fā)生的事件
$ kubectl describe pod podname 沒有看到任何事件,但是Pod重啟了? 依然通過describe命令,Containers.[*].Last State一節(jié):
$ kubectl describe pod podname Name: ? ? ? kafka-1? ...
Containers: kafka: ... State: ? ? ?Running Started: ? ? Sat, 08 Apr 2017 02:29:04 +0000 Last State: ? ? Terminated Reason: ? ? ?OOMKilled Exit Code: ? ?0 Started: ? ? Fri, 07 Apr 2017 11:06:56 +0000 Finished: ? ? Sat, 08 Apr 2017 02:29:04 +0000 Ready: ? ? ?True Restart Count: ? 1 ... 可以看到 Kafka-1 這個(gè)Container因?yàn)閮?nèi)存消耗太多,達(dá)到內(nèi)存的上限(Memory Resource Limit)而被干掉了。如果看到 Reason: Completed,說明是容器內(nèi)部pid為1的程序主動(dòng)退出的。
查看資源(CPU/Memory)使用情況 資源使用最多的節(jié)點(diǎn)
$ kubectl top nodes 資源使用最多的Pod
$ kubectl top pods 查看節(jié)點(diǎn)的資源使用情況
$ kubectl describe nodes | grep -A 2 -e "^\\s*CPU Requests" 如何摘下某個(gè)Pod進(jìn)行Debug 使用label機(jī)制,對Pod進(jìn)行標(biāo)記。在Service定義中,我們添加 status: serving字段。當(dāng)需要摘下某個(gè)Pod做Debug,而又不影響整個(gè)服務(wù),可以:
$ kubectl get pods --selector="status=serving" $ kubectl label pods webserver-rc-lxag2 --overwrite status=debuging 此時(shí)kubelet就會(huì)把這個(gè)Pod從Service的后端列表中刪掉。等到Debug完,想恢復(fù)?再改回去就好了:
$ kubectl label pods webserver-rc-lxag2 --overwrite status=serving References:
10 most common reasons kuberntes deployments fail
Kubernetes Community Resources 與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Kubernetes环境下的各种调试方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vSphere5.5中嵌套华为Fusio
- 下一篇: [二]RabbitMQ-客户端源码之AM