管理方式
1.集群管理员可通过SSH到集群节点管理集群
2.为了进行可视化管理,就需要结合管理控制台
Optional 1 KubeSphere
可以直接通过KubeSphere很方便的搭建好一个单节点的k8s集群,并且提供web-ui的管理界面。当然我们也可以在现有的k8s集群基础上最小化部署KubeSphere,目前3.3.0只支持到kubernetes v1.22版本,参考官方文档
Optional 2 Dashboard
kubernetes官方工具,需要在集群中单独部署,dashboard即仪表盘,是k8s集群管理的web ui,需要单独部署。
部署dashboard
参考官方文档和github。v1.24版本k8s推荐部署2.6.0最新版本以获得良好支持。
创建NodePort
NodePort可以在dashboard的部署文件中指定,也可以不指定,部署完后通过kubectl编辑修改类型为NodePort(若不指定端口则自动创建,范围30000-32767)。在后续的教程中,如果部署好ingress-controller后,可以通过域名的方式通过80或443端口访问。
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
将type修改为NodePort。
下面是创建ingress的配置文件:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/configuration-snippet: |-
proxy_ssl_server_name on;
proxy_ssl_name $host;
spec:
rules:
- host: dashboard.k8s-app.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
创建登录用户(ServiceAccount)
默认的dashboard角色权限很低,无法管理整个集群的所有资源,需要创建ServiceAccount并绑定cluster-admin角色,生成token后用于登录。注意:k8s的1.24版本重大变化,创建ServiceAccount不再自动生成Secret,如果要通过Secret获取token需要手动创建。
创建ServiceAccount和ClusterRoleBinding
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kubernetes-dashboard
登录方式
1.手动创建Secret
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: dashboard-admin-token
annotations:
kubernetes.io/service-account.name: "dashboard-admin"
namespace: kubernetes-dashboard
EOF
查看secret,复制token登录
kubectl describe secret dashboard-admin-token -n kubernetes-dashboard
2.创建token,使用token登录
kubectl -n kubernetes-dashboard create token dashboard-admin
Optional 3 Others
其它还有很多kubernetes可视化管理工具,这里不再列举。