Kubernetes

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

2019年6月8日

KubernetesでRancher2.0

Rancher2.0のカタログを確認するとKubernetesのダッシュボードがある事を確認出来ました。

コマンドから入れても良いのですが、とりあえず使ってみようと思います。

Rancher2.0のインストールを行なっていない方はこちらを参考にしてください。

カタログの確認

まずはカタログの確認方法から行います。

ヘッダーメニューにあるAppsをクリックします。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

下記の画面が表示されます。

そして起動を押すとカタログ画面が表示されます。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

色々あるのですが、中盤辺りにKubernetesのダッシュボードがあります。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

Kubernetesのダッシュボードを起動してみる

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

上記画像の詳細を押すと下記の画面が表示される。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

色々の詳細情報や設定方法が記載されている。

まずは、下記にある名称とテンプレートバージョン及びプロジェクトの設定を行います。

選択できるテンプレートバージョン

  • 0.8.0
  • 1.2.0

選択できるプロジェクト

  • Default
  • System

プロジェクトの作成

既存のプロジェクトを汚したくないので新規でプロジェクトを作成してみる。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

docker-for-macのクラスターを選択すると、ヘッダーメニューにプロジェクトを選択できるようになります。

ちなみにdocker-for-macはクラスター登録を行う際にdocker-for-macと名称にしただけなので、名前についてはテキトーです。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

プロジェクト/名前空間のメニューを押すと下記の画面が表示されます。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

そしてプロジェクトを追加をクリックして作成します。

細かい設定は省略させて頂きます。

今回はsampleとして作成します。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

作成を押すとプロジェクトが作成されます。

下記の画像を確認するとsampleが作成されたのがわかります。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

ダッシュボードの設定オプションに戻ってプロジェクトの選択でsampleを設定します。

そのあとはアップデートの方法や権限がプロジェクトやクラスター、範囲設定なのでそのままにします。

ダッシュボードに入る為にログインが必要かどうかの設定など書かれていますが、今回はローカル環境で実行するのでログイン項目はスキップします。

起動ボタンをクリックするとカタログを登録するときの一番最初の画面にアプリが表示されました。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

確認

とりあえず押してみるとエラーが表示されました。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

エラー内容

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

あれ?エラー出たって言うか無いって出た。タイムラグで消えたのか。

とりあえず、名前空間が削除できたのは確認できたがエラーの内容が謎?

権限が無い見たいな事書かれてるけど、わからん。

再度作成手順

とりあえず、色々試してみたら作り方が間違ってたみたい。

グローバルから作成していたが、作成したプロジェクトを選択して作成したらいけた

まずは作成したプロジェクトのヘッダーメニューのカタログアプリを選択する。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

選択したら作り方は最初とやり方は同じです。

作成できると下記のように表示されます。

Rancher2.0のカタログでKubernetesのダッシュボードを利用する

index.htmlを押すとKubernetesのダッシュボードのログイン画面が表示されます。

Rancher2.0のカタログで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だけで設定できます。

今回は色々失敗をして、コマンドで確認したりしましたが使い勝手は良さそうですね。

-Kubernetes
-, , ,