我正在尝试为示例kubernetes集群部署部署kubernetes掌舵图。我创建了一个示例舵图,并添加了docker映像参考,并使用终端命令“ helm install”部署了舵图。而且微服务可以成功访问,没有任何问题。
此后,我创建了一个jenkins管道作业,并仅添加了一个包含部署步骤的阶段。我以如下方式添加了
pipeline
{
agent any
stages
{
stage ('helmchartinstall')
{
steps
{
sh 'helm install spacestudychart'
}
}
}
}
我收到类似以下的错误,
[Pipeline] { (helmchartinstall)
[Pipeline] sh
+ helm install spacestudychart
Error: the server could not find the requested resource (get pods)
当我通过终端运行时,相同的命令正在工作。
更新
要将耕作机升级到最新版本,我在终端上运行“ helm init --upgrade”命令。但是错误仍然存在。
“ helm version”的输出如下所示,
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
“ kubectl版本--short”的输出如下所示,
Client Version: v1.14.1
Server Version: v1.13.5
我需要升级kubectl版本吗?如果需要做,我在这里需要遵循什么? 。有人可以帮我找出在与詹金斯一起跑步时的确切问题是什么吗?
答案 0 :(得分:6)
这是100%正常工作,我之前遇到过这个问题。
首先构建jenkins用户,然后再构建
将config
复制到/home/jenkins/.kube/
cp $HOME/.kube/config /home/jenkins/.kube/
or
cp ~/.kube/config /home/jenkins/.kube/
然后使用
chmod 777 /home/jenkins/.kube/config
您的kubernetes命令需要您的kubernetes配置文件。这就像您的kubernetes集群的密钥或密码,因此您应该将kubernetes配置提供给您的jenkins,然后它就可以运行kubernetes命令
这是非常好的教程,可以帮助我解决它。
UPDATE1 您应该具有jenkins用户来添加jenkins用户,您应该将jenkins用户添加到ubuntu或centos或..
adduser jenkins
这是添加用户的好链接 Adding user
更新2
您应该在将kubectl用作jenkins
的服务器上安装它,以便kubectl命令可以正常工作,然后将~/.kube/config
集群中kubernetes
中的配置复制到{{1} }先前在其上安装了jenkins
的服务器。
答案 1 :(得分:2)
根据kubectl
version skew policy:
kubectl 在以下版本的一个次要版本(旧版本或新版本)中受支持 kube-apiserver 。
因此,将 v1.14 客户端与 v1.13 服务器版本一起使用是没有问题的。
您所描述的错误通常在具有相同名称的先前发行版存在时发生。您可以使用updated () {
alert('New update has been released. Page is refreshing')
window.location.reload(true)
},
进行检查。在这种情况下,应改用helm upgrade
。
现有版本很有可能处于helm ls --all
状态。如果是这样,即使FAILED
也会失败。您可以使用helm upgrade
删除发行版,然后尝试使用helm delete spacestudychart --purge
重新安装。
掌舵机将发布信息存储为ConfigMap,因此导致此问题的另一个原因可能是“中断”发布的无效数据。如果遇到此问题,您的情况应如下所示:
helm install
在这种情况下,请删除ConfigMap并尝试再次安装该发行版:
$ helm ls --all
$ kubectl get cm --all-namespaces -l OWNER=TILLER
NAMESPACE NAME DATA AGE
kube-system spacestudychart.v1 1 22h
答案 2 :(得分:2)
当我通过终端运行时,相同的命令正在工作。
我怀疑您可能以root
用户的身份从终端运行命令,该用户将可以访问您的kubeconfig
。
jenkins管道将在jenkins
用户下运行,该用户可能具有对kubeconfig
文件的读取访问权限。确保jenkins
用户对该文件具有读取权限。
答案 3 :(得分:1)
F0604 07:44:46.468122 2620 helpers.go:114]错误:yaml:第10行:在此情况下不允许使用映射值
表示$HOME/.kube/config
(或环境变量$KUBECONFIG
指向的任何文件)是无效的yaml;没有看到它的内容,除了“修复您的kubeconfig”之外,我们无法确定修复的内容,但可以肯定的是正确的答案,即使它并不像我们俩所希望的那样可行