NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix Kubernetes Platform(NKP)の Dashboard にローカル ユーザーでログインしてみる。

Nutanix Kubernetes Platform(NKP)のダッシュボードへのログインには、デフォルトでは Management Cluster 作成時に自動生成されるユーザーとパスワードを使用します。今回は、デモや検証時にログインしやすいように、わかりやすいローカル ユーザーを作成してみます。

 

ドキュメントでは下記のあたりです。ちなみに今回のようなローカル ユーザーの作成は、Nutanix としては非推奨です。

今回の環境

下記の投稿で作成した 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:パスワードとして、さきほど生成したハッシュ文字列を指定します。

gist.github.com

この時点では、まだ 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 です。

gist.github.com

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」ユーザーでログインできていることがわかります。

以上。

©2024 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。