Ingress nginx 无法旋转令牌:无法读取令牌文件“/var/run/secrets/kubernetes.io/serviceaccount/token”

问题描述

我在 Kubernetes 版本 v0.44.0 上运行 nginx-ingress v1.20.2,使用 helm chat ingress-nginx-3.23.0 安装 ingress。 nginx 从日志文件中获取流量,我看到此错误消息。

E0209 23:21:41.300842       6 token_source.go:152] Unable to rotate token: failed to read token file "/var/run/secrets/kubernetes.io/serviceaccount/token": open /var/run/secrets/kubernetes.io/serviceaccount/token: permission denied
E0209 23:21:41.316286       6 token_source.go:152] Unable to rotate token: failed to read token file "/var/run/secrets/kubernetes.io/serviceaccount/token": open /var/run/secrets/kubernetes.io/serviceaccount/token: permission denied

Nignx 正在运行 uid 101serviceaccount 目录由 root 用户拥有。

如何修复此错误消息?

谢谢

解决方法

这有点奇怪,因为我已经测试过我没有遇到过这样的错误。

您可以使用 securityContext,set

  • fsGroup:101 或
  • runAsUser/runAsGroup

但是 ingress-nginx 仍然设置了适当的 securityContext(例如绑定到 80/443),所以它应该可以工作。

,

正如@sfgroups 提到的,解决方案是让 nignx 不运行 uid 101 而是 0。 向安装命令添加标志:--set controller.image.runAsUser=0

阅读:helm-nginx-ingress-installation

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...