V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cclt
V2EX  ›  Kubernetes

Kubernetes 集群管理面板的安装及使用

  •  
  •   cclt · 2023-10-15 11:26:32 +08:00 · 1843 次点击
    这是一个创建于 404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Kubernetes 集群管理面板的安装及使用

    1 、前言

    若海的腾讯云 Lighthouse 组建跨地域 Kubernetes 集群,让我成功体验到了 Kubernetes 集群诸多优点,但是非技术出生的我,长时间使用黑洞洞的命令行终究不是我能接受的,在海哥的帮助下,我成功安装了 Kubernetes 集群管理面板。这里给大家分享,建议大家另外用一台机器,来作为管理机。这样在面板和整个集群就互不干扰了。

    2 、安装

    2.1 准备工作

    在海哥集群安装教程的基础上,安装面板非常简单,下面是具体方法。

    如果购买的腾讯云轻量应用服务器不是 docker 镜像的可以重装成 docker 基础镜像。

    输入图片说明

    如果使用其他服务器没有 docker 可以看这篇文章:原来服务器这么有用-Docker 安装 - 青阳のblog-一个计算机爱好者的个人博客 (hipyt.cn)

    购买并配置 Lighthouse 服务器 Lighthouse 是腾讯云推出的一款轻量应用服务器产品,它提供了高性价比、高可用性、高安全性和高灵活性的云端计算服务。具体信息参阅官方文档: https://cloud.tencent.com/document/product/1207/44361

    为了部署 Kubernetes 集群,我们需要至少 2 台轻量应用服务器,并配置好相关的环境和依赖。购买步骤参见官方文档: https://cloud.tencent.com/document/product/1207/56823 ,操作系统选 Debian 或 Ubuntu 最新版本。

    2.2 登录服务器

    进入腾讯云轻量应用服务器的控制台,点击右上方的 登录 ,使用腾讯云OrcaTerm 登录到服务器(注意图片中标记的两个位置都可以使用)。

    输入图片说明

    点击登录之后将会进入到服务器内部。

    注意使用sudo -i切换到管理员模式。

    输入图片说明

    2.3 面板容器安装

    输入图片说明

    docker run -d \
    --restart=unless-stopped \
    --name=kuboard \
    -p 80:80/tcp \
    -p 10081:10081/tcp \
    -e KUBOARD_ENDPOINT="http://你的 docker 公网 IP:80" \
    -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
    -v /root/kuboard-data:/data \
    eipwork/kuboard:v3
    

    注意

    • KUBOARD_ENDPOINT 参数的作用是,让部署到 Kubernetes 中的 kuboard-agent 知道如何访问 Kuboard Server ;
    • KUBOARD_ENDPOINT 中也可以使用外网 IP ;
    • Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server ;
    • 建议在 KUBOARD_ENDPOINT 中使用域名;
    • 如果使用域名,必须能够通过 DNS 正确解析到该域名,如果直接在宿主机配置 /etc/hosts 文件,将不能正常运行;

    参数解释

    • 建议将此命令保存为一个 shell 脚本,例如 start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;
    • 第 4 行,将 Kuboard Web 端口 80 映射到宿主机的 80 端口(您可以根据自己的情况选择宿主机的其他端口);
    • 第 5 行,将 Kuboard Agent Server 的端口 10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);
    • 第 6 行,指定 KUBOARD_ENDPOINT 为 http://内网 IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;
    • 第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 7 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081"
    • 第 8 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径;

    3 、面板使用

    3.1 面板登录

    在浏览器输入 http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:

    • 用户名: admin
    • 密 码: Kuboard123
    • 登录之后请尽快修改密码。

    浏览器兼容性

    • 请使用 Chrome / FireFox / Safari 等浏览器
    • 不兼容 IE 以及以 IE 为内核的浏览器 3.2 添加集群输入图片说明,直接复制获取 Token 的脚本到主节点,运行之后复制到 Token 内。 注意ApiServer 地址 https://主节点 ip:6443 输入图片说明

    添加成功之后我们就可以在集群概要看到我们的集群情况了。

    输入图片说明

    3.2 应用创建

    输入图片说明

    可以在名称空间内通过 YAML 创建,我这里给一个搭建 emby 的范例大家参考(注意一点 Deployment.yaml 可以理解成容器创建,Service.yaml 理解成端口映射,这样大家没有接触过的可能容易懂一些)。

    Deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: emby-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: emby
      template:
        metadata:
          labels:
            app: emby
        spec:
          containers:
            - name: emby
              image: emby/embyserver:latest
              ports:
                - containerPort: 8096
              volumeMounts:
                - name: emby-config
                  mountPath: /config
                - name: emby-data
                  mountPath: /data
          volumes:
            - name: emby-config
              emptyDir: {}
            - name: emby-data
              emptyDir: {}
    

    Service.yaml:

    apiVersion: v1
    kind: Service
    metadata:
      name: emby-service
    spec:
      selector:
        app: emby
      ports:
        - protocol: TCP
          port: 8096
          targetPort: 8096
      type: LoadBalancer
    

    这个应用中,我运用了 Emby 的官方镜像 emby/embyserver。大家可以根据自己的需求更改镜像标签。

    搭建成功之后大家可以在工作负载中看到。

    输入图片说明

    总结

    这篇文章我在若海的腾讯云 Lighthouse 组建跨地域 Kubernetes 集群基础上给大家带来了 Kubernetes 集群面板的搭建及简单使用教程,希望可以帮助到大家,更多精彩内容请关注我的博客

    5 条回复    2023-10-21 14:35:18 +08:00
    PluginsWorld
        1
    PluginsWorld  
       2023-10-15 20:19:07 +08:00
    感觉这个没有 kubernates-dashboard 方便。我也是在他文章的帮助下,成功获得了我想要的效果。

    你可以对比看看,我简单的截了几个图: https://discuss.plugins-world.cn/comment/kEc9G9yf
    locoz
        2
    locoz  
       2023-10-16 12:46:08 +08:00 via Android
    这 UI 也没多好看,不如直接用 Lens ,还省个部署面板的操作
    hancai
        3
    hancai  
       2023-10-17 18:34:56 +08:00
    运维还是喜欢命令行,之前用 K9S , 现在又换回 kubectl
    wcyl
        4
    wcyl  
       2023-10-21 14:23:03 +08:00
    @PluginsWorld #1 哥 你这个怎么能显示 cpu 和内存的呀
    我是 k3s, 已经有 metric 服务了
    kubernetes-dashboard 直接通过命令安装, 就是不知道怎么让面板读取已有的数据

    ```sh
    helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard
    helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --version 6.0.8 -n kubernetes-dashboard --create-namespace
    ```
    wcyl
        5
    wcyl  
       2023-10-21 14:35:18 +08:00
    已经有了 这样就可以了 `metricsScraper.enabled=true`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 03:06 · PVG 11:06 · LAX 19:06 · JFK 22:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.