【四】k8s部署 TDengine集群

k8s部署 TDengine集群

目录

k8s部署 TDengine集群

一、在 Kubernetes 上部署 TDengine 集群

第一步:创建命名空间

第二步:从yaml创建有状态服务 StatefulSet

第三步:配置 Service 服务

二、集群测试


一、在 Kubernetes 上部署 TDengine 集群

本文适用 Kubernetes v1.19 以上版本

为了满足高可用的需求,集群需要满足如下要求:

3个及以上 dnode :TDengine 的同一个 vgroup 中的多个 vnode ,不允许同时分布在一个 dnode ,所以如果创建3副本的数据库,则 dnode 数大于等于3

3个 mnode :mnode 负责整个集群的管理工作,TDengine 默认是一个 mnode。如果这个 mnode 所在的 dnode 掉线,则整个集群不可用。

数据库的3副本:TDengine 的副本配置是数据库级别,所以数据库3副本可满足在3个 dnode 的集群中,任意一个 dnode 下线,都不影响集群的正常使用。如果下线 dnode 个数为2时,此时集群不可用,因为RAFT无法完成选举**

请特别注意startupProbe的配置,在 dnode 的 Pod 掉线一段时间后,再重新启动,这个时候新上线的 dnode 会短暂不可用。如果startupProbe配置过小,Kubernetes 会认为该 Pod 处于不正常的状态,并尝试重启该 Pod,该 dnode 的 Pod 会频繁重启,始终无法恢复到正常状态。

这里我们使用 kuboard 平台部署 TDengine 集群。

第一步:创建命名空间

第二步:从yaml创建有状态服务 StatefulSet

其中创建文件 tdengine.yaml,其中 replicas 定义集群节点的数量为 3。节点时区为中国(Asia/Shanghai),每个节点分配 5G 标准(standard)存储,你也可以根据实际情况进行相应修改。

---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: "tdengine"labels:app: "tdengine"
spec:serviceName: "taosd"replicas: 3updateStrategy:type: RollingUpdateselector:matchLabels:app: "tdengine"template:metadata:name: "tdengine"labels:app: "tdengine"spec:containers:- name: "tdengine"image: "tdengine/tdengine:3.2.3.0"imagePullPolicy: "IfNotPresent"ports:- name: tcp6030protocol: "TCP"containerPort: 6030- name: tcp6041protocol: "TCP"containerPort: 6041env:# POD_NAME for FQDN config- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name# SERVICE_NAME and NAMESPACE for fqdn resolve- name: SERVICE_NAMEvalue: "taosd"- name: STS_NAMEvalue: "tdengine"- name: STS_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace# TZ for timezone settings, we recommend to always set it.- name: TZvalue: "Asia/Shanghai"# Environment variables with prefix TAOS_ will be parsed and converted into corresponding parameter in taos.cfg. For example, serverPort in taos.cfg should be configured by TAOS_SERVER_PORT when using K8S to deploy- name: TAOS_SERVER_PORTvalue: "6030"# Must set if you want a cluster.- name: TAOS_FIRST_EPvalue: "$(STS_NAME)-0.$(SERVICE_NAME).$(STS_NAMESPACE).svc.cluster.local:$(TAOS_SERVER_PORT)"# TAOS_FQND should always be set in k8s env.- name: TAOS_FQDNvalue: "$(POD_NAME).$(SERVICE_NAME).$(STS_NAMESPACE).svc.cluster.local"volumeMounts:- name: taosdatamountPath: /var/lib/taosstartupProbe:exec:command:- taos-checkfailureThreshold: 360periodSeconds: 10readinessProbe:exec:command:- taos-checkinitialDelaySeconds: 5timeoutSeconds: 5000livenessProbe:exec:command:- taos-checkinitialDelaySeconds: 15periodSeconds: 20volumeClaimTemplates:- metadata:name: taosdataspec:accessModes:- "ReadWriteOnce"storageClassName: "standard"resources:requests:storage: "5Gi"

可以看到部署成功如下图所示:

第三步:配置 Service 服务

其中创建了一个 Service 配置文件:taosd-service.yaml,内容如下:

---
apiVersion: v1
kind: Service
metadata:name: "taosd"labels:app: "tdengine"
spec:ports:- name: tcp6030protocol: "TCP"port: 6030- name: tcp6041protocol: "TCP"port: 6041selector:app: "tdengine"

部署成功如下图所示:

二、集群测试

输出如下:

taos> show dnodes

id | endpoint | vnodes | support_vnodes | status | create_time | reboot_time | note | active_code | c_active_code |

=============================================================================================================================================================================================================================================

1 | tdengine-0.ta... | 0 | 16 | ready | 2023-07-19 17:54:18.552 | 2023-07-19 17:54:18.469 | | | |

2 | tdengine-1.ta... | 0 | 16 | ready | 2023-07-19 17:54:37.828 | 2023-07-19 17:54:38.698 | | | |

3 | tdengine-2.ta... | 0 | 16 | ready | 2023-07-19 17:55:01.141 | 2023-07-19 17:55:02.039 | | | |

Query OK, 3 row(s) in set (0.001853s)

查看当前mnode

kubectl exec -it tdengine-1 -n tdengine-test -- taos -s "show mnodes\G"

taos> show mnodes\G

*************************** 1.row ***************************

id: 1

endpoint: tdengine-0.taosd.tdengine-test.svc.cluster.local:6030

role: leader

status: ready

create_time: 2023-07-19 17:54:18.559

reboot_time: 2023-07-19 17:54:19.520

Query OK, 1 row(s) in set (0.001282s)

创建mnode

kubectl exec -it tdengine-0 -n tdengine-test -- taos -s "create mnode on dnode 2"

kubectl exec -it tdengine-0 -n tdengine-test -- taos -s "create mnode on dnode 3"

查看mnode

kubectl exec -it tdengine-1 -n tdengine-test -- taos -s "show mnodes\G"

taos> show mnodes\G

*************************** 1.row ***************************

id: 1

endpoint: tdengine-0.taosd.tdengine-test.svc.cluster.local:6030

role: leader

status: ready

create_time: 2023-07-19 17:54:18.559

reboot_time: 2023-07-20 09:19:36.060

*************************** 2.row ***************************

id: 2

endpoint: tdengine-1.taosd.tdengine-test.svc.cluster.local:6030

role: follower

status: ready

create_time: 2023-07-20 09:22:05.600

reboot_time: 2023-07-20 09:22:12.838

*************************** 3.row ***************************

id: 3

endpoint: tdengine-2.taosd.tdengine-test.svc.cluster.local:6030

role: follower

status: ready

create_time: 2023-07-20 09:22:20.042

reboot_time: 2023-07-20 09:22:23.271

Query OK, 3 row(s) in set (0.003108s)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实习期间git的分枝管理以及最常用的命令

各位找工作实习的友友在工作之前一定要把git的相关知识掌握呀,我实现期间被leader说过关于git规范的相关问题了 目前已更新系列: 当前::实习期间git的分枝管理以及最常用的命令 Redis高级-----持久化AOF、RDB原理 Redis高级---面试总结5种…

Android SPN/PLMN 显示逻辑简介

功能描述 当设备驻网后(运营商网络),会在状态栏、锁屏界面、下拉控制中心显示运营商的名称。 此名称来源有两种: 1、SPN(Service Provider Name) 2、PLMN (Public Land Mobile Name) 功能AOSP默认逻辑SPN提供SIM卡的运营商名称预置在SIM EF中,SIM卡发行运营商名称…

微软九月补丁星期二发现了 79 个漏洞

微软将在2024 年 9 月补丁星期二修复 79 个漏洞。 微软有证据表明,发布的四个漏洞被野外利用和/或公开披露;所有四个漏洞均已在CISA KEV上列出。微软还在修补四个关键的远程代码执行 (RCE) 漏洞。 不同寻常的是,微软本月尚未修补任何浏览器…

AI替代插画师跟设计师?不用焦虑!

一个固定的工作流, 一个训练好的lora模型 输入一段提示词 二三十秒的时间,就能生成一张精致美观有韵味的中秋国风插画 这张不喜欢,改下提示词重新生成一张不一样的。还是二十几秒 同样的插画,你用手绘,从起稿到上…

【Unity】为脚本添加头部注释

1 前言 默认创建的脚本头部是没有注释的,有时候我们想要在创建脚本时在脚本内容的最前面加上一个注释来标注脚本的相关信息,比如创建者、创建时间、描述等等。那么提供有两种实现方式。 2 方法 2.1 修改Unity的脚本Script 打开Unity Hub,找…

【Linux进程】Linux Shell编程实战:构建简易脚本示例与技巧详解

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:Linux “ 登神长阶 ” 🤡往期回顾🤡:暂无 🌹🌹期待您的关注 🌹🌹 ❀Linux进程 📒1. 获取输入&…

俄罗斯方块——C语言实践(Dev-Cpp)

目录 1、创建项目(尽量不使用中文路径) 2、项目复制 3、项目配置 ​1、调整编译器 2、在配置窗口选择参数标签 3、添加头文件路径和库文件路径 4、代码实现 4.1、main.c 4.2、draw.h 4.3、draw.c 4.4、shape.h 4.5、shape.c 4.6、board.h 4.7、board.c 4.8、cont…

iOS - TestFlight使用

做的项目需要给外部人员演示,但是不方便获取对方设备的UDID,于是采用TestFlight 的方式邀请外部测试人员的方式给对方安装测试App,如果方便获取对方设备的UDID,可以使用蒲公英 1.在Xcode中Archive完成后上传App Store Connect之前…

数据结构(2):LinkedList和链表[2]

我们在上一篇文章中着重讨论了单链表的实现。其中我们要注意单链表进行遍历时一步一步走的思想。那么这篇文章我们将继续讨论链表的更多内容,那就让我们开始吧。 1.经典单链表算法题 我们将通过几个经典的题对单链表进行进一步的认识。 (1)反转链表 206. 反转链…

clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)

目录 摘要训练pre-train model的过程将pre-train model应用于下游任务应用(待更新) 论文/项目地址:https://github.com/OpenAI/CLIP 提供了clip的pre-trained model的权重,也可安装使用pre-trained model 摘要 使用标签标注的图…

C++过生日(我给我自己做的生日礼物)

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 引言…

电脑开机速度慢怎么解决?

电脑开机速度慢怎么解决?电脑开机速度慢的原因可以是多方面的,以下是一些常见的原因: 启动项过多: 许多软件在系统启动时会自动启动,导致启动项过多,从而延长了开机时间。过时的驱动程序: 设备…

wpf触发与模板的使用示例:批量生产工具

批量生产工具 <Window x:Class"WpfM20UpdateFW.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressio…

2024年Java后端学习路线

思维导图&#xff1a; 必备知识&#xff1a; Java基础 JavaWeb 数据库&#xff1a;MySql&#xff0c;Redis 开发中间件&#xff1a;Maven &#xff0c;Git &#xff0c;Docker&#xff0c;RabbitMQ 开发框架&#xff1a;SSM&#xff0c;spring boot&#xff0c;mybatis-plus、s…

十一、DMSP/OLS、NPP/VIIRS等夜间灯光数据之GDP空间化——新方法理论介绍

一、前言 之前的空间理论方法是将第一产业GDP和第二、三产业GDP分开,第一产业GDP和耕地面积进行反演,第二、三产业GDP和夜间灯光指数进行拟合,或者干脆不划分产业,就是第一、二、三产业gdp数据和夜间灯指数拟合。之前给大家介绍都是这种,那么现在很多文献提出一种新的做法…

JVM 运行时数据区域

目录 前言 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 前言 首先, java程序在被加载在内存中运行的时候, 会把他自己管理的内存划分为若干个不同的数据区域, 就比如你是一个你是一个快递员, 一堆快递过来需要你分拣, 这个时候, 你就需要根据投放的目…

[产品管理-23]:NPDP新产品开发 - 21 - 产品创新中的市场调研 - 市场调研对创新产品开发的意义

目录 前言&#xff1a; 一、市场调研概述 1.1 客户与市场的区别 1、定义与范围 2、关注焦点 3、作用与影响 4、总结 1.2 销售与市场的区别 1、对象与范围 2、工作方式 3、工作内容 4、目标 5、考核标准 6、在企业运营中的角色 1.3 什么是市场调研 1、市场调研的…

COMDEL电源维修CLX2500康戴尔射频电源维修

美国COMDEL射频电源维修常见型号包括&#xff1a;CLX2750&#xff1b;CLX2500&#xff1b;CLX-600H&#xff1b;CX600AS&#xff1b;CX-5000S&#xff1b;CX-3500S&#xff1b;CX-2500S&#xff1b;CV500&#xff1b;CDX2000等。 Comdel成立于1966年&#xff0c;总部设在马萨诸…

Golang | Leetcode Golang题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…

maya-vray渲染蒙版

要用一个叫vrayMulWrapper的材质球&#xff0c;把alpha Conterbution调到-1&#xff0c;勾选matte surface启用蒙版物体。