使用kubectl检查容器



有没有一种方法可以直接从kubernetes命令行(使用kubectl(检查在pod中运行的容器,以查看一些细节,例如在专用模式下运行。类似于:

kubectl inspect -c <containerName>

我找到的唯一方法是ssh到托管pod的节点并执行docker inspect <containerID>,但这有点乏味。

我的kubernetes版本

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:55:54Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0+coreos.0", GitCommit:"6bb2e725fc2876cd94b3900fc57a1c98ca87a08b", GitTreeState:"clean", BuildDate:"2018-04-02T16:49:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

检查kubectl describe pods/<pod_name>

如果这对你来说还不够,你可以选择JSON并用jq进行过滤

kubectl get <pod_name> -ojson | jq '.spec.containers[] | .securityContext'

此外,请检查kubectl备忘单

我也遇到了类似的问题,我有一个状态为Evicted的pod,需要对其进行检查(描述了kubectl(。所以我用了:

kubectl describe pod <pod-name>

所以我可以看到我在寻找什么:

...
Status:         Failed
Reason:         Evicted
Message:        Pod The node had condition: [DiskPressure]. 
...

所以在搜索中,我发现了一篇非常好的文章,谈论了你需要监测的12种关键的Kubernetes健康状况以及为什么。

仍在解决问题,但此日志可能会帮助其他人。

您有以下kubectl命令来了解pod 的详细信息

kubectl describe <pod_name> -n <namespacename>
kubectl get <pod_name>  -n <namespacename> -o yaml # output in yaml format  
kubectl get <pod_name> -n <namespacename> -o json # output in json format

如果你想从审计的角度了解哪些容器在特权模式下运行,那么我建议你看看Falco项目,它有一种机制来编写策略,并在容器违反策略时触发警报。策略可能是没有容器可以在特权模式下运行

相关内容

  • 没有找到相关文章

最新更新