kubernetes部署dashboard

kubernetes部署dashboard

1. 简介

Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment、Job、DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。

2. 版本兼容性

k8s和dashboard版本存在兼容性关系,版本配套可以到下面的网页查询:https://github.com/kubernetes/dashboard/releases/

以下是部分配套关系:

Kubernetes version dashboard version 备注
1.18 v2.0.0 完全支持
1.19 v2.0.4 完全支持
1.20 v2.4.0 完全支持
1.21 v2.4.0 完全支持
1.23 v2.5.0 完全支持
1.24 v2.6.0 完全支持
1.25 v2.7.0 完全支持
1.27 v3.0.0-alpha0 完全支持
1.29 kubernetes-dashboard-7.5.0 完全支持

本文使用的k8s版本为1.23,使用dashboard v2.5.0版本部署。

3. 安装

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

如果yaml无法下载,可以手动打开网页拷贝到文件中。以下是v2.5.0版本文件内容。

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Namespace
metadata:
  name: kubernetes-dashboard

---

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard

---

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kubernetes-dashboard
type: Opaque

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-csrf
  namespace: kubernetes-dashboard
type: Opaque
data:
  csrf: ""

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-key-holder
  namespace: kubernetes-dashboard
type: Opaque

---

kind: ConfigMap
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-settings
  namespace: kubernetes-dashboard

---

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
rules:
  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
  - apiGroups: [</
执行 `kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml` 命令后输出信息的含义如下: ```plaintext namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created ``` - `namespace/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的命名空间,用于隔离 Kubernetes Dashboard 相关的资源。 - `serviceaccount/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的服务账户,用于 Kubernetes Dashboard 与集群进行交互。 - `service/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的服务,用于暴露 Kubernetes Dashboard 的应用。 - `secret/kubernetes-dashboard-certs created`:创建了一个名为 `kubernetes-dashboard-certs` 的密钥,用于存储 Kubernetes Dashboard 的证书。 - `secret/kubernetes-dashboard-csrf created`:创建了一个名为 `kubernetes-dashboard-csrf` 的密钥,用于防止跨站请求伪造(CSRF)攻击。 - `secret/kubernetes-dashboard-key-holder created`:创建了一个名为 `kubernetes-dashboard-key-holder` 的密钥,用于存储一些关键信息。 - `configmap/kubernetes-dashboard-settings created`:创建了一个名为 `kubernetes-dashboard-settings` 的配置映射,用于存储 Kubernetes Dashboard 的配置信息。 - `role.rbac.authorization.k8s.io/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的角色,用于定义对命名空间内资源的访问权限。 - `clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的集群角色,用于定义对整个集群资源的访问权限。 - `rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的角色绑定,将服务账户与角色进行绑定。 - `clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的集群角色绑定,将服务账户与集群角色进行绑定。 - `deployment.apps/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的部署,用于管理 Kubernetes Dashboard 的 Pod。 - `service/dashboard-metrics-scraper created`:创建了一个名为 `dashboard-metrics-scraper` 的服务,用于暴露指标收集器的应用。 - `deployment.apps/dashboard-metrics-scraper created`:创建了一个名为 `dashboard-metrics-scraper` 的部署,用于管理指标收集器的 Pod。 ### 后续操作 #### 1. 检查资源状态 使用以下命令检查创建的资源状态: ```bash kubectl get all -n kubernetes-dashboard ``` 确保所有的 Pod 都处于 `Running` 状态。 #### 2. 配置访问方式 可以通过 NodePort 类型的 Service 从外部访问 Kubernetes Dashboard。编辑 `recommended.yaml` 文件,添加 `nodePort` 和 `type: NodePort` 配置: ```yaml --- kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: ports: - port: 443 targetPort: 8443 nodePort: 30002 type: NodePort selector: k8s-app: kubernetes-dashboard ``` 保存修改后,再次应用配置文件: ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml ``` #### 3. 创建访问令牌 为了登录 Kubernetes Dashboard,需要创建一个 Service Account 和对应的令牌。以下是创建 Service Account 和令牌的示例命令: ```bash kubectl create serviceaccount admin-user -n kubernetes-dashboard kubectl create clusterrolebinding admin-user-binding --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user kubectl -n kubernetes-dashboard create token admin-user ``` 复制获取到的令牌,用于登录 Dashboard。 #### 4. 访问 Kubernetes Dashboard 在浏览器中输入 `https://<节点 IP>:30002`(30002 为之前配置的 `nodePort`),打开 Kubernetes Dashboard 登录页面。选择 `Token` 登录方式,粘贴之前获取的令牌,点击 `Sign in` 登录。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值