首页
/ Apache OpenWhisk部署过程中常见问题及解决方案

Apache OpenWhisk部署过程中常见问题及解决方案

2025-06-01 17:10:30作者:宣海椒Queenly

部署失败问题分析

在Apache OpenWhisk的部署过程中,用户经常会遇到各种问题导致部署失败。本文将针对几个典型问题进行深入分析,并提供解决方案。

调度器(Scheduler)启动失败问题

当使用ansible-playbook部署OpenWhisk时,调度器服务(scheduler0)可能无法正常启动,主要表现是连接被拒绝。查看日志会发现如下关键错误信息:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: pureconfig.error.ConfigReaderException: Cannot convert configuration to a org.apache.openwhisk.core.database.elasticsearch.ElasticSearchActivationStoreConfig

这个问题通常是由于ElasticSearch激活存储配置不正确导致的。即使你没有显式配置使用ElasticSearch,默认配置中可能仍然引用了相关组件。

解决方案

方案一:配置ElasticSearch

如果你确实需要使用ElasticSearch作为激活存储后端,需要在ansible/group_vars/all文件中添加以下配置:

db_activation_backend: ElasticSearch
elastic_cluster_name: <集群名称>
elastic_protocol: <协议>
elastic_index_pattern: <索引模式>
elastic_base_volume: <存储卷目录>
elastic_username: <用户名>
elastic_password: <密码>

方案二:使用NoopDurationCheckerProvider

如果你不想部署ElasticSearch,可以修改配置使用NoopDurationCheckerProvider:

  1. 找到common/scala/src/main/resources/reference.conf文件
  2. 将ElasticSearchDurationCheckerProvider替换为NoopDurationCheckerProvider

注意:在替换时务必区分NoopDurationCheckerProvider和NoopDurationChecker,错误的替换会导致新的类型转换错误。

控制器(Controller)连接问题

另一个常见问题是控制器服务无法连接到CouchDB,错误表现为:

Status code was 404 and not [200]: HTTP Error 404: Object Not Found

这通常是因为whisk_local_subjects数据库不存在。解决方案是确保在部署前正确配置了数据库后端:

  1. 确认使用的是CouchDB作为后端
  2. 检查CouchDB服务是否正常运行
  3. 确保数据库连接配置正确

CLI连接问题

部署成功后,使用wsk CLI时可能会遇到连接被拒绝的问题。这通常是由于以下原因:

  1. 使用了错误的API端点 - 使用ansible部署时默认端点是https://localhost
  2. 未正确处理自签名证书 - 需要添加-i参数忽略证书验证

正确的CLI配置应该是:

wsk property set --apihost 'https://localhost' --auth '<认证信息>'
wsk list -i  # 使用-i参数忽略证书验证

总结

Apache OpenWhisk部署过程中常见问题主要集中在服务配置和连接上。通过正确配置后端存储、检查服务依赖关系以及合理使用CLI参数,大多数问题都可以得到解决。对于生产环境,建议使用ElasticSearch作为激活存储后端;对于开发和测试环境,可以使用简化的NoopDurationCheckerProvider配置。

登录后查看全文
热门项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
828
5.49 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
518
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
786
1.58 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
803
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
973
2.29 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
483
313
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.02 K
769
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.27 K
814
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
652
288