Rancher2.0のカタログを確認するとKubernetesのダッシュボードがある事を確認出来ました。
コマンドから入れても良いのですが、とりあえず使ってみようと思います。
Rancher2.0のインストールを行なっていない方はこちらを参考にしてください。
カタログの確認
まずはカタログの確認方法から行います。
ヘッダーメニューにあるAppsをクリックします。
下記の画面が表示されます。
そして起動を押すとカタログ画面が表示されます。
色々あるのですが、中盤辺りにKubernetesのダッシュボードがあります。
Kubernetesのダッシュボードを起動してみる
上記画像の詳細を押すと下記の画面が表示される。
色々の詳細情報や設定方法が記載されている。
まずは、下記にある名称とテンプレートバージョン及びプロジェクトの設定を行います。
選択できるテンプレートバージョン
- 0.8.0
- 1.2.0
選択できるプロジェクト
- Default
- System
プロジェクトの作成
既存のプロジェクトを汚したくないので新規でプロジェクトを作成してみる。
docker-for-macのクラスターを選択すると、ヘッダーメニューにプロジェクトを選択できるようになります。
ちなみにdocker-for-macはクラスター登録を行う際にdocker-for-macと名称にしただけなので、名前についてはテキトーです。
プロジェクト/名前空間のメニューを押すと下記の画面が表示されます。
そしてプロジェクトを追加をクリックして作成します。
細かい設定は省略させて頂きます。
今回はsampleとして作成します。
作成を押すとプロジェクトが作成されます。
下記の画像を確認するとsampleが作成されたのがわかります。
ダッシュボードの設定オプションに戻ってプロジェクトの選択でsampleを設定します。
そのあとはアップデートの方法や権限がプロジェクトやクラスター、範囲設定なのでそのままにします。
ダッシュボードに入る為にログインが必要かどうかの設定など書かれていますが、今回はローカル環境で実行するのでログイン項目はスキップします。
起動ボタンをクリックするとカタログを登録するときの一番最初の画面にアプリが表示されました。
確認
とりあえず押してみるとエラーが表示されました。
エラー内容
Failed to install app sample-dashboard-p-gqfn5.
Error: UPGRADE FAILED: Upgrade --force successfully deleted the previous release,
but encountered 2 error(s) and cannot continue: rolebindings.rbac.authorization.k8s.io "sample-dashboard-p-gqfn5-kubernetes-dashboard" is forbidden: User "u-v3wonslm42" cannot delete rolebindings.rbac.authorization.k8s.io in the namespace "sample-dashboard-p-gqfn5";
roles.rbac.authorization.k8s.io "sample-dashboard-p-gqfn5-kubernetes-dashboard" is forbidden: User "u-v3wonslm42" cannot delete roles.rbac.authorization.k8s.io in the namespace "sample-dashboard-p-gqfn5"
エラー内容から察するにインストールに失敗したみたい。しかも名前空間とか登録したけど削除も出来ないみたい。
先ほど作ったkubernetesダッシュボードを削除します。
ダッシュボードだけではダメなので、名前空間も削除します。
名前空間の削除
名前空間も消えたか確認してみたけど、やっぱ消えてないので手動で削除します。
まずはコンソール画面から確認します。
$kubectl get namespaces
NAME STATUS AGE
cattle-system Active 5h
default Active 5d
docker Active 5d
kube-public Active 5d
kube-system Active 5d
sample-dashboard-p-gqfn5 Terminating 18m
次に消します。
$ kubectl delete namespace sample-dashboard-p-gqfn5 Error from server (NotFound): namespaces "sample-dashboard-p-gqfn5" not found
あれ?エラー出たって言うか無いって出た。タイムラグで消えたのか。
とりあえず、名前空間が削除できたのは確認できたがエラーの内容が謎?
権限が無い見たいな事書かれてるけど、わからん。
再度作成手順
とりあえず、色々試してみたら作り方が間違ってたみたい。
グローバルから作成していたが、作成したプロジェクトを選択して作成したらいけた。
まずは作成したプロジェクトのヘッダーメニューのカタログアプリを選択する。
選択したら作り方は最初とやり方は同じです。
作成できると下記のように表示されます。
index.htmlを押すとKubernetesのダッシュボードのログイン画面が表示されます。
ログインしてみる
ダッシュボードが起動しているのが確認できました。
しかしどうやって入るの?と思い、色々調べてみるとyamlを作成しないといけないみたいです。
ダッシュボード用のアカウントを作成して対応する為、yamlファイルを作成します。
service-account.yamlというファイル名で作成します。
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
次にアカウントの作成を行います。
$kubectl apply -f service-account.yaml
serviceaccount "admin-user" created
clusterrolebinding.rbac.authorization.k8s.io "admin-user" created
アカウントの作成は完了しました。
下記のコマンドで作成したtokenの名称を確認します。
$ kubectl -n kube-system get secret
yamlで作成したnameでadmin-userにしています。
admin-user-token-XXXXXみたいな名称で出ているのでその名称を使ってtokenの内容を出します。
$ kubectl -n kube-system describe secret admin-user-token-XXXXX
するとtokenが表示されるので、そのtokenをコピペで先ほどのログインのtokenで入ってみる。
確認は完了になります。
まとめ
グローバルから作る方法とプロジェクトから作る方法で違いがあるみたいです。
Kubernetesを利用した場合、ダッシュボードを設定するのにコマンドを利用しますが、ranchar2.0を利用するとコマンドいらずにUIだけで設定できます。
今回は色々失敗をして、コマンドで確認したりしましたが使い勝手は良さそうですね。