2017-07-14 11 views
4

私はkubectlに確認してください、私だけのセットアップは、このリンクhttps://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#multi-platform 上kubenetesクラスタベースはノードを取得し、その後、マスターノードは準備完了ですが、私は、リンクhttps://k8s-master-ip:6443/ にアクセスするときエラーが表示されます。ユーザー "system:anonymous"はパス "/"を取得できません。 私は行方不明のトリックですか?ユーザー「システム:匿名は」パスを取得することはできません「/」

+0

そのURLにはどのような情報が表示されますか? – kichik

+0

私はこのURLがkubenetesダッシュボードだと思います。実際に私はJenkinsでkubenetesプラグインを設定していますが、Test Connectionステップで失敗しました。私の画像を参照してください http://imgur.com/a/cMNLo –

+0

これはあなたが通常ダッシュボードにアクセスする方法ではありません。 'kubectl proxy'を実行し、http:// localhost:8001/uiに行きます。 'kubectl create -f https:// git.io/kube-dashboard'で最初にインストールされていることを確認してください。 – kichik

答えて

3

最新のkubernetesデプロイメントツールは、クラスタ上でRBACを有効にします。ジェンキンスはhttps://192.168.70.94:6443/api/v1/...にアクセスするとキャッチオールユーザーsystem:anonymousに降格します。このユーザーには、kube-apiserverに対する権限はほとんどありません。

Jenkinsは、k8sクラスタのCAキーで署名されたベアラトークンまたはクライアント証明書を使用して、kube-apiserverで認証する必要があります。

方法1.ジェンキンスはK8Sクラスタでホストされている場合、これは好ましい:。

  1. プラグイン
  2. RBACプロファイルを作成するためにK8SでServiceAccountを作成します(つまり、役割/ RoleBindingまたはClusterRole ServiceAccount
  3. コンフィグURLにアクセスするときに、ServiceAccountのトークンを使用するためのプラグインに関連付けられています/ ClusterRoleBinding)https://192.168.70.94:6443/api/v1/...

方法2 Jenkinsがk8sクラスタの外部にホストされている場合、上記の手順を引き続き使用できます。代わりに、

  1. k8sクラスタのCAに関連付けられたクライアント証明書を作成します。 CAキーが保管されている場所を見つけて、それを使用してクライアント証明書を生成する必要があります。
  2. は、RBACプロファイルを作成します(すなわち。役割/ RoleBindingまたはClusterRole/ClusterRoleBinding)https://192.168.70.94:6443/api/v1/...

どちらの方法がで働くURLにアクセスする際に

  • コンフィグCERTクライアントにクライアント証明書を使用するプラグインを結んだということどんな状況でも。私はあなたがCAキーを使いこなす必要がないので、方法1がより簡単になると信じています。

  • 関連する問題