kubernetes中dashboard如何安装

发布时间:2021-11-16 11:15:26 作者:小新
来源:亿速云 阅读:185
# Kubernetes中Dashboard如何安装

## 目录
- [前言](#前言)
- [Dashboard简介](#dashboard简介)
- [安装准备](#安装准备)
  - [环境要求](#环境要求)
  - [工具准备](#工具准备)
- [安装Dashboard](#安装dashboard)
  - [通过kubectl安装](#通过kubectl安装)
  - [通过Helm安装](#通过helm安装)
- [配置访问权限](#配置访问权限)
  - [创建管理员账户](#创建管理员账户)
  - [获取访问令牌](#获取访问令牌)
- [访问Dashboard](#访问dashboard)
  - [本地端口转发](#本地端口转发)
  - [Ingress暴露服务](#ingress暴露服务)
  - [NodePort方式](#nodeport方式)
- [安全配置](#安全配置)
  - [启用HTTPS](#启用https)
  - [配置RBAC](#配置rbac)
- [常见问题排查](#常见问题排查)
- [最佳实践](#最佳实践)
- [总结](#总结)

## 前言

Kubernetes Dashboard是Kubernetes官方提供的Web用户界面,用于可视化管理和监控Kubernetes集群。本文将详细介绍如何在不同环境中安装和配置Dashboard,并解决常见问题。

## Dashboard简介

Kubernetes Dashboard提供以下核心功能:
- 查看集群资源使用情况
- 部署和管理应用程序
- 故障排查和日志查看
- 资源创建和编辑

## 安装准备

### 环境要求

- 运行中的Kubernetes集群(v1.16+)
- `kubectl`已配置并可以访问集群
- 集群有足够的资源(建议至少2CPU/4GB内存)

### 工具准备

```bash
# 验证kubectl配置
kubectl cluster-info

# 检查Kubernetes版本
kubectl version --short

安装Dashboard

通过kubectl安装

这是官方推荐的安装方式:

# 安装最新版Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

# 验证安装
kubectl get pods -n kubernetes-dashboard --watch

安装的资源包括: - Deployment - Service - ServiceAccount - Secret - Role/RoleBinding - ClusterRole/ClusterRoleBinding

通过Helm安装

如需使用Helm安装:

# 添加仓库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/

# 安装Chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \
  --namespace kubernetes-dashboard \
  --create-namespace \
  --set=extraArgs[0]="--enable-skip-login" \
  --set=service.type=NodePort

配置访问权限

创建管理员账户

创建admin-user.yaml文件:

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

应用配置:

kubectl apply -f admin-user.yaml

获取访问令牌

kubectl -n kubernetes-dashboard create token admin-user

输出示例:

eyJhbGciOiJSUzI1NiIsImtpZCI6Il...

访问Dashboard

本地端口转发

kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8443:443 --address 0.0.0.0

访问:https://localhost:8443

Ingress暴露服务

示例Ingress配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
  ingressClassName: nginx
  rules:
  - host: dashboard.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443

NodePort方式

修改Service配置:

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

type: ClusterIP改为type: NodePort

安全配置

启用HTTPS

Dashboard默认使用自签名证书,如需替换:

# 创建包含证书的Secret
kubectl create secret tls dashboard-tls \
  --cert=path/to/cert.pem \
  --key=path/to/key.pem \
  -n kubernetes-dashboard

# 更新Deployment使用自定义证书
kubectl set env deployment/kubernetes-dashboard \
  -n kubernetes-dashboard \
  --containers="kubernetes-dashboard" \
  ARGS="--tls-cert-file=/tls.crt --tls-key-file=/tls.key"

配置RBAC

最小权限示例:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: read-only
  namespace: default
rules:
- apiGroups: [""]
  resources: ["pods", "services"]
  verbs: ["get", "list", "watch"]

常见问题排查

  1. 无法访问Dashboard

    • 检查服务状态:kubectl get svc -n kubernetes-dashboard
    • 检查Pod日志:kubectl logs -n kubernetes-dashboard <pod-name>
  2. 令牌无效

    • 确保令牌未过期(默认有效期24小时)
    • 重新生成令牌
  3. 证书错误

    • 浏览器添加例外或使用--insecure标志

最佳实践

  1. 生产环境建议

    • 始终启用HTTPS
    • 使用Ingress配合OAuth/OIDC认证
    • 限制访问源IP
  2. 监控集成 “`yaml

    添加Prometheus监控

    ”`

  3. 定期升级

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

总结

Kubernetes Dashboard作为集群管理的可视化工具,通过本文介绍的多种安装方式和安全配置,可以满足从开发到生产的不同需求。建议结合企业实际安全要求,选择最适合的访问控制和认证方式。 “`

这篇文章包含了: 1. 详细的安装步骤(kubectl和Helm两种方式) 2. 多种访问方式配置 3. 安全配置建议 4. 常见问题解决方案 5. 生产环境最佳实践 6. 代码块和配置示例 7. 结构化的目录导航

全文约2900字,采用Markdown格式,可直接用于技术文档发布。

推荐阅读:
  1. kubernetes怎么安装部署Dashboard
  2. kubernetes集群安装指南:dashboard部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes dashboard

上一篇:如何理解jdbc断开的管道

下一篇:Kafka、​Raft、Zookeeper、RocketMq的选举机制有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》