kubernetesのdashboardを使う

スポンサーリンク

はじめに

k8sのdashboardをインストールして使うまでです。

色々便利で見栄えもいいので導入することをおすすめします。

少しインストールが面倒ですが。。

参考サイト

自己証明書(オレオレ証明書)を用意します。こちらの参考サイト様の手順に沿って作りました。

インストールは公式のこちらに沿ってやりました。

サンプルユーザの作り方も公式のまんまです。

自己証明書の用意

ダッシュボードで使う自己証明書を作成します。

作り方は参考サイト様の手順の通りです。

作る場所は$HOME/certsにつくります。

コマンドはこんな感じ。

cd

mkdir certs

cd certs

openssl genrsa 2048 > dashboard.key

openssl req -new -key dashboard.key > dashboard.csr

※いろいろ聞かれますが全部enterで問題なし。

echo subjectAltName=DNS:testdashboard.work > san.ext

openssl x509 -days 3650 -req -signkey dashboard.key < dashboard.csr > dashboard.crt -extfile san.ext

testdashboard.workはアクセスしたいDNS名にする。なんでもOKです。

ここまでのログはこんな感じ。cd certsから

secretの作成

公式にあるとおり以下コマンドを打ちます。

kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kube-system

確認としてkubectl get secret --all-namespacesでkubernetes-dashboard-certsがあることを確認します。

ログです。

ymlファイルの作成

適当なフォルダに移動。移動しなくても良いけどcertsの中でファイルできるのもあれなので。。

mkdir $HOME/dashboardを作成します。

cd $HOME/dashboardで移動します。

まずはもとになるymlファイルを取得します。yamlファイルですが面倒なのでymlと書いてます。


wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

取得したらファイルを編集します。やることは3つです。
vim kubernetes-dashboard.yaml

①kubernetes-dashboard-certsのSecretを丸ごとコメントアウト

先ほどのコマンドでSecretのkubernetes-dashboard-certsは作成したので、この部分はいりません。コメントアウトします。

②kubernetes-dashboardのServiceの編集

kubernetes-dashboardのServiceを編集します。

nodePort: 32075
type : NodePort

nodePortはアクセスさせたい適当なport番号です。設定できれば何番でもOKです。

追加前

追加後

③Create Service AccountとCreate ClusterRoleBindingの追加

ついでにkubernetes-dashboard.yamlの最終行に参考サイトにあるサンプルユーザの作り方を参考に、Create Service AccountとCreate ClusterRoleBindingを追加します。

kubernetesにインストール

作ったymlファイルをkubernetesにインストールします。

kubectl apply -f kubernetes-dashboard.yaml

これでダッシュボードはk8s上で動き出します。

適当なブラウザで以下にアクセスしました。アクセスした画像がこちら。ちなみにブラウザはchromeを使いました。
https://192.168.0.14:32075

オレオレ証明書なんでこんな画面になりますね。仕方ないです。下のほうにある「詳細設定」をクリックして、

さらに出てくる「192.168.0.14にアクセスする(安全ではありません)」をクリックします。するとこんな画面になります。

SIGN INの仕方を選べます。SKIPでも前に進めますが閲覧できる範囲が限られる・・・というかほとんど何も見れないのでKubeconfigかTokenを使ってSIGN INします。

ここではTokenを使います。入力するTokenを確認する以下コマンドを打ちます。

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

結果がこちら

こちらのtoken:にある「eyJh・・・・・・35pw」という長い文字列がtokenです。ちなみにこちらは私の環境で出力されたもので、各環境でtokenは違うはずなので注意してください。これを先ほどの画面で入力するとログインできるはずです。

ログインしたあとのOverview画面がこちら。

はじめはネームスペースがdefaultですが、ここを「すべてのネームスペース」にすると全部の設定を見ることができます。

こんな感じです。かっこいいですね!

おまけ

以上で完了なのですが、ブラウザでの「保護されていません」の警告を消すなら以下も実施します。

windowsならhostsファイルに以下を追加。直接編集できないのでデスクトップにでもコピーしてそのファイルを編集。編集後本来ある場所に上書き保存でOK。
ちなみにwindows10のhostsファイルの場所はここです。
C:\Windows\System32\drivers\etc

192.168.0.14 testdashboard.work

次に自己証明書の作成で作ったdashboard.crtをwindowsのデスクトップにもってきます。といっても新規ファイル作って名前をdashboard.crtして中身をコピペすればOK。

用意できたら使うブラウザに証明書をインポートします。chromeなら設定→詳細設定→証明書の管理→信頼されたルート証明機関→インポートでdashboard.crtをインポートできます。
インポートの際にセキュリティ警告でるけど無視して証明書をインストールします。

無事インストールが終わるとこんな感じの証明書が確認できます。

その後chromeをrestartさせます。
URL入力するところに以下を入力してenter
chrome://restart

chromeがrestartした後に以下URLを入力してダッシュボードにアクセスします。
https://testdashboard.work:32075

実際にアクセスしてみると保護された証明書となっています。

最後に

ダッシュボードの操作について直感でどうにでもなる感じなので省いています。

何でも出来てしまうユーザなのでその辺は注意を。

個人的には主にログを見るとかの用途に限定して使ってます。

実際の操作はcmdで見たほうが早いですがログ見るのはすごく楽なので重宝します。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする