GO语言Gin包(JWT使用) - 码农后生 - 博客园 (cnblogs.com)
在Gin中使用JWT做认证以及JWT的续签方案 - 掘金 (juejin.cn)
KubeEdge中的数据结构设计
Device
字段 | 类型 | 说明 |
---|---|---|
ID | string | 设备唯一编码 |
Name | string | 设备名称 |
Description | string | 设别描述 |
State | string | 设备状态 |
LastOnline | DateTime | 最后在线时间 |
Attributes | Map<string,MsgAttr> | 设备属性(上报属性) |
Twin | Map<string,MsgTwin> | 设备孪生属性(可控制属性) |
MsgAttr
字段 | 类型 | 说明 |
---|---|---|
Value | string | 属性名称 |
Optional | bool | 是否可为空 |
Metadata | TypeMetadata | 属性类型元数据 |
MsgTwin
字段 | 类型 | 说明 |
---|---|---|
Expected | TwinValue | 期望值 |
Actual | TwinValue | 实际值 |
Optional | bool | 是否可为空 |
Metadata | TypeMetadata | 属性类型元数据 |
ExpectedVersion | TwinVersion | 期望值版本 |
ActualVersion | TwinVersion | 实际值版本 |
数据库表设计
Device
字段 | 类型 | 说明 |
---|---|---|
ID | 设备实例唯一ID | |
Name | 设备实例名称 | |
Description | 设备描述 | |
State | 设备状态 | |
LastOnline | 最后在线时间 |
DeviceAttr
字段 | 类型 | 说明 |
---|---|---|
ID | 属性实例唯一ID | |
DeviceId | 设备实例唯一ID | |
Name | 设备名称 | |
Description | 设备描述 | |
Value | 设备属性值 | |
Optional | bool | 是否可空 |
AttrType | 属性类型 | |
Metadata | 属性元数据 |
DeviceTwin
字段 | 类型 | 说明 |
---|---|---|
ID | ||
DeviceID | ||
Name | ||
Description | ||
Expected | ||
Actual | ||
ExpectedMeta | ||
ActualMeta | ||
ExpectedVersion | ||
ActualVersion | ||
Optional | ||
AttrType | ||
Metadata |
DEVICE
字段 | 类型 | 说明 |
---|---|---|
ID | int | 自增ID |
SN | varchar(20) | 设备唯一编码 |
NAME | varchar(20) | 设备名称 |
MARKED | BOOL | 设备是否标记 |
IP | varchar(15) | 设备IP地址 |
LOCATION | varchar(200) | 设备安装位置 |
DEVICE_ATTR
字段 | 类型 | 说明 |
---|---|---|
ID | int | 自增ID |
KEY | varchar(20) | 属性名 |
CHANNEL | ||
VALUE | int | 属性值 |
DEVICE_ID | int | 属性所属设备ID |
SCALE | int | 缩放倍率,当数值有小数时可用倍率缩放 |
UNIT | varchar(20) | 数值单位 |
DEVICE_STATE
字段 | 类型 | 说明 |
---|---|---|
ID | int | 自增ID |
DEVICE_ID | int | 属性所属设备ID |
PORT | int | 设备接收端口 |
VALUE | int | 数值 |
UNIT | varchar(20) | 数值单位 |
DEVICE_LINKAGE
字段 | 类型 | 说明 |
---|---|---|
ID | int | 自增ID |
CAT | ||
DEVICE_ID | int | 属性所属设备ID |
PORT | int | 设备接收端口 |
TARGET | 联动目标 | |
TRIGGER | 联动触发器 | |
TRIGGER_ALARM | 联动触发告警 | |
ACTION | 联动动作 | |
PARAM | 参数 |
DEVICE_ALARM
字段 | 类型 | 说明 |
---|---|---|
ID | 自增ID | |
APP_ID | 固件ID | |
CAT | ||
REPORTER | ||
PORT | 端口 | |
CODE | 编码 | |
MSG | 消息 | |
ALARM_TYPE | 告警类型 | |
SEVERITY | ||
STATUS | 状态 |
LibVLCSharp版本
1 | <PackageReference Include="LibVLCSharp" version="3.6.6" /> |
现象播放RTSP视频流时在VideoView播放正常,但会弹出一个窗体同时播放,窗体名VLC (Direct3D11 output)
代码如下
1 | public partial class MainWindow : Window |
故障原因
打断点调试发现,Loaded时间执行两次,第一次执行在VideoView播放正常,第二次执行弹出VLC (Direct3D11 output)
窗
解决方法: 控制只初始化和播放一次
1 | public partial class MainWindow : Window |
K3s (≥1.21)默认没有启用 Traefik Dashboard。如果要在 K3s 中启用 Dashborad,我们可以借助 HelmChartConfig 来自定义由 Helm 部署的 Traefik 并启用 Dashboard。
不建议手动编辑
/var/lib/rancher/K3s/server/manifests/traefik.yaml
来修改 Traefik 配置文件,因为 K3s 重启后会覆盖修改的内容。建议通过在
/var/lib/rancher/K3s/server/manifests
中创建一个额外的HelmChartConfig
清单来自定义 Traefik 配置,请参考:http://docs.rancher.cn/docs/K3
1 | cat >> /var/lib/rancher/K3s/server/manifests/traefik-config.yaml << EOF |
K8s 修改 traefik-vlues.yaml 中ingressRoute.dashboard
并应用配置
1 | helm upgrade traefik traefik/traefik \ |
1 | cat >> traefik-dashboard.yaml << EOF |
1 | kubectl apply -f traefik-dashboard.yaml |
访问Dashboard需要在最后加一个/
否则可能出现page not found
1 | # 搭建测试环境 |
HTTP
1 | #whoami-no-tls-ingress-route.yaml |
HTTPS
1 | # 用 openssl 来创建一个自签名的证书 |
1 | # whoami-tls-ingress-route.yaml |
证书生成参考[[K3s证书管理]]
TCP/UDP
默认配置文件下,只有traefik
(9000)、web
(80)、websecure
(443)以及metrics
(9100)开放,如果想要反代MySQL tcp又想自定义端口的话,需要单独在配置文件中进行配置。
1 | apiVersion: traefik.containo.us/v1alpha1 |
TCP Routers与HTTP Routers的routes有所不同:
参考
K3s版本 > v.121(Traefik 2.x)
K3S 中 Traefik v2 安装及采坑纪实 - 知乎 (zhihu.com)
k3s开启traefik的dashboard网页-CSDN博客
Step by Step!教你如何在k3s集群上使用Traefik 2.x - k3s中文社区 - 博客园 (cnblogs.com)
traefik系列之一 | 简介、部署和配置-腾讯云开发者社区-腾讯云 (tencent.com)
还不会Traefik?看这篇文章就够了! - 知乎 (zhihu.com)
k3s 使用 Letsencrypt 和 Traefik 完成 https 入口部署-腾讯云开发者社区-腾讯云 (tencent.com)
[Kubernetes环境Traefik部署与应用 - Tiscs - 博客园 (cnblogs.com)](https://www.cnblogs.com/tiscs/p/notes-k8s-traefik.html#:~:text=安装Traefik 1 配置 Helm Repo helm repo add, … 3 其他准备工作 获取 traefik 服务的负载均衡器地址。 )
Traefik - Kubernetes 配置TCP/HTTP服务-腾讯云开发者社区-腾讯云 (tencent.com)
cert-manager管理内网k8s开发环境证书 - hueidou163 - 博客园 (cnblogs.com)
Kubernetes (K8S)中Traefik路由(ingressRoute)-腾讯云开发者社区-腾讯云 (tencent.com)
Dashboard无法访问问题参考
如何在 K3s 中启用 Traefik Dashborad - RancherLabs - 博客园 (cnblogs.com)
How to Expose and Enable K3s with Traefik Dashboard (thriveread.com)
kubernetes - How to expose traefik v2 dashboard in k3d/k3s via configuration? - Stack Overflow
kubernetes - 云原生 07:改用 K3s,并使用 K3s 内置的 Traefik 做 Ingress 网关 - 小鲜 - SegmentFault 思否