K3s配置内网域名解析
K3s 启动后,会自动帮我们安装好 CoreDNS,不需要手动安装。如果你想修改 CoreDNS 的配置,常用的有两种方式:
- 直接修改 CoreDNS 的 configmap 来调整 CoreDNS 的参数,例如:
kubectl -n kube-system edit configmap coredns
- 修改 K3s manifests 中的 CoreDNS 配置文件,文件位置:
/var/lib/rancher/k3s/server/manifests/coredns.yaml
这两种方式虽然简单,但都有相同的弊端:当你重启 K3s 服务或者升级 K3s 时,由于 K3s 会重新初始化 manifests 中的 CoreDNS 等配置,所以会覆盖掉你通过以上两种方式修改的 coredns 配置。
如果你想修改 K3s 中 CoreDNS 中的配置,并且持久生效的话,可以通过额外的 coredns-custom
configmap 安装到 CoreDNS 容器中,并从包含的文件中导入覆盖和额外的 CoreDNS 配置。
1 | apiVersion: v1 |
ConfigMap 的 name 一定刚要是 coredns-custom
才能够被 coredns 的 deployment 识别并挂载。
在其他Pod中验证CoreDNS配置是否生效
1 | kubectl create deploy nginx --image=nginx:latest # 创建deploy |
Python虚拟环境使用
Golang国内镜像源
Golang实现Async/Await模式
Gorm使用
Golang使用JWT
Golang日志组件logrus使用
K3s部署Registry镜像仓库
KubeEdge设备孪生设计
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 |