1 个不稳定版本

0.1.0 2021年4月19日

#26#kubernetes-cluster

Apache-2.0

22KB
176

kimager

License Docker Image Size (tag)

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 范围内 getwatch pods。这意味着可以从任何命名空间中的任何 pod 读取信息(不能写入)。请参阅 chart 了解更多信息。

其他文档

行为准则

此存储库遵循并执行Rust编程语言的行为准则

附加信息

达到“稳定”状态(版本1.0.0)

在发布版本1.0.0之前必须满足以下先决条件

  • 无需克隆存储库即可安装Helm
  • GitHub操作运行fmtclippy用于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