K8s:分享一個類似 dashboard 的 k8s 管理工具 Skooner
簡單介紹
Skooner 之前的名字叫做 k8dash ,現(xiàn)在修改為 Skooner, Skooner 是用來管理 Kubernetes 集群的一個工具?,F(xiàn)在是Cloud Native Computing Foundation的一個沙盒項目.
在界面風(fēng)格,功能使用上有些類似于 Headlamp, Dashboard
Skooner 的特性:
完整的集群管理:命名空間、節(jié)點、Pod、副本集、部署、存儲、RBAC 等
速度極快且永遠(yuǎn)在線:無需刷新頁面即可查看最新的集群狀態(tài)
一目了然地快速可視化集群健康狀況:實時圖表有助于快速追蹤性能不佳的資源
簡單的 CRUD 和縮放:加上內(nèi)聯(lián) API 文檔以輕松理解每個字段的作用
100% 響應(yīng)(在您的手機(jī)/平板電腦上運行)
簡單的 OpenID 集成:不需要特殊的代理
簡單安裝:使用提供的 yaml 資源在 1 分鐘內(nèi)啟動并運行 skooner(不,說真的)
下載安裝
┌──[root@liruilongs.github.io]-[~/.kube]
└─$curl -o kubernetes-skooner.yaml https://raw.githubusercontent.com/skooner-k8s/skooner/master/kubernetes-skooner.yaml
YAML 文件拉取下來需要做簡單修改。
這里不使用 Ingress 控制器 ,svc 設(shè)置為 type: NodePort, 谷歌鏡像國內(nèi)拉不下來,所以換成 docker 倉庫的。
#image: ghcr.io/skooner-k8s/skooner:stable
image: docker.io/ymuski/skooner:latest
然后直接部署
┌──[root@vms81.liruilongs.github.io]-[~/ansible/skooner]
└─$kubectl apply -f kubernetes-skooner.yaml
deployment.apps/skooner created
service/skooner created
skooner 由一個 deploy 和一個 svc 構(gòu)成
┌──[root@vms81.liruilongs.github.io]-[~/ansible/skooner]
└─$kubectl get svc skooner
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
skooner NodePort 10.108.72.51 <none> 80:32334/TCP 9m
瀏覽器訪問:http://192.168.26.81:32334/#!。登錄需要 tocker。
對應(yīng)的 pod 默認(rèn)使用的當(dāng)前命名空間 default 的 SA,所以我們直接獲取 defaule 的sa 對應(yīng)的 token 來登錄。
┌──[root@vms81.liruilongs.github.io]-[~/ansible/skooner]
└─$kubectl get pods skooner-5b65f884f8-9cs4k -o json | jq .spec.serviceAccount
"default"
這里默認(rèn)情況下 么有授權(quán)。我們需要給 default 的 sa 授權(quán)。
┌──[root@vms81.liruilongs.github.io]-[~/ansible/skooner]
└─$kubectl create clusterrolebinding default --clusterrole=cluster-admin --serviceaccount=default:default
clusterrolebinding.rbac.authorization.k8s.io/default created
當(dāng)然也可以創(chuàng)建新的 sa
# Create the service account in the current namespace (we assume default)
kubectl create serviceaccount skooner-sa
# Give that service account root on the cluster
kubectl create clusterrolebinding skooner-sa --clusterrole=cluster-admin --serviceaccount=default:skooner-sa
# Find the secret that was created to hold the token for the SA
kubectl get secrets
# Show the contents of the secret to extract the token
kubectl describe secret skooner-sa-token-xxxxx
獲取 tocker
┌──[root@vms81.liruilongs.github.io]-[~/ansible/skooner]
└─$kubectl describe secrets default-token-xg77h
Name: default-token-xg77h
Namespace: kube-system
Labels: <none>
Annotations: field.cattle.io/projectId: local:p-f4zjg
kubernetes.io/service-account.name: default
kubernetes.io/service-account.uid: ea334cb4-6824-4186-a69f-3272c5d232e3
Type: kubernetes.io/service-account-token
Data
====
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImF2MmJVZ3d6M21JRC1BZUwwaHlDdzZHSGNyaVJON1BkUHF6MlhPV2NfX00ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXhnNzdoIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlYTMzNGNiNC02ODI0LTQxODYtYTY5Zi0zMjcyYzVkMjMyZTMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.L_3xXrmistiAJ9G-BKETpH3wHejd8bnc5uPskHgF-oXefNNJb6OXLisX0gdrPJe33dVl0w84N6nXB_EOtbc0yvGwN9my60PS08smoGiz2lxJ-x0R8EtvI8lNKMWnc7R8Kmt4I_3aFUQs3XIL2M4Kfnb3wCFu-OaqRwpyi2qkxTBMAhdWckUUt1OgzYklf96W2wfpcpYEXoIK1qVyfq8l9zJyjZ8HCX4lHbEmHh1h-Mxng7lRPnGbgi9tFdZzsm5mB4xPIC6RWnBmkXBGL2gZcCdhUE2eidkWBlN5DfbF_qKzgyC-qrY4IB1WzkyUgigKczzh56QiUrlUbTUGMIGl6Q
ca.crt: 1099 bytes
登錄 skooner ,查看某一命名空間資源信息
查看集群信息
關(guān)于 Skooner 就和小伙伴們分享到這個,感興趣的小伙伴可以去試試。
博文參考
https://github.com/presidenten/skooner
作者:山河已無恙
歡迎關(guān)注微信公眾號 :山河已無恙