Fork me on GitHub

一、Kubernetes dashboard作用

  • 通过dashboard能够直观了解Kubernetes集群中运行的资源对象
  • 通过dashboard可以直接管理(创建、删除、重启等操作)资源对象

二、获取Kubernetes dashboard资源清单文件

kubectl部署

https://github.com/kubernetes/dashboard/releases

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard
#修改svc,对外暴露nodeport端口
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30000
  selector:
    k8s-app: kubernetes-dashboard

三、生成token

1、创建用户

# 创建 dashboard-admin 用户
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
 
# 绑定 clusterrolebinding
kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

2、创建文件 dashboard-admin-token.yaml

以下是一个Kubernetes Secret 资源的定义,特别是一个关联于服务账户(service account)的令牌。以下是对该资源定义的解释:

  1. apiVersion: Kubernetes API 的版本是 v1

  2. kind: 资源类型是 Secret,用于存储敏感数据如密码、令牌等。

  3. metadata:

    • name: 这个 Secret 的名称是 dashboard-admin-secret
    • namespace: 它位于 kubernetes-dashboard 命名空间。
    • annotations: 使用注释指定与该 Secret 关联的服务账户名称为 dashboard-admin
  4. type: Secret 的类型是 kubernetes.io/service-account-token,这意味着它是一个服务账户令牌。

用于为 Kubernetes dashboard 提供访问权限。

apiVersion: v1
kind: Secret
metadata:
  name: dashboard-admin-secret
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: dashboard-admin
type: kubernetes.io/service-account-token

3、获取token

创建token
kubectl apply -f dashboard-admin-token.yaml
 
获取token
kubectl describe secret dashboard-admin-secret -n kubernetes-dashboard

四、使用metrics-server实现主机资源监控

4.1 获取metrics-server资源清单文件

https://github.com/kubernetes-sigs/metrics-server/releases?page=1

wget  https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml

4.2 修改metrics-server资源清单文件

# vim components.yaml

spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,InternalDNS,ExternalDNS,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls 添加此行内容

#部署
kubectl apply -f components.yaml

4.3 验证及授权

kubectl get pods -n kube-system | grep metr
metrics-server-56cb9b4c64-l87dw            1/1     Running   2 (4d16h ago)    6d22h
metrics-server-56cb9b4c64-rj7sn            1/1     Running   2 (4d16h ago)    6d22h

4.4 查看web界面

posted on 2023-10-07 09:41  anyux  阅读(1047)  评论(0编辑  收藏  举报