一个 Pod
启动时会发生些什么?一个 Service
拿到公共 IP 之前又会干点啥?Deployment
的状态是怎么切换的?
kubespy
是个小工具,能够轻松的实时查看 Kubernetes 集群里的资源变化。这一工具源自于 Pulumi CLI ,其中对 Kubernetes Deployment 的预测做出了一些常识。可以在任何时机运行 kubespy
,它会持续对 Kubernetes 资源进行监控和报告,直到杀掉进程为止。
kubespy trace deployment nginx
会对集群中名为 nginx
的 Deployment
对象进行跟踪,并将状态信息进行聚合,生成较高级的概要,并且进行实时更新。
kubespy status v1 Pod nginx
会等待创建一个叫做 nginx
的 Pod
,然后持续刷新其状态,并用高亮语法的 JSON 形式展现出来。
获取最新版本,重命名为 kubespy
,chmod -x kubespy
并将其拷贝到可执行路径之中(例如 /usr/local/bin
)。
或者
安装 Go 1.11 以上版本,然后运行:
export GO111MODULE=on# If $GOBIN is not on your path, you'll need to install the library elsewhere.go install github.com/pulumi/kubespy
两种方式都能够完成安装。
kubespy
有三个子命令:
status <apiVersion> <kind> [<namespace>/]<name>
:实时跟踪任意 Kubernetes 对象的 .status
字段,并用 JSON Diff 的方式进行展示。
changes <apiVersion> <kind> [<namespace>/]<name>
:实时获取一个 Kubernetes 资源的所有字段的所有变化,用 JSON Diff 进行展示。
trace <kind> [<namespace>/]<name>
:对复杂 Kubernetes 资源进行跟踪,在整个集群范围内进行聚合,生成汇总信息,并保持实时更新。