使用两台服务器部署集群thingsboard
时间: 2025-05-17 14:27:50 浏览: 43
### 部署 ThingsBoard 集群到两台服务器
#### 1. 环境准备
为了成功部署 ThingsBoard 集群,需要先准备好基础环境。通常情况下,建议使用 Linux CentOS 7.9 或更高版本的操作系统[^3]。
以下是具体的准备工作:
- **操作系统安装**:在两台服务器上分别安装 CentOS 7.9 操作系统。
- **角色分配**:其中一台设置为主节点(Master 节点),另一台设置为工作节点(Node 节点)[^2]。
#### 2. Kubernetes 集群初始化
Kubernetes 是一种容器编排工具,可以用来管理 ThingsBoard 的集群化运行。以下是具体操作:
##### 主节点和工作节点通用命令
这些命令需要在主节点和工作节点上均执行:
```bash
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
```
##### 主节点专用命令
仅需在主节点上执行以下命令来初始化 Kubernetes 集群:
```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
##### 工作节点加入集群
获取 `kubeadm join` 命令并将其复制到工作节点上执行。此命令可以通过以下方式获得:
```bash
kubeadm token create --print-join-command
```
将返回的命令粘贴至工作节点终端即可完成加入过程。
#### 3. 安装 Docker 和 Helm
Docker 是容器引擎,Helm 则是用来简化 Kubernetes 应用程序部署的包管理器。两者都需要被正确安装。
##### 安装 Docker
在所有节点上执行以下命令以安装 Docker:
```bash
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl start docker && systemctl enable docker
```
##### 安装 Helm
同样,在所有节点上执行以下命令以安装 Helm:
```bash
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
apt-get update
apt-get install helm
```
#### 4. 使用 Helm 部署 ThingsBoard
通过 Helm Chart 可以快速部署 ThingsBoard 平台。以下是详细的步骤:
##### 添加 ThingsBoard Helm Repository
在主节点上执行以下命令以添加官方仓库:
```bash
helm repo add thingsboard https://thingsboard.io/docs/user-guide/install/helm/
helm repo update
```
##### 创建命名空间
创建一个新的命名空间用于隔离 ThingsBoard 的资源:
```bash
kubectl create namespace thingsboard
```
##### 配置 Values 文件
下载默认的 values.yaml 文件并根据需求修改参数:
```bash
wget https://github.com/thingsboard/thingsboard-edge/raw/master/docker/helm/values.yaml
vi values.yaml
```
主要调整的内容可能包括数据库连接字符串、存储路径以及外部访问端口等。
##### 执行安装
最后一步是在 Kubernetes 中实际启动 ThingsBoard 实例:
```bash
helm install my-thingsboard thingsboard/thingsboard \
--namespace thingsboard \
-f ./values.yaml
```
等待几分钟直到所有的 Pod 运行正常,可通过以下命令查看状态:
```bash
kubectl get pods -n thingsboard
```
---
### 总结
以上方法描述了如何利用 Kubernetes 在两台服务器之间实现 ThingsBoard 的高可用性和可扩展性部署方案。整个过程中涉及到了 K8S 集群搭建、Docker/Helm 工具链引入以及最终应用层面上线等内容。
阅读全文
相关推荐













