参考
https://github.com/kubernetes/dashboard
https://kubernetes.io/zh-cn/docs/home/
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
部署方式比较简单, 这里只是做个记录,方便日后查阅
部署面板
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
#或者
kubectl apply -f https://www.hao.kim/soft/k8s-dashboard-recommended.yaml
kubectl apply -f https://www.hao.kim/soft/k8s-dashboard-auth.yaml
创建token
这个经常用, 因为token有有效期, 会经常需要创建新token
kubectl -n kubernetes-dashboard create token admin-user
删除面板
kubectl delete -f https://www.hao.kim/soft/recommended.yaml
kubectl delete -f https://www.hao.kim/soft/k8s-dashboard-auth.yaml
访问面板
内网访问
内网内可以直接用 clusterIP访问,
名称空间 kubernetes-dashboard
服务名 kubernetes-dashboard
clusterIP 10.105.85.47
你会奇怪我为什么可以访问到集群内网IP, 答案很简单, 添加路由规则
添加路由规则,访问k8s集群内pod
route -p add 10.0.0.0 mask 255.0.0.0 k8s内网IP
#windows11可能需要大写
route -p ADD 10.0.0.0 MASK 255.0.0.0 k8s内网IP
多网卡需要特别指定的情况
#看网络接口,可以核对mac地址
route print
ipconfig /all
这里使用物理链路, 也就是18, 那么我可以使用下面的命令指定网络接口18 来添加路由
route -p add 10.0.0.0 mask 255.0.0.0 k8s内网IP IF 18
#windows11可能需要大写
route -p ADD 10.0.0.0 MASK 255.0.0.0 k8s内网IP IF 18
外网访问
外网访问比较简单
- 需要一个域名, 并进行解析到公网IP
- 需要一个公网地址,并开启80,443,安装ingress并配置使用80,443(根据需要修改)
- k8s里面配置应用路由, 可以用ingress + service 来完成访问
注意: ingress代理面板服务, 因为面板服务是https的, 所以需要在ingress里添加注解,指定后端协议https
ingress.yaml
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: https #这里指定后端协议https
labels:
k8s-app: kubernetes-dashboard
k8s.kuboard.cn/name: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ingressClassName: nginx
rules:
- host: 域名
http:
paths:
- backend:
service:
name: kubernetes-dashboard
port:
number: 443
path: /
pathType: Prefix
tls:
- hosts:
- 域名
secretName: 证书tls和key