kuboard安裝
這裏需要先安裝完成kubernetes,如果沒有的話,請查看這篇文章kubernetesv1.16安裝
兼容性
kubernetes版本 | kuboard版本 | 兼容性 |
---|---|---|
v1.18 | v1.0.x | 兼容 |
v1.17 | v1.0.x | 兼容 |
v1.16 | v1.0.x | 兼容 |
v1.15 | v1.0.x | 兼容 |
v1.14 | v1.0.x | 兼容 |
v1.13 | v1.0.x | 兼容 |
v1.12 | v1.0.x | 不兼容 |
v1.11 | v1.0.x | 不兼容 |
在線安裝
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml
查看 Kuboard 運行狀態:
kubectl get pods -l k8s.eip.work/name=kuboard -n kube-system
---------------------------------------------------------------------
NAME READY STATUS RESTARTS AGE
kuboard-54c9c4f6cb-6lf88 1/1 Running 0 45s
------------------------------------------------------------------------
獲取管理員token
master 節點上執行此命令
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
----------------------------------------------------------------------
eyJhbGciOiJSUzI1NiIsImtpZCI6IjRWZ3dzQWYzZkxpUldVQ3J2VnZRdWlmb0RIVW1lUDhsUFNsQjNkTUk4eDAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2udC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tdGponZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMjQ3MDgzNjic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.lPZfLHv1om3RZaJdtBMzYQbfPxIbKuDW6rB8_23YuRTKGtTWSogZZf3MP6BEn-GXAgbJ6a6PXhFkLyVr_rB1q8cAvYcOvmxgRD6ha87_Wt5WztyWBBPWzWoxddOu8JI0Zce8PDSaf2bKHQYdkZTD6ZkVPanQJzlaJu5D2Wf7DSSN4C0ysvRlTicVgMJf3Hqx-BuK76Y2xAsNRj87Kl2ZP-WqgYszacRIpToFrzAvGrbiLnZ03G3Q
-----------------------------------------------------------------------
只讀用戶token
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
離線安裝kuboard
- 在可以上網的機器上抓取kuboard鏡像
docker pull eipwork/kuboard:latest
docker images | grep kuboard
// 86eaead8421e 爲上面一個命令查到的imageID
docker save 86eaead8421e > kuboard.tar
之後將kuboard.tar傳輸到kubernetes集羣某一節點上
2. 在 Kubernetes 集羣的某一個節點上執行
docker load < kuboard.tar
docker tag 86eaead8421e eipwork/kuboard:latest
- 準備kuboard.yaml文件
注意需要修改兩個地方:ImagePullPolicy=IfNotPresent 和 nodeName: your-node-name
apiVersion: apps/v1
kind: Deployment
metadata:
name: kuboard
namespace: kube-system
annotations:
k8s.eip.work/displayName: kuboard
k8s.eip.work/ingress: "false"
k8s.eip.work/service: NodePort
k8s.eip.work/workload: kuboard
labels:
k8s.eip.work/layer: monitor
k8s.eip.work/name: kuboard
spec:
replicas: 1
selector:
matchLabels:
k8s.eip.work/layer: monitor
k8s.eip.work/name: kuboard
template:
metadata:
labels:
k8s.eip.work/layer: monitor
k8s.eip.work/name: kuboard
spec:
nodeName: your-node-name #這裏需要修改爲安裝kuboard的主機名
containers:
- name: kuboard
image: eipwork/kuboard:latest
imagePullPolicy: IfNotPresent #修改爲本地有鏡像不從遠端拉取
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: kuboard
namespace: kube-system
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
nodePort: 32567
selector:
k8s.eip.work/layer: monitor
k8s.eip.work/name: kuboard
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kuboard-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kuboard-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kuboard-user
namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kuboard-viewer
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kuboard-viewer
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: kuboard-viewer
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kuboard-viewer:kuboard-minimum-role
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kuboard-minimum-role
subjects:
- kind: ServiceAccount
name: kuboard-viewer
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kuboard-minimum-role
rules:
- apiGroups:
- ''
resources:
- 'namespaces'
- 'nodes'
verbs:
- 'list'
執行命令
kubectl apply -f kuboard-offline.yaml
訪問kuboard
http://節點ip:32567/
將上面的token輸入瀏覽器之後如下: