2017-07-06 1 views
1

J'ai créé un cluster dans google container engine & en ce que j'ai déployé un pod ayant jenkins en cours d'exécution dans celui-ci. puis configuré un travail qui va construire, exécuter, pousser & déployer sample app. si toutes ces étapes d'emploi exécutent, sauf « déployer-SampleApp pas » en raison d'erreur ci-dessouspas en mesure de déployer k8s pod quand essayé par jenkins travail sur 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

Je suis en utilisant la version du cluster 1.6.4

ne Alors quelqu'un a une idée de grimper ce problème
Merci à l'avance Ajout d'un peu plus d'informations qui peuvent être utiles pour la question- ci-dessus

user @ yproject-173008: ~ $ cluster info kubectl
maître Kubernetes est en cours d'exécution à https://IP GLBCDefaultBackend est en cours d'exécution à https://IP/api/v1/proxy/namespaces/kube-system/services/default-http-backend
Heapster est en cours d'exécution à https://IP/api/v1/proxy/namespaces/kube-system/services/heapster
KubeDNS est en cours d'exécution à https://IP/api/v1/proxy/namespaces/kube-system/services/kube-dns
Kubernetes-tableau de bord est en cours d'exécution à
https://IP/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
Pour debug plus loin et diagnostiquer les problèmes de cluster, 'kubectl cluster-info dump'.

user @ yproject-173008: ~ $ version kubectl
Version client: version.Info {Major: "1", mineure: "6", GitVersion: "v1.6.6", GitCommit: "7fa1c1756d8bc963f1a389f4a6937dc71f08ada2", GitTreeState : "clean", BuildDate: "2017-06-16T18: 34: 20Z", GoVersion: "go1.7.6", Compilateur: "gc", Plate-forme: "linux/amd64"}
Version du serveur: version.Info { Majeur: "1", Mineur: "6", GitVersion: "v1.6.4", GitCommit: "d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState: "nettoyer", BuildDate: "2017-05-19T18: 33: 17Z", GoVersion: "go1 .7.5" , compilateur: "gc", Plate-forme: "linux/amd64"}

Répondre

1

Vous obtenez cette erreur car la version de kubeAPI et la version de kubectl sont différentes. Pour obtenir des versions, éditez le fichier Jenkins présent dans le répertoire de construction pour imprimer la version du client kubectl qui a été utilisée dans l'environnement esclave jenkins lors de l'exécution du travail. Dans mon cas c'était au /continuous-deployment-on-kubernetes/sample-app/Jenkinsfile. Ajouter ligne- suivant

sh ("version kubectl")

Cela affichera la version du kubectl utilisé par l'esclave de jenkins. Je l'ai trouvé GitVersion:"v1.3.4". Si c'est le cas, exécutez les étapes suivantes:

1.Générer esclave jenkins dockerfile
-> créer Dockerfile avec Contents- suivant

DE jenkinsci/jnlp-esclave
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
ENV PATH/opt/google-nuage-sdk/bin: $ PATH
USER racine
RUN apt-get update -y
RUN apt-get install -y JQ
RUN boucle https://sdk.cloud.google.com | bash & & mv google-nuage-sdk/opt
COPY kubectl/opt/google-nuage-sdk/bin/
RUN chmod + x/opt/google-nuage-sdk/bin/kubectl

-> Téléchargez le binaire kubectl compatible avec votre kube-cluster. OU Prenez un binaire présent sur votre kube-cluster et placez-le dans ce répertoire.
-> construire l'image et le pousser à votre base de registre.

Docker -t IMAGE_NAME.
gcloud docker - pousser IMAGE_NAME

2. Modifier la configuration de jenkins utiliser cette image pour esclave.
Allez dans Jenkins-> Gérer Jenkins-> Configurer le système.
Faites défiler jusqu'à Cloud.
Sélectionnez Kubernetes. Allez à Images-> Conteneurs-> Image Docker.
Entrez le nom de l'image que vous avez appuyé à l'étape 1.
cliquez sur Enregistrer.
3. démarrez le travail.

+0

Bonjour, J'ai résolu cette erreur en utilisant votre solution merci de votre aide. – Vaibhav

+0

Veuillez accepter la solution et la marquer. –

0

cela ressemble à ce numéro: kubectl throwing group is already registered error

Peut-être que votre kubectl est une ancienne version (1.4 ou antérieure)? Essayez de mettre à niveau vers une version plus récente.

+0

Merci pour votre temps Maintenant, j'ai mis à jour la question avec la version actuelle des détails de la version il semble qu'il fonctionne déjà sur la version 1.6 (client et serveur) – Vaibhav

+0

Moi aussi obtenir la même erreur. J'ai vérifié la version de kubectl que l'esclave jenkins utilise, est 1.3.4. Maintenant, je n'ai aucune idée, comment le changer. –

+0

J'ai trouvé la réponse à la question ci-dessus. Veuillez trouver ci-dessous –