2017-07-06 56 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

我找到了上述查詢的答案。請在下面找到 –