metrics-server和configmap是否存在任何已知问题?我已经尝试了无数的方法来让它工作,但是没有成功。如果在我的部署清单中简单地将"image: k8s.gcr.io/metrics-server-amd64:v0.3.3“替换为”image:docker.io/alpine“,它可以读取configmap文件。但是metrics-server在尝试引用configmap文件时会抛出以下错误:“没有这样的文件或目录”。这让我怀疑问题出在metrics-server而不是k8s环境中。
我这样做的目的是让容器可以使用服务器的公钥和私钥(-tls-cert-file)。如果configmap不是为指标服务器提供密钥的推荐方式,请让我知道推荐的方式是什么。(在这种情况下,我仍然想知道为什么metrics-server不能挂载configmap卷。)
发布于 2019-07-20 07:59:32
我想通了。问题是来自度量服务器的误导性错误消息,以及对容器是否能够看到卷中的文件的零洞察力。如果你传递“-tls-cert- file”而不给“-tls-private-key-file”(我只是为了测试),错误消息是:“没有这样的文件或目录”。而不是一些更具信息性的东西,比如“请同时指定两个选项”。度量服务器开发人员需要对此进行更改,并在文件实际不存在或无法打开以进行读取的情况下保存“没有这样的文件”。考虑到没有文件,没有任何方法可以从容器中验证这一点,因为它只有一个没有任何shell的二进制文件。在未运行的容器上运行“docker export”(不运行是因为metrics-server会因错误而崩溃)会显示一个空的卷,因为kubelet在停止容器时已经卸载了卷。查看kubelet日志,他们显示卷的一切正常,我可以看到/var/lib/kublet/pods/…下的文件/。但所有的迹象都表明有些地方出了问题,因为我没有洞察到容器本身所看到的情况。一旦我开始传递证书的两个命令行选项,一切都正常了。
https://stackoverflow.com/questions/57120060
复制相似问题