CentOS 8
Sponsored Link

MicroK8s : ダッシュボードを有効にする2020/08/12

 
MicroK8s クラスターでダッシュボードを有効にする場合は以下のように設定します。
[1] プライマリーノードで、ダッシュボード アドオンを有効にします。
[root@dlp ~]#
microk8s enable dashboard dns

Enabling Kubernetes Dashboard
Addon metrics-server is already enabled.
Applying manifest
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

If RBAC is not enabled access the dashboard using the default token retrieved with:

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token

In an RBAC enabled setup (microk8s enable RBAC) you need to create a user with restricted
permissions as shown in:
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

Enabling DNS
Applying manifest
serviceaccount/coredns created
configmap/coredns created
deployment.apps/coredns created
service/kube-dns created
clusterrole.rbac.authorization.k8s.io/coredns created
clusterrolebinding.rbac.authorization.k8s.io/coredns created
Restarting kubelet
Adding argument --cluster-domain to nodes.
Applying to node node01.srv.world.
Node node01.srv.world not present
Adding argument --cluster-dns to nodes.
Applying to node node01.srv.world.
Node node01.srv.world not present
Restarting nodes.
Applying to node node01.srv.world.
Node node01.srv.world not present
DNS is enabled

[root@dlp ~]#
microk8s kubectl get services -n kube-system

NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
dashboard-metrics-scraper   ClusterIP   10.152.183.162   <none>        8000/TCP                 46s
kube-dns                    ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP   45s
kubernetes-dashboard        ClusterIP   10.152.183.65    <none>        443/TCP                  46s
metrics-server              ClusterIP   10.152.183.102   <none>        443/TCP                  15h

[root@dlp ~]#
microk8s kubectl -n kube-system get pods -o wide

NAME                                        READY   STATUS    RESTARTS   AGE   IP           NODE            NOMINATED NODE   READINESS GATES
coredns-588fd544bf-4d4kc                    1/1     Running   0          24s   10.1.68.25   dlp.srv.world   <none>           <none>
dashboard-metrics-scraper-59f5574d4-lmgmt   1/1     Running   0          25s   10.1.68.24   dlp.srv.world   <none>           <none>
kubernetes-dashboard-6d97855997-bwg2g       1/1     Running   0          25s   10.1.68.23   dlp.srv.world   <none>           <none>
metrics-server-c65c9d66-kdxh8               1/1     Running   2          16h   10.1.68.19   dlp.srv.world   <none>           <none>

# セキュリティトークン確認

# [token:] 行の二列目が該当

[root@dlp ~]#
microk8s kubectl -n kube-system describe secret $(microk8s kubectl -n kube-system get secret | grep default-token | awk '{print $1}')

Name:         default-token-l5fsn
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: default
              kubernetes.io/service-account.uid: 63e24aa4-dabf-4ccf-848e-8993470d03c4

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1103 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlR2azl4Xy1WSFo1VEVtNDZaMFB0TzFaZGtJa0xqR.....

# 外部からもアクセスできるようにポートフォワードする

[root@dlp ~]#
microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard --address 0.0.0.0 10443:443

Forwarding from 0.0.0.0:10443 -> 8443
# Firewalld 稼働中の場合はポート許可

[root@dlp ~]#
firewall-cmd --add-port=10443/tcp --permanent

[root@dlp ~]#
firewall-cmd --reload

[2] ローカルネットワーク内の任意のクライアントコンピューターで Web ブラウザーを起動し、[https://(MicroK8s プライマリーノードのホスト名 または IP アドレス):10443/] にアクセスします。以下のような画面が表示されたら、[1] で確認したセキュリティトークンを コピー & ペーストして [Sing In] ボタンをクリックします。なお、下例の画面は英語表示となっていますが、日本語 OS でアクセスすれば日本語で表示されます。
[3] 認証が成功すると MicroK8s クラスターのダッシュボードが表示されます。
関連コンテンツ