[尝试使用以下节在nixos上安装Kubernetes时:
services.kubernetes.masterAddress = "XXXXXX";
users.users.XXXXXX.extraGroups = [ "kubernetes" ];
services.kubernetes = {
roles = ["master" "node"];
};
我遇到了以下问题:
open /var/lib/kubernetes/secrets/etcd.pem: no such file or directory
我将其识别为TLS / SSL证书,但是如何生成该文件?
您使用的文章确实很旧。大约在2.5年前就已出版2017-07-21
。您可以确定它以一种或另一种方式已经过时,但是从最终用户的角度来看,主要的[[NixOS 设置kubernetes集群的方法在此期间可能没有太大变化。
安装kubernetes集群]的另一种方法,它与我在之前的评论中提到的“艰难的方式”无关。相反,这是我见过的最简单的kubernetes集群设置。实际上,除了在configuration.nix
中添加一个条目然后运行nixos-rebuild switch
之外,您无需执行任何操作,就可以预期一切都将启动并运行。但是,实际上NixOS在“幕后”上关心的不仅仅是很多事情。生成适当的证书只是kubernetes集群设置中涉及的许多步骤之一。请记住,从头开始安装Kubernetes是一项非常复杂的任务。简要看一下this文章,您会明白我的意思。对于教育目的而言,这确实是一件了不起的事情,因为可能没有比以一种可能是最手动的方式从头开始构建更好的方法来深入了解某些东西。另一方面,如果您只需要相对快速地建立一个可用的kubernetes集群,那么Kubernetes的艰辛之路将不是您的选择。 Fortunatelly提供了一些解决方案,使您可以相对快速,简单地设置kubernetes集群。
其中一个是Minikube。另一个使您可以设置多节点kubernetes集群的方法是kubeadm。
回到
NixOS
,如果一切都能按预期进行,那么在此系统上设置kubernetes集群的简易性就给我留下了深刻的印象。但是,如果不这样做(这主要是您的问题所在)?您可以尝试自行调试它,并尝试寻找问题的解决方法,或者仅在NixOS project github page之类的this one上创建问题。如您所见,已经有人报告了与您完全相同的问题。他们说在18.09发行版上它可以正常工作,所以您可能正在使用像19.03这样的较新版本。您可以进一步阅读,其中进行了一些重大更改,例如在19.03中迁移到强制性pki。如果您对在NixOS上运行kubernetes]特别感兴趣,请仔细研究此问题,因为其中描述了一些建议和解决方法:
https://github.com/NixOS/nixpkgs/issues/59364#issuecomment-485122860https://github.com/NixOS/nixpkgs/issues/59364#issuecomment-485249797首先请确保您的masterAddress
设置正确,即设置为主机名,而不是IP地址。如您所言,仅"XXXXXX"
我无法猜测那里当前设置了什么。当您进行设置时,例如到localhost
,将正确生成适当的证书:
services.kubernetes = {
roles = ["master"];
masterAddress = "localhost";
};
您可能还想熟悉相关的文档中的this信息。让我知道是否有帮助。NixOS
与Kubernetes