1 个不稳定版本
0.1.0 | 2021年4月19日 |
---|
#26 在 #kubernetes-cluster
22KB
176 行
kimager
kimager
是一个服务,用于记录 Kubernetes 集群中容器镜像的存在。容器镜像的“存在”由 pod 创建和删除事件确定。容器镜像的“记录”涉及使用 log crate 来记录时间戳、日志级别以及表示该镜像对新集群是新的或不再由集群中的任何 pod 使用的消息。
[user at host in ~]
% kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system metrics-server-86cbb8457f-pqgj6 1/1 Running 0 6m3s
kube-system local-path-provisioner-5ff76fc89d-s2tj2 1/1 Running 0 6m3s
kube-system coredns-854c77959c-fmf47 1/1 Running 0 6m3s
kube-system helm-install-traefik-jpzgk 0/1 Completed 0 6m4s
kube-system svclb-traefik-cxr7s 2/2 Running 0 5m50s
kube-system traefik-6f9cbd9bd4-jqg4t 1/1 Running 0 5m50s
kimager-system kimager-7d67dc9ff9-mfll9 1/1 Running 0 12s
[user at host in ~]
% kubectl logs -n kimager-system $(kubectl get pods -n kimager-system --no-headers -o custom-columns=":metadata.name") --follow
[2021-04-19T04:54:28Z INFO ] [+|image] nickgerace/kimager:unstable [kimager-system|kimager-7d67dc9ff9-mfll9]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/klipper-helm:v0.4.3 [kube-system|helm-install-traefik-jpzgk]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/metrics-server:v0.3.6 [kube-system|metrics-server-86cbb8457f-pqgj6]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/local-path-provisioner:v0.0.19 [kube-system|local-path-provisioner-5ff76fc89d-s2tj2]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/coredns-coredns:1.8.0 [kube-system|coredns-854c77959c-fmf47]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/library-traefik:1.7.19 [kube-system|traefik-6f9cbd9bd4-jqg4t]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/klipper-lb:v0.1.2 [kube-system|svclb-traefik-cxr7s]
[2021-04-19T04:54:28Z INFO ] [+|image] rancher/klipper-lb:v0.1.2 [kube-system|svclb-traefik-cxr7s]
安装
克隆仓库,然后使用 cd
进入。你可以将命名空间名称更改为你喜欢的名称。
helm install -n kimager-system --create-namespace --wait kimager ./chart
你也可以使用 --set logLevel
设置日志级别。这将设置容器中的 RUST_LOG
环境变量(例如 DEBUG
)。
用法
你可以在 pod 内通过容器的 STDOUT 跟踪日志。你可能需要根据您的系统分别运行以下嵌套命令。
kubectl logs -n kimager-system $(kubectl get pods -n kimager-system --no-headers -o custom-columns=":metadata.name") --follow
在读取或解析日志时,请参考以下格式
[TIMESTAMP LOG_LEVEL ] [ADDED_OR_DELETED_SYMBOL|RESOURCE_TYPE] IMAGE_NAME:IMAGE_TAG [POD_NAMESPACE|POD_NAME]
为什么不用标签来跟踪日志?
使用标签选择器不会提供最新的流。跟踪 pod 自身的日志更受青睐。
卸载
卸载 helm 图表并删除命名空间以返回到开始的地方。这将清理安装和使用期间的所有工件。
helm uninstall -n kimager-system kimager
kubectl delete namespace kimager-system
安全影响
本服务旨在尽可能安全,并且能够在 cluster
范围内 get
和 watch
pods。这意味着可以从任何命名空间中的任何 pod 读取信息(不能写入)。请参阅 chart 了解更多信息。
其他文档
- CHANGELOG.md: 遵循 Keep a Changelog 格式
- DEVELOPING.md: 开发者技巧、窍门和注意事项
- RELEASE.md: 发布流程说明
行为准则
此存储库遵循并执行Rust编程语言的行为准则。
附加信息
- 作者:Nick Gerace
- 许可:Apache 2.0
达到“稳定”状态(版本1.0.0)
在发布版本1.0.0
之前必须满足以下先决条件
- 无需克隆存储库即可安装Helm
- GitHub操作运行
fmt
和clippy
用于x86_64-unknown-linux-gnu
,以及build
用于x86_64-unknown-linux-musl
- 发布一个
latest
,以及至少一个“发布”的Dockerhub镜像(例如0.1.0
) - 首先发布到crates.io(
0.1.0
标签) - 重新添加单元测试
特别感谢
描述 | 状态 |
---|---|
@joshimoo 对使用无向图的推荐 | 进行中 |
@steveklabnik 以及Twitter上Rust社区的多位成员关于无向图中节点权重讨论 | 进行中,但当前设计受到了一些影响 |
依赖
~68MB
~1M SLoC