当前位置: 首页 > 知识库问答 >
问题:

配置可移动任务以使helm部署对internet连接问题具有容错性的正确方法是什么?

颜云瀚
2023-03-14

我正在使用community.kubernetes.helm轻松地部署helm图表,但我遇到了连接被拒绝的情况,并且不清楚如何最好地配置retries/wait/until。我遇到过这样的情况:helm有时无法与集群通信,下面的一个示例(DNS/IP伪造)表明问题很简单,就是无法连接到集群:

致命:[localhost]:失败!=>{“changed”:false,“command”:“/usr/local/bin/helm--kubeconfig/var/opt/kubeconfig--namespace=gpu-operator list--output=yaml--filter gpu-operator”,“msg”:“执行Helm命令时失败。退出1。\nstdout:\nstderr:error:Kubernetes群集不可达:Get”https://ec2-host/k8s/clusters/c-xrsqn/version?timeout=32s“:dial tcp 192.168.1.1:443:connect:连接被拒绝\n”,“stderr”:“error:Kubernetes群集不可达:Get”https://ec2-host/k8s/clusters“//ec2-host/k8s/clusters/c-xrsqn/version?timeout=32s”:dial tcp 192.168.1.1:443:connection refired\n“,”stderr_lines“:[”错误:Kubernetes群集不可达:Get“https://ec2-host/k8s/clusters/c-xrsqn/version?timeout=32s”:dial tcp 192.168.1.1:443:connection:connection refired“],”stdout“:”“,”stdout_lines“:[]}

在我的经验中,我看到try/retry会起作用。我同意,找出我无法连接到服务的原因将是理想的,但更理想的做法是利用catch all“until”块来解决这一问题,该块尝试该块,直到它工作或在N次尝试后放弃,同时RestN秒。

下面是一个ansible块的示例:

- name: deploy Nvidia GPU Operator
  block:
    - name: deploy gpu operator
      community.kubernetes.helm:
        name: gpu-operator
        chart_ref: "{{ CHARTS_DIR }}/gpu-operator"
        create_namespace: yes
        release_namespace: gpu-operator
        kubeconfig: "{{ STATE_DIR }}/{{ INSTANCE_NAME }}-kubeconfig"
      until: ??? 
      retries: 5
      delay: 3
  when: GPU_NODE is defined

如有任何建议/指示,我将不胜感激。

共有1个答案

缪志新
2023-03-14

我发现,注册输出,然后测试,直到它被定义,就可以重新运行。关键是学习什么是成功的输出。对于helm,它说它将定义一个状态,当它工作正确。所以,这是您需要添加的

  register: _gpu_result
  until: _gpu_result.status is defined
  ignore_errors: true
  retries: 5
  delay: 3

重试/延迟由您决定

 类似资料:
  • 我刚刚遇到了一个奇怪的问题,这是我第一次在服务器上部署spring boot应用程序 像往常一样,我使用java命令java-jar myApp运行应用程序。罐子 过了一会儿,我看到应用程序停止了,没有留下任何错误消息。 所以我不知道问题出在哪里, 可能的原因是java内存不够,所以我将其增加到7GB,因为它有套接字 但问题依然存在 请注意,我没有docker,服务器是Amazon light s

  • 问题内容: 我使用10gen的本机node.js驱动器将mongodb(2.2.2)与node.js一起使用。 起初一切顺利。但是当涉及到并发基准测试部分时,会发生很多错误。频繁进行1000次并发连接/关闭可能会导致mongodb拒绝任何进一步的请求,并出现以下错误: 另外,如果许多客户端在没有显式关闭的情况下关闭,则mongodb将花费几分钟的时间来检测并关闭它们。这也将导致类似的连接问题。(使

  • 我试试看。js与mongodb(2.2.2)一起使用本机节点。js drive by 10gen。 起初一切都很顺利。但在并发基准测试部分,出现了很多错误。频繁连接/关闭1000次并发可能会导致mongodb拒绝任何进一步的请求,错误如下: 此外,如果很多客户端在没有显式关闭的情况下关闭,mongodb需要几分钟来检测并关闭它们。这也会导致类似的连接问题。(使用/var/log/mongodb/m

  • 问题内容: 我正在尝试将log4j配置为使用,但我不断收到中继访问被拒绝的错误。在笔记本电脑上直接从共享托管环境执行代码时,出现此错误。 这是相关的配置: 如果改用,则会收到身份验证错误。我的主机位于DreamHost上,因此如果有人使用DreamHost电子邮件帐户设置了log4j,则可获赠积分。 问题答案: 原来我只是把属性都弄错了。应该:

  • Android-ndk\toolchains\arm-linux-androideabi-4.4.3对于x86,使用路径:Android-ndk\toolchains\x86-4.4.3有关更多信息,请参见位于Android-ndk/docs/standalone-toolchain.html中的NDK文档。 但是,从这个简短的描述中,我不明白什么是工具链兼容性问题。我想知道是否有人能更详细地向我

  • 我在我的网络应用程序中使用spring mongo。当我在Tomcat7中取消部署应用程序时,内存泄漏。我怀疑可能是我没有明确关闭的Mongo对象。我想知道关闭它的正确方式(和位置)。