2017-07-06 97 views
1

试图何时部署K8S荚我已经创建了谷歌容器引擎一个cluster &在我已经部署在它运行一个有荚詹金斯。然后配置一个工作,将建立,运行,推&部署sample应用程序。所以所有的这些工作步骤,不同的“部署 - sampleapp步”执行因以下错误无法通过詹金斯工作在GCE

[sampleapp_master-HAWDXNK5BCRQ7EWPPOHGW7RUWBBM25WIAIKOP6UBHIDYZGTMQIJA] Running shell script
+ kubectl --namespace=production apply -f k8s/services/ error: group map[:0xc820374b60 apps:0xc820374bd0 authorization.k8s.io:0xc820374c40 componentconfig:0xc820374d90 extensions:0xc820374e00 policy:0xc820374e70 storage.k8s.io:0xc8202cc770 federation:0xc820374af0 autoscaling:0xc820374cb0 batch:0xc820374d20 rbac.authorization.k8s.io:0xc820374ee0 authentication.k8s.io:0xc820374fc0] is already registered

所以我使用的集群版本1.6.4

因此,没有人有任何想法如何升级这个问题
由于事先 添加一些信息可能对上述question-

用户@ yproject-173008有用:〜$ kubectl集群信息
Kubernetes主在​​ GLBCDefaultBackend运行在https://IP/api/v1/proxy/namespaces/kube-system/services/default-http-backend
Heapster运行在https://IP/api/v1/proxy/namespaces/kube-system/services/heapster
KubeDNS运行在https://IP/api/v1/proxy/namespaces/kube-system/services/kube-dns
kubernetes-仪表盘运行在
https://IP/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
运行为了进一步调试和诊断群集问题,使用'kubectl cluster-info dump'。

用户@ yproject-173008:〜$ kubectl版本
客户端版本:version.Info {专业: “1”,小调: “6”,GitVersion: “v1.6.6”,GitCommit: “7fa1c1756d8bc963f1a389f4a6937dc71f08ada2”,GitTreeState :“clean”,BuildDate:“2017-06-16T18:34:20Z”,GoVersion:“go1.7.6”,编译器:“gc”,平台:“linux/amd64”}
服务器版本:version.Info { Major:“1”,Minor:“6”,GitVersion:“v1.6.4”,GitCommit:“d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae”,GitTreeState:“clean”,BuildDate:“2017-05-19T18:33:17Z”,GoVersion:“go1 .7.5" ,编译: “GC”,平台 “的Linux/AMD64”}

回答

1

您正在收到此错误,因为kubeAPI的版本和kubectl的版本不同。要获取版本,编辑构建目录中的Jenkins文件,以便在执行作业时打印在jenkins从属环境中使用的kubectl客户端版本。在我的情况是在/continuous-deployment-on-kubernetes/sample-app/Jenkinsfile。添加以下线 -

SH( “kubectl版”)

这将打印詹金斯从使用的kubectl的版本。

我发现它是GitVersion:"v1.3.4"。如果您遇到这种情况,请执行以下步骤 -

1。生成詹金斯从dockerfile
- >创建Dockerfile与以下内容 -

FROM jenkinsci/JNLP - 从
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
ENV PATH /选择/谷歌云SDK /斌:$ PATH
用户root
运行apt-get更新-y
运行apt-get安装-y JQ
RUN卷曲https://sdk.cloud.google.com |的bash & & MV谷歌云-SDK /选择
COPY kubectl /选择/谷歌云的SDK /斌/
运行chmod + X /选择/谷歌云的SDK /斌/ kubectl

- >下载与您的kube-cluster兼容的kubectl二进制文件。或者把你的kube-cluster上的二进制文件放在这个目录中。
- >建立图像,并将其推送到您的注册表。

码头构建-t IMAGE_NAME。
gcloud搬运工 - 推IMAGE_NAME

2.编辑詹金斯配置以使用该图像从站。
转到詹金斯 - >管理詹金斯 - >配置系统。
向下滚动到云。
选择Kubernetes。转到图像 - >容器 - > Docker图像。
输入您在步骤1中推送的图像名称。
单击保存。
3.开始工作。

+0

嗨,我已通过使用您的解决方案解决了此错误,感谢您的帮助。 – Vaibhav

+0

请接受解决方案并标记。 –

0

这看起来像此问题:kubectl throwing group is already registered error

也许你的kubectl是旧版本(1.4或更早版本)?尝试升级到更新的版本。

+0

感谢您的时间现在我已经更新了版本当前版本的详细信息,它似乎已经运行在版本1.6(客户端和服务器) – Vaibhav

+0

我也得到同样的错误。我检查过jenkins奴隶使用的kubectl版本是1.3.4。现在,我没有任何想法,如何改变它。 –

+0

我找到了上述查询的答案。请在下面找到 –