Kubernetesお勉強その6【環境構築】WebUIでPodとかのステータス見てみる

 おおよそ過去5回分でひとまずはKubernetesを動かせる環境は準備できたんだけれども。監視とかするのにGUIないとつらいよなぁと思って探しているとDashbordなるものがある様です。早速インストールして動かしてみました。ちなみにDashbordからPODに接続できてコマンド叩けたり、ログの内容見れたりとっ便利だったり。そのほかも色々とできるみたい。

よそ様のサイトの方が充実しているのでそっち見たほうがいいし、ほぼコピペですが一応まとめておきました。


◆手順

1.事前準備(クラスター3台分のFireWallのポートオープン)

$ sudo ufw allow from 192.168.0.0/24 to any port 32001
$ sudo ufw allow from 192.168.0.0/24 to any port 8443
$ sudo ufw allow from 192.168.0.0/24 to any port 8000

2.設定作業

・設定ファイル読込

# インストール
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
namespace/kubernetes-dashboard created
~中略~
deployment.apps/dashboard-metrics-scraper created
$ kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
dashboard-metrics-scraper   ClusterIP   10.XXX.XX.XX              8000/TCP   14m
kubernetes-dashboard        ClusterIP   10.XXX.XX.XX           443/TCP    14m

# ノードポートに接続するように変更
$ kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
service/kubernetes-dashboard edited
-----------------------------
~中略~
ports:
- port: 443
protocol: TCP
targetPort: 8443
nodePort: 32001   #追加
~中略~
# type: ClusterIP
type: NodePort   #NodePortに変更
# viみたいな形で動かせた。変更した後[Esc]+「:+w」で上書き保存が必要
-----------------------------

・トークンの準備

# ユーザ作成
$ mkdir webui
$ cat << EOF > webui/dashboard-adminuser.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF
$ kubectl apply -f webui/dashboard-adminuser.yaml

# ロール追加
$ cat << EOF > webui/dashboard-admin-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
EOF
$ kubectl apply -f webui/webui/dashboard-admin-role.yaml

# トークン発行
$ kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

#ノードのIP確認
$ kubectl get nodes -o wide
NAME                           STATUS   ROLES                  AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
kube-srv1.yourdomain   Ready    control-plane,master   2d    v1.23.3   192.168.0.21           Ubuntu 20.04.3 LTS   5.4.0-99-generic   cri-o://1.22.1
kube-srv2.yourdomain   Ready    control-plane,master   2d    v1.23.3   192.168.0.22           Ubuntu 20.04.3 LTS   5.4.0-99-generic   cri-o://1.22.1
kube-srv3.yourdomain   Ready    control-plane,master   2d    v1.23.3   192.168.0.23           Ubuntu 20.04.3 LTS   5.4.0-99-generic   cri-o://1.22.1


・確認方法

1号機のノードであるhttp://192.168.0.21:32001にアクセスし、トークン発行で出力されたトークンを貼り付けしてログインする。






※ブラウザ立ち上げなおすたびにトークン入力が必要な模様

画面が表示されれば成功(ダークモードに変更できたりするので変更後のキャプチャ)








◆参考サイト

https://kubernetes.io/ja/docs/tasks/access-application-cluster/web-ui-dashboard/

https://qiita.com/yasubehe/items/838832fe488b72fcc887

https://qiita.com/bindingpry/items/737e5779f68e8302bc55

https://sky-joker.tech/2019/04/21/kubernetes%E3%81%AE%E3%82%BF%E3%82%99%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9B%E3%82%99%E3%83%BC%E3%83%88%E3%82%99%E3%82%92%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99/

https://www.n-novice.com/entry/2018/03/11/172859

https://www.server-world.info/query?os=Ubuntu_20.04&p=kubernetes&f=11

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)