You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器下Jenkins Pipeline部署Docker镜像到Minikube时遇权限拒绝异常

Jenkins Pipeline部署Docker镜像到Minikube时的权限错误解决

错误核心

从报错堆栈可明确:问题根源是权限不足——Jenkins运行进程无法读取/root/.minikube/ca.crt文件,抛出java.nio.file.AccessDeniedException异常。

解决方法

方法1:调整证书目录权限

直接给Minikube证书目录添加其他用户读权限,让Jenkins能读取证书文件:

# 递归修改目录及文件权限,开放读权限
chmod -R o+r /root/.minikube/
# 重启Jenkins使权限生效
systemctl restart jenkins

方法2:将Jenkins用户加入root组

把Jenkins用户添加到root组,获取root目录访问权限:

usermod -aG root jenkins
systemctl restart jenkins

方法3:复制kubeconfig到Jenkins用户目录(推荐)

这是更规范的做法,避免直接操作root目录权限:

# 创建Jenkins的kube配置目录
mkdir -p /var/lib/jenkins/.kube/
# 复制Minikube的kubeconfig文件
cp /root/.kube/config /var/lib/jenkins/.kube/
# 修改文件所属用户为Jenkins
chown -R jenkins:jenkins /var/lib/jenkins/.kube/
# 重启Jenkins
systemctl restart jenkins

原始错误日志

ERROR: ERROR: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
hudson.remoting.ProxyException: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
    at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62)
    at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:53)
    at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:182)
    at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:55)
    at io.fabric8.kubernetes.client.DefaultKubernetesClient.<init>(DefaultKubernetesClient.java:91)
    at com.microsoft.jenkins.kubernetes.KubernetesClientWrapper.<init>(KubernetesClientWrapper.java:78)
    at com.microsoft.jenkins.kubernetes.KubernetesDeployContext$ClientWrapperFactoryImpl.buildClient(KubernetesDeployContext.java:466)
    at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.doCall(DeploymentCommand.java:141)
    at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.call(DeploymentCommand.java:122)
    at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.call(DeploymentCommand.java:105)
    at hudson.FilePath.act(FilePath.java:1288)
    at com.microsoft.jenkins.kubernetes.command.DeploymentCommand.execute(DeploymentCommand.java:67)
    at com.microsoft.jenkins.kubernetes.command.DeploymentCommand.execute(DeploymentCommand.java:46)
    at com.microsoft.jenkins.azurecommons.command.CommandService.runCommand(CommandService.java:88)
    at com.microsoft.jenkins.azurecommons.command.CommandService.execute(CommandService.java:96)
    at com.microsoft.jenkins.azurecommons.command.CommandService.executeCommands(CommandService.java:75)
    at com.microsoft.jenkins.azurecommons.command.BaseCommandContext.executeCommands(BaseCommandContext.java:77)
    at com.microsoft.jenkins.kubernetes.KubernetesDeploy.perform(KubernetesDeploy.java:42)
    at com.microsoft.jenkins.azurecommons.command.SimpleBuildStepExecution.run(SimpleBuildStepExecution.java:54)
    at com.microsoft.jenkins.azurecommons.command.SimpleBuildStepExecution.run(SimpleBuildStepExecution.java:35)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: hudson.remoting.ProxyException: java.nio.file.AccessDeniedException: /root/.minikube/ca.crt
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
    at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:371)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:422)
    at java.base/java.nio.file.Files.readAllBytes(Files.java:3206)
    at io.fabric8.kubernetes.client.internal.CertUtils.getInputStreamFromDataOrFile(CertUtils.java:65)
    at io.fabric8.kubernetes.client.internal.CertUtils.createTrustStore(CertUtils.java:71)
    at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:115)
    at io.fabric8.kubernetes.client.internal.SSLUtils.trustManagers(SSLUtils.java:94)
    at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:76)
    ... 23 more

内容的提问来源于stack exchange,提问作者Ahmed Khaled Fouad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:57:22