ユーザー/パスワードを使用して Kubernetes ダッシュボードを外部アクセスから保護するにはどうすればよいですか?
vm-driver=none モードで Minikubes を使用してクラスターを作成します。
答え1
Kubernetes では、リクエストは認証 (API サーバーと通信しているユーザーを決定する資格情報) と承認 (API サーバーがこのユーザーが要求されたアクションを実行できるかどうかを判断できるようにする) として行われます。ただし、Kubernetes には、その単語の従来の意味におけるユーザーは存在しません (Kubernetes ユーザーは、資格情報を通じてリクエストに関連付けられた単なる文字列です)。資格情報戦略は、クラスターのインストール時に選択します (x509、パスワード ファイル、ベアラー トークンなどから選択できます)。
--vm-driver=none を使用しながらユーザーを作成したいと追加したので、ダッシュボードとクラスター自体はネットワーク上で誰でも利用できるものと想定しています。Minikube はローカル開発とテストを目的としており、ユーザーに代わってロールを作成するようです。通常の Kubernetes クラスターをインストールしてみてください。kubeadmMinikubeでデプロイされた簡易バージョンを使用する代わりに、minikube start
Minikubeがクラスターロール「kubernetes dashboard」と関連付けられたトークンを作成した後、別の解決策として、Kubernetes Dashboardを削除し、指示に従って最初からインストールすることが考えられます。ここ説明されているようにユーザーを作成するここユーザーに新しいロールを作成することもできますが、このソリューションをテストする時間がありませんでした。また、Kubernetes でより複雑なタスクを実行する場合は、他のツールを使用することをお勧めします。kubeadm を使用すると、ダッシュボードを自分でインストールし、ニーズに合わせて構成できます。
さらに遠く読むKubernetes ダッシュボードのアクセス制御について。 ダッシュボードのサービスアカウントを作成し、その資格情報を取得するステップ7:
- このコマンドは、デフォルトの名前空間にダッシュボードのサービス アカウントを作成します。
$ kubectl サービスアカウントダッシュボードを作成 -n デフォルト
- このコマンドはダッシュボードアカウントにクラスターバインディングルールを追加します
$ kubectl create clusterrolebinding dashboard-admin -n default \
--clusterrole=cluster-admin \ --serviceaccount=default:dashboard
- このコマンドはダッシュボードログインに必要なトークンを提供します
$ kubectl シークレットを取得 $(kubectl サービスアカウント ダッシュボードを取得 -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode
トークンを取得する必要があります。4. このトークンをコピーし、ダッシュボードのログインページでトークンオプションを選択して貼り付けます。