2017-05-17 3 views
1

私は、スレーブをスピンアップするためにKubernetesプラグインを設定しました。 しかし、私はアクセス制御に問題があります。でPOST:https://kubernetes.default/api/v1/namespaces/npd-test/pods失敗の実行:マスターは新しいポッドプロビジョニングエージェントKubernetesポッドテンプレート io.fabric8.kubernetes.client.KubernetesClientException中に発生した(奴隷)jenkinsのkubernetesプラグインで動作しないデフォルトのサービスアカウント

予期しない例外をスピンアップしようとすると、エラーを取得 。メッセージ:禁止されています!設定されたサービスアカウントにはアクセスできません。サービスアカウントが取り消された可能性があります。 at io.fabric8.kubernetes.client.dsl.base.OperationSupport.requestFailure(OperationSupport.java:315) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.assertResponseCode OperationSupport.java:266) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:237) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport。 java:230) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleCreate(OperationSupport.java:208) at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleCreate(BaseOperation.java: 643) at io.fabric8.kubernetes.client.dsl.base.BaseOperation.create(BaseOperation.java:300) at org.csanchez。 jenkins.util.ContextResettingExecutorService $ 2でのorg.csanchez.jenkins.plugins.kubernetes.KubernetesCloud $ ProvisioningCallback.call(KubernetesCloud.java:581) でjenkins.plugins.kubernetes.KubernetesCloud $ ProvisioningCallback.call(KubernetesCloud.java:636) .call(ContextResettingExecutorService.java:46) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util私は、デフォルトのサービス交流のアクセスをチェックしたjava.lang.Thread.runで.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) (Thread.java:745)

カウントは/var/run/secrets/kubernetes.io/serviceaccount/tokenにあり、トークンを使用してhttps://kubernetes.default/api/v1/namespaces/npd-test/pods.にポッドを作成しようとしました。

プラグインがサービスアカウントにアクセスできないと不平を言っている理由がわかりません。

私はKubernetesプラグインをなし資格情報とKubernetesサービスアカウント資格情報(アカウントを指定する方法)で設定しようとしましたが、どちらも機能しません。

+0

RBACを有効にしていますか? –

答えて

0

通常、サービスアカウントは正常に機能していましたが、Jenkinsでは機能しませんでした。私のセットアップでは、サービスアカウントにeditロールを与えるためにRoleBindingを追加する必要がありました(私の名前空間は実際にはjenkinsですが、ここであなたの名前空間に合わせて変更しました)。

apiVersion: rbac.authorization.k8s.io/v1beta1 
kind: RoleBinding 
metadata: 
    name: jenkins 
    namespace: npd-test 
roleRef: 
    apiGroup: rbac.authorization.k8s.io 
    kind: ClusterRole 
    name: edit 
subjects: 
- kind: ServiceAccount 
    name: default 
    namespace: npd-test 

これを実行した後、私はKubernetes Cloudプラグインをこのように設定してくれました。

Kubernetes URL: https://kubernetes.default.svc.cluster.local 
Kubernetes server certificate key: 
Disable https certificate check: off 
Kubernetes Namespace: npd-test 
Credentials: - none - 
関連する問題