https://www.cloudsavvyit.com/13967/how-to-monitor-kubernetes-with-the-official-dashboard

1. 安装
curl -k https://raw.fastgit.org/kubernetes/dashboard/master/aio/deploy/recommended.yaml -o /tmp/recommended.yaml
sed -e 's|image: kubernetesui|image: 192.168.100.198:5000/kubernetesui|g' -i /tmp/recommended.yaml
kubectl apply -f /tmp/recommended.yaml
curl -k https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.2/components.yaml -o /tmp/components.yaml
sed -e 's|image: k8s.gcr.io|image: 192.168.100.198:5000|g' -i /tmp/components.yaml
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --kubelet-insecure-tls
- --metric-resolution=15s
增加 - --kubelet-insecure-tls
kubectl apply -f /tmp/components.yaml
# kubectl get service -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.101.17.245 <none> 8000/TCP 92s
kubernetes-dashboard ClusterIP 10.111.184.225 <none> 443/TCP 92s
# kubectl get pods -n kubernetes-dashboard -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dashboard-metrics-scraper-69f5454dfd-8bbxh 1/1 Running 0 2m14s 10.240.2.130 vm-197 <none> <none>
kubernetes-dashboard-75d7886db6-79sms 1/1 Running 0 2m14s 10.240.36.4 vm-207 <none> <none>
#
2. 建立admin用户
cat > /tmp/dashboard-admin.yml << EOF
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: admin
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: admin
namespace: kubernetes-dashboard
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kubernetes-dashboard
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
EOF
# kubectl create token admin -n kubernetes-dashboard
1.24版本之前需要执行
# kubectl describe serviceaccount admin -n kubernetes-dashboard
Name: admin
Namespace: kubernetes-dashboard
Labels: addonmanager.kubernetes.io/mode=Reconcile
kubernetes.io/cluster-service=true
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: admin-token-brljz
Tokens: admin-token-brljz
Events: <none>
# kubectl describe secret admin-token-brljz -n kubernetes-dashboard
Name: admin-token-brljz
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin
kubernetes.io/service-account.uid: 3f90cffe-d383-477a-8b9f-dc80c4503b13
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1066 bytes
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImdYTlA4cVU0czkyVTlHUi1vVFFvWlg3Y2tkR3JRYkk1bEVjV3RtV3ZIQlkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi10b2tlbi1icmxqeiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJhZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjNmOTBjZmZlLWQzODMtNDc3YS04YjlmLWRjODBjNDUwM2IxMyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbiJ9.uPlUhUMDQiw8-1HKBMc0BtC9nDhcYW2BY2-pOtsIEE1VP4QJaK5Dfp9JOdDaBwgJfrRTGOo15p2JR4h_YfRnWi-bj-oX28xL9Lcu0vQKERQp4wo0KBcBUAZHzWQ_uSE0XJkQZQnLuLs6WGwwPOsfI8oIkMCvg3expHj7lbGEVUxoC4lWxoFekI9EYDRmQcew5foiQzl9quKZoAgg-GPWjzPdbP6uFJG9BTMaqflYKIxY1e_62IMa_g4MukZ1jseMH8eWmTuWpkIYNcqzdnxSEycQB6gZ6OAnKE5b7urFEWMgc2JqHKPUz2_9o0IL1ovF3R5mTSugsb7Yx9PnMI7S-Q
3. 访问
# kubectl edit service kubernetes-dashboard -n kubernetes-dashboard
type: ClusterIP -> type: LoadBalancer
# kubectl get service -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.106.199.173 <none> 8000/TCP 178m
kubernetes-dashboard LoadBalancer 10.96.83.57 192.168.100.161 443:31854/TCP 178m
https://192.168.100.161
使用token登录
标签:
kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类