dapr问题整理

本文整理了使用dapr使用过程中的一些问题以及解决方案。

1、dapr-sidecar-injector服务报错

现象:

service account 'xxxxx' not on the list of allowed controller accounts

解决方案

2、服务调用报错

现象:

contains value with non-printable ASCII characters

原因:http2.0禁止header中包含非Ascii码字符

解决方案:去掉中文字符

3、服务调用报错

现象:

rpc error: code = Internal desc = fail to invoke, id: mysql-proxyv2.mysql-proxy, err: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4656723 vs. 4194304)

原因:传出超过默认4M

解决方案:

3.1、调整 internal grpc -> internal grpc 传输限制

dapr.io/http-max-request-size: "100"

3.2、调整 application->daprd 传输限制

因为我用的是dapr-go-sdk,修改 github.com/dapr/go-sdk/client/invoke.go

resp, err := c.protoClient.InvokeService(c.withAuthToken(ctx), req, grpc.MaxCallSendMsgSize(math.MaxInt), grpc.MaxCallRecvMsgSize(math.MaxInt))

4、部署ha mode导致dapr-placement pending

dapr 配置ha mode导致dapr-placement pending_Dinoland的博客-CSDN博客

5、httpPipeline和appHttpPipeline使用混淆

Dapr中的`appHttpPipeline`和`httpPipeline`都是管道(pipeline)的概念,但是它们的作用和使用场景不同。  

`appHttpPipeline`是应用程序级别的管道,它用于处理应用程序接收到的HTTP请求。在Dapr中,每个应用程序都可以定义自己的`appHttpPipeline`,并且可以通过配置文件或代码来自定义管道中的各个中间件。应用程序可以使用`appHttpPipeline`来处理HTTP请求的身份验证、授权、请求转发等功能。  

`httpPipeline`是Dapr运行时级别的管道,它用于处理Dapr组件之间的通信。在Dapr中,每个组件都可以定义自己的`httpPipeline`,并且可以通过配置文件或代码来自定义管道中的各个中间件。组件可以使用`httpPipeline`来处理组件之间的请求、响应、错误等信息。  

因此,`appHttpPipeline`和`httpPipeline`的区别在于它们的作用范围不同:`appHttpPipeline`用于应用程序级别的HTTP请求处理,而`httpPipeline`用于Dapr组件之间的通信处理。

6、使用helm升级报错(dapr v1.11.1 -> v1.12.0)

现象:

# 更新指令
helm upgrade dapr ./charts/dapr -f dapr_charts.yaml --namespace dapr --wait

# 报错信息
Error: UPGRADE FAILED: error validating "": error validating data: [ValidationError(Configuration.spec.mtls): unknown field "controlPlaneTrustDomain" in io.dapr.v1alpha1.Configuration.spec.mtls, ValidationError(Configuration.spec.mtls): unknown field "sentryAddress" in io.dapr.v1alpha1.Configuration.spec.mtls]

原因:针对于dapr在k8s中的crd需要重新定义

解决方案:

kubectl replace -f charts/dapr/crds/configuration.yaml --force

7、上传文件超过16M创建临时文件权限问题

dapr报错:cannot read multipart/form-data body: open /tmp/multipart-xxxxx: read-only file system-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值