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

时间:2017-07-06 13:47:50

标签: docker jenkins kubernetes google-compute-engine

我在谷歌容器引擎中创建了一个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"}

2 个答案:

答案 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或更早版本)?尝试升级到更新版本。