Nutanix Kubernetes Platform(NKP)のダッシュボードへのログインには、デフォルトでは Management Cluster 作成時に自動生成されるユーザーとパスワードを使用します。今回は、デモや検証時にログインしやすいように、わかりやすいローカル ユーザーを作成してみます。
ドキュメントでは下記のあたりです。ちなみに今回のようなローカル ユーザーの作成は、Nutanix としては非推奨です。
- Creating Local Users After the Kommander Installation
https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Kubernetes-Platform-v2_12:top-create-local-users-after-the-kommander-installation-t.html - Adding RBAC Roles to Local Users
https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Kubernetes-Platform-v2_12:top-add-rbac-roles-to-local-users-t.html
今回の環境
下記の投稿で作成した NKP Management Cluster にユーザーを作成します。
今回作成するローカル ユーザーです。
- ユーザー: nutanix
- パスワード: nutanix/4u
今回は作業用マシンとして、Management Cluster を作成した RHEL8 をそのまま利用します。
Management Cluster に接続する kubeconfig ファイルは、nkpm01.conf です。
[root@lab-nkp-01 ~]# kubectl get nodes --kubeconfig nkpm01.conf NAME STATUS ROLES AGE VERSION nkpm01-dh72h-sxwm5 Ready control-plane 45h v1.29.6 nkpm01-md-0-td65c-k9h78-d7z6g Ready <none> 45h v1.29.6 nkpm01-md-0-td65c-k9h78-m2dnk Ready <none> 45h v1.29.6
1. パスワード ハッシュの生成
パスワード ハッシュの生成には、ドキュメントの例にあるように htpasswd コマンドを利用します。
まず、 htpasswd を含む httpd-tools をインストールします。
[root@lab-nkp-01 ~]# dnf install httpd-tools -y
パスワードとして使用する「nutanix/4u」という文字列のハッシュを生成します。
[root@lab-nkp-01 ~]# htpasswd -bnBC 10 "" nutanix/4u | tr -d ':\n' && echo $2y$10$SAmjyOc.stw6J0G0ey9XXexnaPq6g/sriRgkeNzCScoHdYPhOYLOK
2. ローカル ユーザー(nutanix)の作成
ローカル ユーザーを作成するために、Dex の設定を上書きする ConfigMap(dex-overrides)を作成します。今回は、下記のような YAML ファイルを用意しました。
local-user.yml
- L10:ユーザー名は「email」に指定します。
- L11:パスワードとして、さきほど生成したハッシュ文字列を指定します。
この時点では、まだ dex-overrides ConfigMap は存在しません。
[root@lab-nkp-01 ~]# kubectl get cm -n kommander dex-overrides --kubeconfig nkpm01.conf Error from server (NotFound): configmaps "dex-overrides" not found
YAML を適用して、ConfigMap を作成します。
[root@lab-nkp-01 ~]# kubectl apply -f local-user.yml --kubeconfig nkpm01.conf configmap/dex-overrides created
AppDeployment リソースを編集して、ConfigMap の指定を追記します。
[root@lab-nkp-01 ~]# kubectl edit -n kommander appdeployment dex --kubeconfig nkpm01.conf
エディタ(vi)が開くので、spec 配下に、下記のように configOverrides を追記します。
configOverrides: name: dex-overrides
追記した spec の内容は、下記のようになります。(下の2行が追記分)
spec: appRef: kind: ClusterApp name: dex-2.13.13 clusterConfigOverrides: - clusterSelector: matchExpressions: - key: kommander.d2iq.io/cluster-name operator: In values: - host-cluster configMapName: dex-kommander-overrides configOverrides: name: dex-overrides
3. ローカル ユーザーの権限設定
ユーザーに RBAC を設定するため、CluserRoleBinding を作成します。今回は、下記の YAML ファイルを用意しました。
local-user-role.yml
- L8:cluster-admin ClusterRole を割り当てます。
- L12:ロールを割り当てるユーザーは nutanix です。
clusterrolebinding を作成します。
[root@lab-nkp-01 ~]# kubectl apply -f local-user-role.yml --kubeconfig nkpm01.conf clusterrolebinding.rbac.authorization.k8s.io/cluster-admin-nutanix created
これで、CluserRoleBinding が作成されました。
[root@lab-nkp-01 ~]# kubectl get clusterrolebinding cluster-admin-nutanix --kubeconfig nkpm01.conf NAME ROLE AGE cluster-admin-nutanix ClusterRole/cluster-admin 25s
4. NKP ダッシュボードへのログイン確認
nkp コマンドで、ダッシュボードの URL を確認します。ここで表示されるユーザー名とパスワードは、今回は利用しません。
[root@lab-nkp-01 ~]# nkp open dashboard --kubeconfig nkpm01.conf Username: intelligent_leakey Password: 1DSlLSOyl5kpNW3Ky4yfSoJKsjWsYbP4HCVyghcCsZU2KD5HeHh2xWa4Rum2LdhE URL: https://192.168.12.201/dkp/kommander/dashboard exec: "xdg-open": executable file not found in $PATH
ダッシュボードに、作成した nutanix ユーザーでログインします。
ユーザー名&パスワードがあまりに有名なので、Google Chrome だと下記のようなメッセージが表示されます。ちなみにこのメッセージは、Chrome の設定で抑止できます。
画面右上の表示で、「nutanix」ユーザーでログインできていることがわかります。
以上。