我正在尝试使用Jenkins访问一个k0s集群,以便从Jenkins管道进行部署。为了在kubeconfig文件中复制/粘贴群集凭据,我尝试使用“~/..kube/config”命令访问,但是在运行时出现了一个错误,即说“没有这样的文件或目录”:
sudo cp ~/.kube/config ~/.jenkins/.kube/我得到没有这样的文件或目录错误。似乎配置文件不存在,或者可能位于我不知道的其他地方。我已经为根用户创建了一个kubeconfig文件(假设它在默认情况下不存在),如文档这里所示:
k0s kubeconfig create root但是,当我重新尝试复制时,我仍然会得到相同的错误:“没有这样的文件或目录”。按此命令k0s kubeconfig create root的输出创建了kubeconfig文件:
WARN[2022-01-30 17:44:16] no config file given, using defaults
apiVersion: v1
clusters:
cluster:
server: https://10.XXX.XXX.XXX:6443
certificate-authority-data: xxxxxxxx
name: k0s
contexts:
context:
cluster: k0s
user: root
name: k0s
current-context: k0s
kind: Config
preferences: {}
users:
name: root
user:
client-certificate-data: xxxxxxxxxxxx我可以通过命令k0s kubectl config view验证该文件确实存在。
apiVersion: v1
clusters:
cluster:
certificate-authority-data: DATA+OMITTED
server: https://localhost:6443
name: local
contexts:
context:
cluster: local
namespace: default
user: user
name: Default
current-context: Default
kind: Config
preferences: {}
users:
name: user
user:
client-certificate-data: REDACTED
client-key-data: REDACTED其中一篇文章建议使用命令k0s kubectl get pods -v=6查看kubeconfig文件的确切位置,但是当我运行它时,-v似乎不支持k0s:
Error: unknown shorthand flag: 'v' in -v=6
See 'k0s kubectl get --help' for usage作为支票,我做过cd ~/.kube/config,但也没有
我错过了什么?
发布于 2022-02-05 04:31:16
我发现我错过了什么:
默认情况下,k0s不会创建~/..kube/config。默认情况下,k0s创建的是“打碎玻璃”管理库,它位于/var/lib/k0s/pki/admin.conf
所以我不得不:
cp /var/lib/k0s/pki/admin.conf ~/.kube/configcp ~/.kube/config/admin.conf /var/lib/jenkins纳米-f /etc/sudoers
然后
jenkins ALL=NOPASSWD: ALL然而,推荐的方法是使用适当的RBAC对Jenkins进行专用访问,只允许所需的访问(例如,服务帐户令牌)。作为下一步,我将不得不在另一个Jenkins实例上测试这一点,因为我不能再撤销访问(使用admin.conf的缺点)。
发布于 2022-01-30 18:52:46
您可以使用以下命令将kubeconfig复制到location /root/.kube/config:
k0s kubectl config view --raw > ~/.kube/config在创建文件之后,您不应该获得提到的错误"no such file or directory"。
https://stackoverflow.com/questions/70917083
复制相似问题