我在谷歌容器引擎中创建了一个cluster&因为我已经部署了一个在其中运行jenkins的pod。然后配置一个将构建,运行,推送和创建的作业部署sample应用。所以所有这些工作步骤都在执行,除了" 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/proxy/namespaces/kube-system/services/kubernetes-dashboard
要进一步调试和诊断群集问题,请使用' kubectl cluster-info dump'。user @ yproject-173008:〜$ kubectl version
客户端版本:version.Info {Major:" 1",Minor:" 6",GitVersion:" v1.6.6",GitCommit:" 7fa1c1756d8bc963f1a389f4a6937dc71f08ada2& #34;,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& #34;,GitTreeState:" clean",BuildDate:" 2017-05-19T18:33:17Z",GoVersion:" go1.7.5",编译: " gc",平台:" linux / amd64"}
答案 0 :(得分:2)
您收到此错误是因为kubeAPI的版本和kubectl的版本不同。要获取版本,请编辑构建目录中存在的Jenkins文件,以打印在执行作业时已在jenkins从属环境中使用的kubectl客户端版本。就我而言,它位于/continuous-deployment-on-kubernetes/sample-app/Jenkinsfile
。添加以下行 -
sh(“kubectl version”)
这将打印jenkins slave使用的kubectl版本。
我发现它为GitVersion:"v1.3.4"
。如果是这种情况,请执行以下步骤 -
<强> 1。生成jenkins slave dockerfile
- &GT;使用以下内容创建Dockerfile -
来自jenkinsci / jnlp-slave
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
ENV PATH / opt / google-cloud-sdk / bin:$ PATH
用户root
运行apt-get update -y
运行apt-get install -y jq
RUN curl https://sdk.cloud.google.com | bash&amp;&amp; mv google-cloud-sdk / opt
COPY kubectl / opt / google-cloud-sdk / bin /
运行chmod + x / opt / google-cloud-sdk / bin / kubectl
- &GT;下载与您的kube-cluster兼容的kubectl二进制文件。或者将二进制文件存在于您的kube-cluster中并将其放在此目录中 - &GT;构建映像并将其推送到您的注册表。
docker build -t IMAGE_NAME。
gcloud docker - 推送IMAGE_NAME
<强> 2。编辑jenkins配置以将此图像用于从属。
转到Jenkins-&gt;管理Jenkins->配置系统。
向下滚动到云。
选择Kubernetes。转到Images-&gt; Containers-&gt; Docker图像
输入您在步骤1中推送的图像名称。
点击保存。
第3。开始工作。
答案 1 :(得分:0)
这看起来像这个问题:kubectl throwing group is already registered error
也许您的kubectl是旧版本(1.4或更早版本)?尝试升级到更新版本。