原文:https://www.toocruel.net/kubernetes-dashboardyong-hu-jie-mian-an-zhuang-shi-yong/

1. 下载kubernetes-dashboard.yaml文件

通过:https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml 地址,能够下载下载kubernetes-dashboard.yaml文件。

2. 编辑kubernetes-dashboard.yaml文件

通过编辑工具打开kubernetes-dashboard.yaml,并在此文件中的Service部分下添加type: NodePort和nodePort: 30001,添加位置如下图所示。
img

因为被墙,需要替换k8s.gcr.io下的镜像地址,如下图所示:

将kubernetes-dashboard-amd64 镜像替换为国内镜像,这里用我自己做的,其实就是翻墙后下载重新上传,地址为:registry.cn-shanghai.aliyuncs.com/9tong-base/kubernetes-dashboard-amd64

修改后的效果,如下图:

这里提供我改后的文件地址:https://gitee.com/toocruel/kubernetes-starter/raw/master/kuernetes-dashboard/kubernetes-dashboard.yaml

3. 通过执行 kubectl create 命令部署Web UI

kubectl create -f  {path}/kubernetes-dashboard.yaml

如果你直接用我编辑好的文件也可以,更简单了

kubectl create -f  https://gitee.com/toocruel/kubernetes-starter/raw/master/kuernetes-dashboard/kubernetes-dashboard.yaml

4. 访问Dashboard用户界面

在Dashboard部署完成后,就可以访问服务。
在浏览器中输入:https://{Master IP}:30001,此处为:https://106.14.46.249:30001/,打开页面如下:
注意,会提示证书不可信,要点信任:

5. 创建一个管理员用户

创建amind-user.yaml文件,文件内容如下:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

也可以直接使用网络文件:https://gitee.com/toocruel/kubernetes-starter/raw/master/kuernetes-dashboard/amind-user.yaml

通过执行如下命令创建admin-user:

kubectl create -f {path}/admin-user.yaml

也可以

kubectl create -f https://gitee.com/toocruel/kubernetes-starter/raw/master/kuernetes-dashboard/amind-user.yaml

6. 获取管理员用户的Token

通过执行如下命令获取系统Token信息:

kubectl describe  secret admin-user --namespace=kube-system


使用该token已经可以登录,接下来是配置文件的方式

7. 添加Token至kubeconfig文件

通过编辑工具打开kubeconfig文件(~/.kube/config),并添加Token

8. 导入kubeconfig文件

在界面中导入kubeconfig文件。

9. 使用Dashboard

在默认情况下,Dashboard显示默认(default)命名空间下的对象,也可以通过命名空间选择器选择其他的命名空间。在Dashboard用户界面中能够显示集群大部分的对象类型。

Dashboard提供的功能

  • 集群管理

    集群管理视图用于对节点、命名空间、持久化存储卷、角色和存储类进行管理。 节点视图显示CPU和内存的使用情况,以及此节点的创建时间和运行状态。 命名空间视图会显示集群中存在哪些命名空间,以及这些命名空间的运行状态。角色视图以列表形式展示集群中存在哪些角色,这些角色的类型和所在的命名空间。 持久化存储卷以列表的方式进行展示,可以看到每一个持久化存储卷的存储总量、访问模式、使用状态等信息;管理员也能够删除和编辑持久化存储卷的YAML文件。

  • 工作负载

    工作负载视图显示部署、副本集、有状态副本集等所有的工作负载类型。在此视图中,各种工作负载会按照各自的类型进行组织。 工作负载的详细信息视图能够显示应用的详细信息和状态信息,以及对象之间的关系。

  • 服务发现和负载均衡

    服务发现视图能够将集群内容的服务暴露给集群外的应用,集群内外的应用可以通过暴露的服务调用应用,外部的应用使用外部的端点,内部的应用使用内部端点。

  • 存储

    存储视图显示被应用用来存储数据的持久化存储卷申明资源。

  • 配置

    配置视图显示集群中应用运行时所使用配置信息,Kubernetes提供了配置字典(ConfigMaps)和秘密字典(Secrets),通过配置视图,能够编辑和管理配置对象,以及查看隐藏的敏感信息。

  • 日志视图

    Pod列表和详细信息页面提供了查看日志视图的链接,通过日志视图不但能够查看Pod的日志信息,也能够查看Pod容器的日志信息。通过Dashboard能够根据向导创建和部署一个容器化的应用,当然也可以通过手工的方式输入指定应用信息,或者通过上传YAML和JSON文件来创建和不受应用。

手动创建应用

通过向导创建和部署容器化应用时,需要提供如下的一些信息:

  • 应用名称(App name 必需): 需要部署的应用的名称。带有此值的标签将会被添加至部署和服务中。在当前的Kubernetes命名空间中,应用名称必须是唯一的。同时,应用名称必须以小写字母开头,以小写字母和数字结尾,可以包含字母、数字和“-”。名称最长为24个字母。

  • 容器组个数(Number of pods 必需): 希望部署的容器组数量。值必须为整数。

  • 描述(Description): 对于应用的描述,将被添加至部署的注释中,并在应用详细信息中显示。

  • 标签(Labels): 应用的默认标签为应用的名称和版本。可以指定其它的标签,这些标签将会被应用至部署、服务、容器组等资源中。

  • 命名空间(Namespace):在同一个物理集群中,Kubernetes支持多个虚拟集群。这些虚拟集群被称为命名空间,通过命名空间可以将资源进行逻辑上的划分。通过下列菜单可以选择已有的命名空间,当然也可以创建新的命名空间。命名空间的名称最大的字符数为63,名词可以使用字母、数字“-”,不能包含大写字母,同时也不能全部使用数字。

  • 镜像拉取保密字典(Image Pull Secret): 如果Docker容器镜像是私有的,则有可能需要保密证书。Dashboard通过下拉菜单提供了所有的可用的保密凭证,也允许创建新的保密字典。保密字典名称必须遵循DNS域名语法,例如:new.image-pull.secret。保密字典的内容必须使用基于base64进行加密的,并在.dockercfg文件中进行指定。保密字典名称最长不能超过253个字符。

  • 环境变量(Environment variables): Kubernetes通过环境变量暴露服务, 可以创建环境变量或者使用环境变量的值将参数传递给命令。环境变量能够被应用用来发现服务,环境变量的值可以通过¥(VAR_NAME)语法被其它变量引用。

上传YAML或JSON文件创建应用

通过编译工具编写容器化应用的YAML和JSON文件,在Dashboard用户界面中通过上传文件创建和部署应用。

10. 参考材料

Logo

开源、云原生的融合云平台

更多推荐