方式1、安装 Kuboard v3 - 内建用户库(实践中采用的此方式)

部署计划

在正式安装 kuboard v3 之前,需做好一个简单的部署计划的设计,在本例中,各组件之间的连接方式,如下图所示:

假设用户通过 http://外网IP:10080 访问 Kuboard v3;

安装在 Kubernetes 中的 Kuboard Agent 通过 内网IP 访问 Kuboard 的 Web 服务端口 10080 和 Kuboard Agent Server 端口 10081。

 

安装 Kuboard 之前,假设:

您已经准备好了一个 Linux 服务器用于安装 Kuboard-V3,并且该机器上的 docker 版本不低于 19.03

用于安装 Kuboard v3.x 的机器已经安装了 docker,并且版本不低于 docker 19.03

您已经有自己的 Kubernetes 集群,并且版本不低于 Kubernetes v1.13

安装:

安装 Kuboard v3.x 版本的指令如下:

sudo docker run -d \

  --restart=unless-stopped \

  --name=kuboard \

  -p 10080:80/tcp \

  -p 10081:10081/udp \

  -p 10081:10081/tcp \

  -e KUBOARD_ENDPOINT="http://kuboard:10080" \

  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \

  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \

  -v /root/kuboard-data:/data \

  eipwork/kuboard:v3

  # 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。

  # 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \

  # Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \

WARNING

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 映射到宿主机的 10080 端口(您可以根据自己的情况选择宿主机的其他端口);

第 5、6 行,将 Kuboard Agent Server 的端口 10081/udp、10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);

第 7 行,指定 KUBOARD_ENDPOINT 为 http://内网IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;

第 8、9 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5、6 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081;

第 10 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径

启动sh start-kuboard.sh出现以下警告(ipv4转发被关闭了,需要开启)

WARNING: IPv4 forwarding is disabled. Networking will not work.

配置/etc/sysctl.conf,添加net.ipv4.ip_forward=1

#重启服务,让配置生效

systemctl restart network

#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功

sysctl net.ipv4.ip_forward

再次启动sh start-kuboard.sh出现/kuboard容器已存在

docker: Error response from daemon: Conflict. The container name "/kuboard" is already in use by container "f5c92583afd41ea99b95e4977cb44b9bc46c8b6a7a3b0bf4ef2dc24edece37cb". You have to remove (or rename) that container to be able to reuse that name.

查看容器:docker ps

停止容器(kuboard):docker stop

删除容器(kuboard): docker rm

再次启动:sh start-kuboard.sh

访问 Kuboard v3.x

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

用户名: admin

密 码: Kuboard123

浏览器兼容性

请使用 Chrome / FireFox / Safari 等浏览器

不兼容 IE 以及以 IE 为内核的浏览器

方式2、在 K8S 的master节点中安装 Kuboard v3

1)创建storageClassName

vi kuboard-pv-sc.yaml

# vi kuboard-pv-sc.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-kuboard1
spec:
  storageClassName: data-kuboard
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: /data-kuboard1
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-kuboard2
spec:
  storageClassName: data-kuboard
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: /data-kuboard2
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-kuboard3
spec:
  storageClassName: data-kuboard
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: /data-kuboard3
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: data-kuboard
provisioner: fuseim.pri/ifs

2)获取部署 Kuboard 所需的 YAML 文件:

curl -o kuboard-v3.yaml https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

编辑 kuboard-v3.yaml 文件中的配置,该部署文件中,有两处配置必须修改:

KUBOARD_ENDPOINT

---

apiVersion: v1

kind: ConfigMap

metadata:

  name: kuboard-v3-config

  namespace: kuboard

data:

  # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-built-in.html

  # [common]

  KUBOARD_ENDPOINT: 'http://your-node-ip-address:30080'

  KUBOARD_AGENT_SERVER_UDP_PORT: '30081'

  KUBOARD_AGENT_SERVER_TCP_PORT: '30081'

storageClassName

  volumeClaimTemplates:

  - metadata:

      name: data

    spec:

      # 请填写一个有效的 StorageClass name

      storageClassName: data-kuboard

      accessModes: [ "ReadWriteMany" ]

      resources:

        requests:

          storage: 5Gi

3) 创建kuboard-v3

kubectl apply -f kuboard-pv-sc.yaml

kubectl apply -f kuboard-v3.yaml

登录kuboard后创建集群,输入名称和描述,其他默认

出现下方导入集群的信息:

curl -k 'http://kuboard:10080/kuboard-api/cluster/msp-k8s/kind/KubernetesCluster/msp-k8s/resource/installAgentToKubernetes?token=BpLnfgDsc2WD8F2qNfHK5a84jjJkwzDk' > kuboard-agent.yaml

kubectl apply -f ./kuboard-agent.yaml

在k8s集群的master节点上执行上面的命令,就可完成注册

Logo

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

更多推荐