目录

Headlamp的安装和使用

概述

最近在公司推行新版本的 Kubernetes 集群,因为需要管理多个集群,虽然公司有平台化的管理工具,但对于接入一些新版本集群,还是需要做各种适配的工作的,但为了提高工作效率,还是需要一个轻量级的 Kubernetes Web UI 来管理集群,之前也有使用过 Rancher 和 Lens 等等,但是这些工具都比较重,而且功能也比较复杂,所以就找到了 Headlamp 这个工具。Headlamp 是一个开源的 Kubernetes Web UI,旨在提供一个现代化的用户界面来管理 Kubernetes 集群。它是一个轻量级的替代品,适用于那些需要一个简单易用的界面的用户。

安装

官网提供了多种方式安装,可以根据实际的场景选择方便的方式来安装。

1
kubectl apply -f https://raw.githubusercontent.com/kinvolk/headlamp/main/kubernetes-headlamp.yaml

登录需要通过 token,因此安装官网提示创建。

1
2
3
kubectl -n kube-system create serviceaccount headlamp-admin
kubectl create clusterrolebinding headlamp-admin --serviceaccount=kube-system:headlamp-admin --clusterrole=cluster-admin
kubectl create token headlamp-admin -n kube-system  

另外 Headlamp 还有一个亮点,就是支持多集群管理,如果你有多个集群,可以通过 Headlamp 来管理多个集群。假设本地有一个包含多个集群信息的 kubeconfig,可以通过下面的方式创建 Secret,然后给 Headlamp 的 Deployment 进行挂载。

1
2
3
kubectl create secret generic kubeconfig-secret \
  --from-file=config=/root/.kube/config \
  -n kube-system

具体的 Deployment 如下,注意 args 部分使用 -kubeconfig=/headlamp/kubeconfig,因为在非 in-cluster 模式的情况下,需要指定 kubeconfig 文件的位置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
kind: Deployment
apiVersion: apps/v1
metadata:
  name: headlamp
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: headlamp
  template:
    metadata:
      labels:
        k8s-app: headlamp
    spec:
      containers:
        - name: headlamp
          image: noah-registry.vip.vip.com/vip/headlamp:latest
          args:
            - "-kubeconfig=/headlamp/kubeconfig"
            - "-plugins-dir=/headlamp/plugins"
          ports:
            - containerPort: 4466
          volumeMounts:
            - name: kubeconfig-volume
              mountPath: /headlamp/kubeconfig
              subPath: config
      nodeSelector:
        'kubernetes.io/os': linux
      volumes:
        - name: kubeconfig-volume
          secret:
            secretName: multikubeconfig-secret
/headlamp%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/img.png

参考资料

  1. headlamp