我正在尝试配置kube-apiserver
,以便它使用加密来配置我的minikube集群中的机密。
为此,我跟随了documentation on kubernetes.io,但在第3步说卡住了
在--encryption-provider-config
上设置kube-apiserver
标志以指向配置文件的位置。
我在--extra-config
上发现了minikube start
选项,并尝试使用开始我的设置
minikube start --extra-config=apiserver.encryption-provider-config=encryptionConf.yaml
但自然它不起作用,因为encryptionConf.yaml
位于我的本地文件系统而不是由minikube旋转的pod中。 minikube log
给我的错误是
error: error opening encryption provider configuration file "encryptionConf.yaml": open encryptionConf.yaml: no such file or directory
将加密配置文件放到kube-apiserver
上的最佳做法是什么?或者minikube
可能是尝试这些事情的错误工具?
根据使用的驱动程序,一些目录安装在您的minikube VM上。检查此链接 - https://kubernetes.io/docs/setup/minikube/#mounted-host-folders
此外〜/ .minikube / files也会在/ files中挂载到VM中。因此,您可以将文件保留在那里,并将该路径用于API服务器配置
我在this GitHub issue找到了解决方案,他们在传递配置文件方面遇到了类似的问题。帮助我的评论是一个稍微讨厌的解决方案,它利用了minikube VM中的目录/var/lib/localkube/certs/
安装到apiserver中的事实。
所以我的最终解决方案是运行
minikube mount .:/var/lib/minikube/certs/hack
在当前目录中我有我的encryptionConf.yaml
,然后像这样启动minikube
minikube start --extra-config=apiserver.encryption-provider-config=/var/lib/minikube/certs/hack/encryptionConf.yaml
我在Windows中有关于文件路径位置的类似问题,因为C:\ Users \%USERNAME%\默认安装在minikube VM中,所以我将文件复制到Desktop文件夹(C盘下的任何文件夹)
minikube --extra-config=apiserver.encryption-provider-config=/c/Users/%USERNAME%/.../<file-name>
希望这对在Windows平台上遇到此问题的人有所帮助。