在GCE上通过jenkins工作时,无法部署k8s pod

我已经在谷歌容器引擎中创build了一个集群 ,并且我部署了一个运行jenkins的pod。 然后configuration一个将构build,运行,推送和部署示例应用程序的工作。 所以所有这些工作步骤正在执行,除了“deploy-sampleapp-step”由于以下错误

[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

那么有没有人有任何想法如何升级这个问题
在此先感谢添加一些可能对上述问题有用的信息 –

user @ yproject-173008:〜$ kubectl cluster-info
Kubernetes master在https:// IP上运行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-dashboard正在运行
https://开头的IP / API / V1 /代理/命名空间/ KUBE-系统/服务/ kubernetes的仪表板
要进一步debugging和诊断集群问题,请使用“kubectl集群信息转储”。

user @ yproject-173008:〜$ kubectl版本
GitTreeState:“clean”,BuildDate:“2017-06-16T18:34: 20Z“,GoVersion:”go1.7.6“,编译器:”gc“,平台:”linux / amd64“}
GitTreeState:“clean”,BuildDate:“2017-05-19T18:33: 17Z“,GoVersion:”go1.7.5“,编译器:”gc“,平台:”linux / amd64“}

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

sh(“kubectl版本”)

这将打印jenkins奴隶使用的kubectl的版本。

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

1.生成jenkins从dockerfile
– >用下面的内容创buildDockerfile –

从jenkinsci / jnlp-slave
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
ENV PATH / opt / google-cloud-sdk / bin:$ PATH
USER根
运行apt-get update -y
运行apt-get install -y jq
运行curl https://sdk.cloud.google.com | bash && mv google-cloud-sdk / opt
COPY kubectl / opt / google-cloud-sdk / bin /
运行chmod + x / opt / google-cloud-sdk / bin / kubectl

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

docker build -t IMAGE_NAME。
gclouddocker工具 – 推送IMAGE_NAME

2.编辑jenkinsconfiguration使用这个图像作为奴隶。
去jenkins – >pipe理jenkins – >configuration系统。
向下滚动到云。
selectKubernetes。 转到图像 – >容器 – > Docker镜像。
input您在步骤1中推送的图像名称。
点击保存。
3.开始工作。

这看起来像这个问题: kubectl投掷组已经注册错误

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