
Kubetail是一个基于Web的Kubernetes集群实时日志查看器。
!https://github.com/kubetail-org/kubetail/assets/75881/7647bd90-0859-4b0b-9400-c7cdeb6a93e6 "截图"
演示地址:[***]
进一步增加了难度。
Kubetail通过提供易于使用的基于Web的界面解决了这一问题,允许您同时实时查看一组Kubernetes工作负载(如Deployment、CronJob、StatefulSet)的所有日志。其底层通过集群的Kubernetes API监控工作负载,检测新容器的创建或旧容器的删除,并自动将新容器的日志添加到查看流中,或更新UI以反映旧容器不再产生日志。这使您能够轻松跟踪应用日志,即使请求在不同服务的短暂容器间流转。此外,Kubetail支持按节点属性(如可用区、CPU架构或节点ID)过滤日志,有助于调试特定环境下的应用问题。
Kubetail应用由基于Go的后端服务器(连接Kubernetes API)和基于React的静态网站(查询后端并在浏览器中显示结果)组成。通常通过清单文件或Helm chart部署为集群内的Docker容器,可通过与访问Kubernetes Dashboard相同的方式(如kubectl proxy)在Web浏览器中访问。由于内部使用Kubernetes API请求日志,日志消息始终由您掌控,默认保持私有。
我们的目标是构建一个专为容器化环境设计的强大云原生日志平台,该项目仍在开发中。如发现bug或有建议,请创建GitHub Issue或发送邮件至***!
若允许Kubetail使用内部集群服务账户查询Kubernetes API,使用-clusterauth清单文件:
consolekubectl apply -f https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-clusterauth.yaml
若要求Kubetail用户使用自己的Kubernetes认证令牌,使用-tokenauth清单文件:
consolekubectl apply -f https://github.com/kubetail-org/kubetail/releases/latest/download/kubetail-tokenauth.yaml
使用Helm安装Kubetail,需先添加Kubetail仓库,然后安装chart:
consolehelm repo add kubetail https://kubetail-org.github.io/helm-charts/ helm install kubetail kubetail/kubetail --namespace kubetail --create-namespace
如需配置Helm chart,请参考https://github.com/kubetail-org/helm-charts/blob/main/charts/kubetail/values.yaml%E4%BA%86%E8%A7%A3%E6%9C%89%E6%95%88%E5%80%BC%E5%8F%8A%E9%BB%98%E8%AE%A4%E5%80%BC%E3%80%82%E5%8F%AF%E4%BD%BF%E7%94%A8YAML%E6%96%87%E4%BB%B6%E6%88%96%E9%80%9A%E8%BF%87%60--set key=value[,key=value]`参数指定配置:
consolehelm install kubetail kubetail/kubetail \ --namespace kubetail \ --create-namespace \ -f values.yaml \ --set key1=val1,key2=val2
Kubetail应用在集群中运行后,有多种方式访问其仪表板。为简单起见,若部署使用auth-mode: cluster,建议使用kubectl proxy;若使用auth-mode: token,建议使用kubectl auth-proxy插件。
最简单的访问方式是使用kubectl proxy:
consolekubectl proxy
此时可通过以下地址访问仪表板:http://localhost:8001/api/v1/namespaces/kubetail/services/kubetail:4000/proxy/。
另一种访问方式是使用kubectl port-forward:
consolekubectl port-forward -n kubetail svc/kubetail 4000:4000
此时可通过以下地址访问仪表板:http://localhost:4000。
若启用了auth-mode: token,建议使用kubectl https://github.com/int128/kauthproxy%E8%AE%BF%E9%97%AE%E4%BB%AA%E8%A1%A8%E6%9D%BF%EF%BC%8C%E8%AF%A5%E6%8F%92%E4%BB%B6%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%9C%A8%E6%9C%AC%E5%9C%B0%E8%8E%B7%E5%8F%96%E8%AE%BF%E9%97%AE%E4%BB%A4%E7%89%8C%E5%B9%B6%E6%B7%BB%E5%8A%A0%E5%88%B0HTTP%E8%AF%B7%E6%B1%82%E5%A4%B4%E4%B8%AD%EF%BC%9A
consolekubectl auth-proxy -n kubetail http://kubetail.svc
此时计算机将自动打开新浏览器标签页指向Kubetail仪表板。
Kubetail服务器可执行文件(server)支持以下命令行配置选项:
| 标志 | 数据类型 | 描述 | 默认值 |
|---|---|---|---|
| -c, --config | string | 配置文件路径 | "" |
| -a, --addr | string | 绑定的主机地址 | ":4000" |
| --gin-mode | string | Gin模式(release/debug) | "release" |
Kubetail支持使用YAML、JSON、TOML、HCL或envfile格式的配置文件。应用会自动将${NAME}格式的环境变量替换为对应值。配置文件支持以下选项(另见hack/config.yaml):
| 名称 | 数据类型 | 描述 | 默认值 |
|---|---|---|---|
| addr | string | 绑定的主机地址 | ":4000" |
| auth-mode | string | 认证模式(token/cluster/local) | "token" |
| allowed-namespaces | []string | 若非空,限制命名空间访问 | [] |
| base-path | string | URL路径前缀 | "/" |
| gin-mode | string | Gin模式(release/debug) | "release" |
| kube-config | string | Kubectl配置文件路径 | "${HOME}/.kube/config" |
| csrf.enabled | bool | 启用CSRF保护 | true |
| csrf.field-name | string | 表单中CSRF令牌名称 | "csrf_token" |
| csrf.secret | string | CSRF哈希密钥 | "" |
| csrf.cookie.name | string | CSRF cookie名称 | "csrf" |
| csrf.cookie.path | string | CSRF cookie路径 | "/" |
| csrf.cookie.domain | string | CSRF cookie域名 | "" |
| csrf.cookie.max-age | int | CSRF cookie最大有效期(秒) | 43200 |
| csrf.cookie.secure | bool | CSRF cookie secure属性 | false |
| csrf.cookie.http-only | bool | CSRF cookie HttpOnly属性 | true |
| csrf.cookie.same-site | string | CSRF cookie SameSite属性(strict/lax/none) | "strict" |
| logging.enabled | bool | 启用日志 | true |
| logging.level | string | 日志级别 | "info" |
| logging.format | string | 日志格式(json/pretty) | "json" |
| logging.access-log.enabled | bool | 启用访问日志 | true |
| logging.access-log.hide-health-checks | bool | 隐藏对/healthz的请求日志 | false |
| session.secret | string | 会话哈希密钥 | "" |
| session.cookie.name | string | 会话cookie名称 | "session" |
| session.cookie.path | string | 会话cookie路径 | "/" |
| session.cookie.domain | string | 会话cookie域名 | "" |
| session.cookie.max-age | int | 会话cookie最大有效期(秒) | 43200 |
| session.cookie.secure | bool | 会话cookie secure属性 | false |
| session.cookie.http-only | bool | 会话cookie HttpOnly属性 | true |
| session.cookie.same-site | string | 会话cookie SameSite属性(strict/lax/none) | "strict" |
| tls.enabled | bool | 启用TLS端点终止 | false |
| tls.cert-file | string | 证书文件路径 | "" |
| tls.key-file | string | 密钥文件路径 | "" |
我们的目标是构建一个专为容器化环境设计的强大云原生日志平台,该项目仍在开发中。如您有兴趣参与,请发送邮件至***或加入我们的Slack频道(kubetail)。我们特别需要以下方面的帮助:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务