KubernetesのDashboardにログインしようとすると
Not Found (404) the server could not find the requested resource
とエラーが出た時の対処方法です。
原因
古いDashboardでは、「namespace」に「kube-system」が使われていましたが、最近のDashboardでは「kubernetes-dashboard」が使われています。
namespaceはユーザーのトークン取得と、proxyへのアクセスの際に指定し、どちらのnamespaceを使うかは、実際にそのKubernetesにデプロイされているDashboardが、どちらのnamepsaceを使っているかで決まります。
そして、そのnamespaceの指定が実際と違っていた時に、上記のエラーが発生します。
対応
namespaceを使う場所で、Dashboardと同じnamespaceを使うようにします。
トークン取得
NAMESPACE=kubernetes-dashboard # or kube-system kubectl -n $NAMESPACE describe secret $(kubectl -n $NAMESPACE get secret | grep admin-user | awk '{print $1}')
proxy URL
NAMESPACE=kubernetes-dashboard # or kube-system echo "http://localhost:8001/api/v1/namespaces/$NAMESPACE/services/https:kubernetes-dashboard:/proxy/"
感想など
新旧スクリプトを混在させたため、表題のエラーがでてハマりました…。