Kubernetes Dashboard 管理

KubernetesKubernetesIntermediate
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Kubernetes Dashboard 是一个基于 Web 的用户界面,用于简化和监控 Kubernetes 集群的管理。它提供了一种直观的方式来部署和管理应用程序,以及查看和分析集群资源。本实验将指导你如何部署和访问 Kubernetes Dashboard。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicsGroup(["`Basics`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicCommandsGroup(["`Basic Commands`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/AdvancedCommandsGroup(["`Advanced Commands`"]) kubernetes/BasicsGroup -.-> kubernetes/dashboard("`Dashboard`") kubernetes/BasicsGroup -.-> kubernetes/initialization("`Initialization`") kubernetes/BasicCommandsGroup -.-> kubernetes/get("`Get`") kubernetes/BasicCommandsGroup -.-> kubernetes/create("`Create`") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("`Apply`") subgraph Lab Skills kubernetes/dashboard -.-> lab-15042{{"`Kubernetes Dashboard 管理`"}} kubernetes/initialization -.-> lab-15042{{"`Kubernetes Dashboard 管理`"}} kubernetes/get -.-> lab-15042{{"`Kubernetes Dashboard 管理`"}} kubernetes/create -.-> lab-15042{{"`Kubernetes Dashboard 管理`"}} kubernetes/apply -.-> lab-15042{{"`Kubernetes Dashboard 管理`"}} end

启动 Kubernetes 集群

在部署 Kubernetes Dashboard 之前,请确保你的集群正在运行。本实验将使用 Minikube

  1. 打开终端并导航到项目目录:

    cd ~/project
  2. 启动 Minikube 集群:

    minikube start

    Minikube 会创建一个本地 Kubernetes 集群,便于测试 Dashboard 等功能。此过程可能需要几分钟。

  3. 通过检查状态来验证 Minikube 是否正在运行:

    minikube status

    如果集群未运行,请使用 minikube delete 删除集群,然后重新启动 minikube start

部署 Kubernetes Dashboard

Kubernetes Dashboard 默认不包含在集群中。使用官方的部署 YAML 文件来部署它。

  1. 运行以下命令以部署 Dashboard:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

    此命令会为 Dashboard 创建所有必要的资源,包括 Deployment、Service 和基于角色的访问控制(RBAC)设置。

  2. 验证 Dashboard 是否正在运行:

    kubectl get pods -n kubernetes-dashboard

    查找名称为 kubernetes-dashboard 的 Pod,并确保其状态为 Running

  3. 验证 Dashboard 的命名空间:

    kubectl get ns | grep kubernetes-dashboard

    命名空间 kubernetes-dashboard 应该存在。

创建服务账户和角色绑定

默认情况下,Kubernetes Dashboard 限制了访问权限。要以管理员权限登录,你需要创建一个服务账户并将其绑定到集群角色。

  1. 创建一个名为 dashboard-admin.yaml 的文件:

    nano ~/project/dashboard-admin.yaml
  2. 将以下内容添加到文件中:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard

该文件定义了一个服务账户 admin-user,并授予其在集群中的管理员权限。

Ctrl+XY,然后按 Enter 保存文件。

  1. 应用配置:

    kubectl apply -f dashboard-admin.yaml
  2. 验证服务账户和角色绑定:

    kubectl get sa -n kubernetes-dashboard

    你应该会看到列出的 admin-user 服务账户。

    kubectl get clusterrolebinding

    你应该会看到列出的 admin-user 集群角色绑定。

访问 Kubernetes Dashboard

现在 Dashboard 已运行且权限已配置,可以通过浏览器访问它。

  1. 生成登录令牌:

    kubectl -n kubernetes-dashboard create token admin-user

    复制生成的令牌。这将用于登录。

  2. 编辑 Dashboard Service 以将其暴露在 NodePort 上:

    kubectl edit service -n kubernetes-dashboard kubernetes-dashboard

    找到 spec 下的 type 字段,并将其值更改为 NodePort。保存并退出。

    编辑 Dashboard Service NodePort
  3. 查找分配给 Dashboard 的 NodePort:

    kubectl get service -n kubernetes-dashboard
    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    dashboard-metrics-scraper   ClusterIP   10.104.164.172   <none>        8000/TCP        20m
    kubernetes-dashboard        NodePort    10.108.222.153   <none>        443:30587/TCP   20m

    注意 PORT(S) 列下列出的端口号(例如 30587)。这是你将用于访问 Dashboard 的端口。

  4. 获取节点的 IP 地址:

    kubectl get node -o wide
    NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    minikube   Ready    control-plane   35m   v1.26.1   192.168.58.2   <none>        Ubuntu 20.04.5 LTS   5.15.0-56-generic   docker://20.10.23

    INTERNAL-IP 列提供了节点的 IP 地址。

  5. 在桌面上打开 Firefox 浏览器并导航到以下 URL:

    https://<node-ip>:<node-port>

    <node-ip> 替换为节点的 IP 地址,将 <node-port> 替换为步骤 3 中的端口。

    Firefox 浏览器 Kubernetes Dashboard
  6. 如果出现安全警告提示,请选择“高级”并点击“接受风险并继续”。

安全警告继续页面
  1. 在登录页面上,选择 Token 选项,粘贴(右键点击)步骤 1 中的令牌,然后点击“登录”。
Kubernetes Dashboard 登录页面

你现在应该已登录到 Kubernetes Dashboard,可以浏览集群资源并管理工作负载。

Kubernetes Dashboard 界面

总结

在本实验中,你学习了如何:

  1. 将 Kubernetes Dashboard 部署到本地集群。
  2. 创建一个服务账户并将其绑定到集群角色以获取管理员访问权限。
  3. 通过 NodePort 服务在浏览器中访问 Dashboard。

通过 Kubernetes Dashboard,你可以直观地管理应用程序、监控资源并探索集群配置。该工具简化了 Kubernetes 操作,特别是对于从命令行工作流过渡的初学者。继续探索其功能,以充分利用你的 Kubernetes 环境!

您可能感兴趣的其他 Kubernetes 教程