Kubernetesクラスター(Openshift Origin v3.6)とPrometheus(v1.8.1)が別々のサーバーで動作しています。私はプロメテウスと一緒にクベベルネを監視しようとしています。PrometheusをKubernetesに接続する際にAPI認証エラーが発生する
私はdefault
サービスアカウントトークンを得て、/etc/prometheus/token
に入れました。その後
oc sa get-token default
は、プロメテウスの設定ファイルにこれを追加しました:プロメテウスを再起動した後
...
- job_name: 'kubernetes-apiservers'
kubernetes_sd_configs:
- role: endpoints
api_server: 'https://my.kubernetes.master:8443'
scheme: https
bearer_token_file: /etc/prometheus/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
...
、私は何度も何度も繰り返して、次のエラーログを参照してください。
Nov 23 22:43:05 prometheus prometheus[17830]: time="2017-11-23T22:43:05Z" level=error msg="github.com/prometheus/prometheus/discovery/kubernetes/kubernetes.go:183: Failed to list *v1.Pod: User "system:anonymous" cannot list all pods in the cluster" component="kube_client_runtime" source="kubernetes.go:76"
私はこのhereが見つかりました:
をアクセストークンまたは証明書が提示されていない場合、認証レイヤーは仮想システムを匿名仮想ユーザーに割り当て、システム:認証されていない仮想グループを要求に割り当てます。これにより、認可層は、匿名ユーザーが許可する要求があれば、それを判断することができます。
私の設定が間違っていると思われ、プロメテウスが認証にトークンを使用していません。
セットアップに何が問題なのですが、どうすれば修正できますか?前もって感謝します。