问题标签 [spring-cloud-deployer-kubernetes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Spring Cloud Data Flow + Kubernetes,要求将任务 pod 部署在非默认命名空间上
我有一个工作正常的设置scdf-server
,kubernetes
它将每个任务部署在同一个默认命名空间的按需 Pod 中,即托管scdf-server
Pod 的命名空间。
现在,我需要在另一个命名空间中部署一个 pod,但我找不到scdf server dashboard
要在给定命名空间中创建的 pod 中使用的参数/属性。有人知道怎么找到吗?我试过spring.cloud.deployer.kubernetes.namespace, deployer.kubernetes.namespace, spring.cloud.deployer.kubernetes.environmentVariables, deployer.<app>.kubernetes.namespace, spring.cloud.dataflow.task.platform.kubernetes.namespace, scheduler.kubernetes.environmentVariables SPRING_CLOUD_SCHEDULER_KUBERNETES_NAMESPACE
......作为“属性”和“参数”文本框......
spring-cloud-stream - 在 Spring Cloud Data Flow 中更改流中的实例数无效
我正在将 SCDF2.2.1.RELEASE
与 Skipper Kubernetes 部署程序一起使用,2.1.2.RELEASE
并且我正面临一种奇怪的行为,我想了解它是否真的是有意的、一个问题或只是一个无功能。
当我部署流时,我最初可以按照以下模式指定每个元素的副本数:
这很有效,因为我指出的实例都部署到了 Kubernetes 中。然后,如果我回到流的定义,我会看到添加了一个新属性,可能源自deployer.<app>.count
我提供的属性:
但是,现在还不清楚如何更新这样的计数,因为如果我尝试将deployer.<appName>.count
属性更改为不同的东西,例如1
(不更改其他派生属性),那么 SCDF 会回复错误并且什么也不做:
然后,如果我也更改了派生属性app.<appName>.spring.cloud.stream.instanceCount=1
,则会发生意外行为:SCDF 为特定应用程序生成一个新版本,但仍然使用原始2
实例启动它,完全忽略了新值。如果我检查流的新定义,它会显示未同步的值:
因此,我不确定这是预期行为还是只是尚未实现的问题或事件,因此 SCDF 只是app.<appName>.spring.cloud.stream.instanceCount
将deployer.<appName>.count
. 这很令人困惑。
可能来自 SCDF 团队的任何人都可以阐明这件事,以确定这是否真的是一个问题?
谢谢!
twilio - Cloud Run 错误:容器无法启动。无法启动并监听 PORT 环境变量定义的端口
我正在尝试使用 Cloud 集成 Whatsapp 聊天机器人,但在尝试部署时出现此错误。我是这部分编码的新手,因此将不胜感激。
spring-cloud-dataflow - Forbidden error using paritioned job with Spring Cloud Data Flow on Kubernetes
I want to implement a remote partitioned job using Spring Cloud Data Flow on Kuberentes. The Skipper server is not installed because I just need to run tasks and jobs.
I modified the partitioned batch job sample project using spring-cloud-deployer-kubernetes instead of the local one, as suggested here.
When the master job tries to launch a worker I get the "Forbidden" error below in the pod logs:
In my understanding, it should be correct that the master job pod tries deploy the worker pod, so it seems to be just a permission problem, or is the Skipper server required?
If my assumptions are correct, should I just configure SCDF to assign a spefic service account to the master pod?
spring-batch - 步骤 ExecutionContext 未在 Spring Cloud Data Flow 上使用 Spring Cloud Task 提升
我使用 Spring Cloud Data Flow 和 Spring Cloud Task 成功部署了远程分区作业;安装是基于Kubernetes的,所以我在项目中加入了Spring Cloud Deployer的Kubernetes实现。
但似乎不可能将值从工作人员的步骤执行上下文传播到作业执行上下文。
worker tasklet 将一些数据写入步骤执行上下文,成功保存在“BATCH_STEP_EXECUTION_CONTEXT”表中:
在 Step 构建过程中添加了一个ExecutionPromotionListener :
作业成功完成,作业被正确分区并由 4 个 Kubernetes pod 执行:
但是 BATCH_JOB_EXECUTION_CONTEXT 表中不存在预期值。
Conversley,步骤执行上下文传播适用于非云环境中的分区作业,例如使用TaskExecutorPartitionHandler。
spring-cloud-dataflow - 自动重新启动作业
我的工作可能需要几个小时。由于某种原因(例如内存不足或集群重新平衡),它可能会失败。问题是作业通常要通宵运行,早上需要有人检查,然后手动重新启动它(大部分时间就足够了)。我想知道这个问题是否可以使用 Spring Cloud 数据流来解决。
理想情况下,我希望 SCDF 在工作完成(失败或成功)时发送电子邮件(或调用 webhook),并在失败时重试整个工作。有可能这样做吗?
spring-cloud-dataflow - 执行 shell 命令
我正在使用部署程序属性通过 scdf 仪表板触发任务。我想在创建 pod 之后,在应用程序初始化之前立即执行 shell 命令。
我查看了spring-cloud-dataflow-docs/configuration-kubernetes,但找不到合适的属性。是否可以执行我提到的 shell 命令?
spring-cloud-data-flow 2.5.0 的版本。
谢谢 :)
spring-cloud-deployer-kubernetes - 使用 containerCommand 属性执行多行命令
我想通过设置containerCommand
属性来覆盖 ENTRYPOINT。
通过添加此属性,我可以执行 ls -al 之类的单行命令,并且可以列出目录。
但是,当我想执行下面给出的脚本块时,我遇到了错误。你能帮我执行这个脚本吗?我应该如何格式化脚本?
物业:
错误:/bin/sh: 而 [ !-f /运行/应用程序/令牌]; 做 echo Waiting for Conjur token... && sleep 10; 完毕; ls -l /run/app/token: 没有这样的文件或目录
java - Spring Cloud 数据流:异步部署PartitionHanlder
TL;博士
我使用这个示例构建了一个简单的应用程序,该应用程序使用 Spring Batch(远程分区)和 Spring Cloud 数据流在 Kubernetes 上部署工作 pod。
查看在 Kubernetes 上创建的“partitionedJob”pod 的日志,我看到工作步骤(pod)正在按顺序启动。启动一个工作 pod 所需的时间大约为 10-15 秒(有时会高达 2 分钟,如下所示)。因此,worker pod 会以 10-15 秒的间隔一个接一个地启动。
日志:
在 Kubernetes 上创建 40 个 Pod 大约需要 7-8 分钟。(有时这个数字高达 20 分钟)理想的做法是一次性异步启动所有分区步骤(工作 pod)。
问题:我们如何配置 Spring Cloud Data Flow /Spring Batch 以异步/并行而不是顺序启动工作容器(分区步骤)?如果 SCDF 确实是一口气创建了 40 个分区,为什么实际上 master 作业正在以非常慢的速度逐个创建这些分区?(如日志中所示)。我不认为这是一个基础设施问题,因为我能够使用Task DSL快速启动任务
相关代码:
请注意,我将 gridSize 和 maxWorkers 作为输入参数传递给主步骤(在启动任务时从 SCDF UI)。
java - Spring Cloud 数据流:由于 fabric8io API 导致 504 网关超时
我正在使用 Spring Cloud Data Flow Java Task DSL在 Kubernetes 上启动 Spring Cloud Flow Tasks。在某些情况下,我可以看到调用Task.launch()
导致客户端出现以下异常:
更新:
据我了解,此问题的根本原因是 Task DSL 向 Spring Cloud Data Flow Server 发送了一个请求,后者又向 Kubernetes API 发送了一个请求以部署 pod。Kubernetes API 超时,进而导致 SCDF 向任务 DSL 返回网关错误。
我做了一些深入的挖掘,如果我理解正确的话,Spring Cloud Data Flow Server 使用fabrics8io库在 Kubernetes 上部署任务。例如,查看OpenShift的 fabrics8io 代码,我发现它在OkHTTPClient
内部使用,这似乎是罪魁祸首。这似乎正在使用 rhe 默认超时。当 Kubernetes 集群运行缓慢时,“OkHttpClient”会超时,进而导致数据流服务器的管道损坏,进而导致客户端收到 504。
问题在使用 Spring Cloud Data Flow 时,有没有办法增加OkHTTPClient
内部使用的 fabrics8io 的请求超时?