在 pod 生命周期 poststart 挂钩中使用 curl 命令

     2023-03-17     126

关键词:

【中文标题】在 pod 生命周期 poststart 挂钩中使用 curl 命令【英文标题】:using curl command in pod lifecycle poststart hooks 【发布时间】:2021-10-27 00:52:19 【问题描述】:

我正在尝试使用 curl 为我的 pod 添加一个 poststart 挂钩,比如向我的 slack 频道发送一条消息 在 shell 中,命令如下所示

curl -d "text=Hi I am a bot that can post messages to any public channel." -d "channel=C1234567" -H "Authorization: Bearer xoxb-xxxxxxxxxxxxxxxx" -X POST https://slack.com/api/chat.postMessage

在我的 pod 定义中,我尝试过这样的事情

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: curlimages/curl
      env:
        - name: TOKEN
          valueFrom:
            configMapKeyRef:
              name: my-config
              key: token
      command: ["sleep"]
      args: ["3000"]
      lifecycle:
        postStart:
          exec:
            command:
              - "sh"
              - "-c"
              - |
                curl -d "text=Hi going to start." -d "channel=C1234567" -H "Authorization: Bearer $(TOKEN)" -X POST https://slack.com/api/chat.postMessage

与 container->command 不同,它有 args 参数,我可以用引号传递多行命令,但在生命周期->poststart->exec->command 中它不支持 args 参数

我也尝试过,但没有运气

command: ["curl","-d","text=Hi going to start.",....]

但我从来没有收到我的松弛消息

我的问题是,如何在生命周期->poststart->exec->command 中传递带有引号的长 curl 命令?

【问题讨论】:

你已经说了它没有做什么,但你还没有说它在做什么——它执行@987654325 @(或curl)但是payload有问题?或者它不执行它们?还是无法解析 DNS 条目? TLS 配置错误?它会重新启动您的计算机?会发生什么? 谢谢,我已经通过 $TOKEN 解决了这个问题 【参考方案1】:

它终于通过将 () 替换为 来解决 要在命令中使用环境变量,它应该是 $TOKEN

【讨论】:

精品必知pod生命周期(代码片段)

...得到满足。运行主容器(maincontainer)容器启动后钩子(poststart)、容器终止前钩子(prestop)容器的存活性探测(livenessprobe)、就绪性探测(readinessprobe)pod终止过程(通过管理进程提交删除请求并完成操作)五种状态:挂起(P... 查看详情

pod进阶(代码片段)

...initcontainer:初始化容器,可以有多个maincontainer:主容器poststart:在初始化容器执行完后,主容器启动前的操作prestop:结束前的清理操作livenessprobe:在主容器运行是进行存活性检测redinessprobe:就绪状态检测1、Pod的生命周期状态... 查看详情

Kubernetes postStart 生命周期钩子块 CNI

】KubernetespostStart生命周期钩子块CNI【英文标题】:KubernetespostStartlifecyclehookblocksCNI【发布时间】:2019-08-1308:46:53【问题描述】:我的工作负载需要网络连接才能正常启动,我想使用postStartlifecyclehook等待它准备好然后执行某些操... 查看详情

kubernetes容器的优雅启动和终止(代码片段)

...你可以使用两个容器生命周期事件轻松完成此操作:PostStart:这个事件在容器创建后立即执行。事件处理程序不能接受任何参数。然而,postStart处理函数的调用不保证早于容器的入口点(entrypoint)的执行。post... 查看详情

kubernetes容器的优雅启动和终止(代码片段)

...你可以使用两个容器生命周期事件轻松完成此操作:PostStart:这个事件在容器创建后立即执行。事件处理程序不能接受任何参数。然而,postStart处理函数的调用不保证早于容器的入口点(entrypoint)的执行。post... 查看详情

容器的 postStart 挂钩中的多个命令

】容器的postStart挂钩中的多个命令【英文标题】:multiplecommandinpostStarthookofacontainer【发布时间】:2017-01-1902:18:37【问题描述】:在kubernetes部署yaml文件中,是否有一种简单的方法可以在容器的postStart挂钩中运行多个命令?我正在... 查看详情

为啥 Lambda 需要权限才能完成生命周期挂钩?

】为啥Lambda需要权限才能完成生命周期挂钩?【英文标题】:WhydoesLambdaneedpermissionstocompletelifecyclehooks?为什么Lambda需要权限才能完成生命周期挂钩?【发布时间】:2021-07-0302:22:42【问题描述】:来自AWStutorialpage关于配置生命周期... 查看详情

Elastic Beanstalk 自动缩放组生命周期挂钩

】ElasticBeanstalk自动缩放组生命周期挂钩【英文标题】:ElasticBeanstalkAutoscalingGroupLifecycleHooks【发布时间】:2019-12-0222:57:00【问题描述】:我想将生命周期挂钩添加到我的ElasticBeanstalk的自动缩放组。我了解如何通过cloudformation将生... 查看详情

如何以角度创建“ngOnActive”生命周期挂钩?

】如何以角度创建“ngOnActive”生命周期挂钩?【英文标题】:howtocreate"ngOnActive"lifecyclehookinangular?【发布时间】:2019-01-1216:02:13【问题描述】:我希望当我的组件在主页上处于活动状态时调用生命周期挂钩。它的登录页面... 查看详情

如何在最新版本中配置 Detox 生命周期挂钩?

】如何在最新版本中配置Detox生命周期挂钩?【英文标题】:HowtoconfigureDetoxlifecyclehooksinthelatestversion?【发布时间】:2021-03-1512:08:29【问题描述】:我在17.13.2版本中运行detox,jest-circus作为测试运行器。我的主要问题是应用程序在... 查看详情

模板未获取计算属性的内容,但在生命周期挂钩中记录正常

】模板未获取计算属性的内容,但在生命周期挂钩中记录正常【英文标题】:ContentofComputedpropertynotpickedupbythetemplate,butisloggedokinlifecyclehook【发布时间】:2021-09-1903:53:56【问题描述】:我正在创建一个网上商店,您可以选择在不影... 查看详情

自动挂钩到 Activity 生命周期方法的异步任务库

】自动挂钩到Activity生命周期方法的异步任务库【英文标题】:AsynctasklibrarythatautomaticallyhooksintoActivitylifecyclemethods【发布时间】:2016-12-0719:47:24【问题描述】:我正在寻找一个库,它可以简化执行异步操作(网络请求、大量数据... 查看详情

k8s五pod生命周期(代码片段)

目录前言Pod生命周期Pod相位状态值挂起(Pending)运行中(Running)成功(Succeeded)失败(Failed)未知(Unknown)InitContainersInitContianers的作用InitContianers实验特殊说明总结写在后面前言前面我们... 查看详情

如何在asp.netwebapi中的请求的整个生命周期中使类对象可用?(代码片段)

这是我的代码。我已经写了登录来验证令牌,用于有效的令牌返回用户对象。但无法找到让控制器可用的方法。我不想使用Identity。publicclassCustomAuthorize:AuthorizeAttributeprivateconststringAUTH_TOKEN="AuthToken";publicoverrideTaskOnAuthorizationAsync(Ht... 查看详情

pod生命周期与重启策略(代码片段)

文章目录Pod生命周期Pod的创建过程pod的终止过程初始化容器钩子函数重启策略Pod生命周期Pod的创建过程1、用户通过kubectl或其他api客户端提交需要创建的pod信息给apiServer。2、apiServer开始生成pod对象的信息,并将信息存入etcd&#x... 查看详情

pod生命周期与重启策略(代码片段)

文章目录Pod生命周期Pod的创建过程pod的终止过程初始化容器钩子函数重启策略Pod生命周期Pod的创建过程1、用户通过kubectl或其他api客户端提交需要创建的pod信息给apiServer。2、apiServer开始生成pod对象的信息,并将信息存入etcd&#x... 查看详情

单击元素按钮时是不是会调用 Angular 8 中的生命周期挂钩

】单击元素按钮时是不是会调用Angular8中的生命周期挂钩【英文标题】:IsthereaLifecyclehookinangular8thatiscalledwhenanelementsbuttonisclicked单击元素按钮时是否会调用Angular8中的生命周期挂钩【发布时间】:2020-04-2619:38:13【问题描述】:我... 查看详情

如何在 Jest 单元测试中模拟在 `created` Vue 生命周期挂钩中调用的方法,而不使用`shallowMount` 中已弃用的`methods` 参数? [复制]

】如何在Jest单元测试中模拟在`created`Vue生命周期挂钩中调用的方法,而不使用`shallowMount`中已弃用的`methods`参数?[复制]【英文标题】:Howtomockmethodcalledin`created`VuelifecyclehookinJestunittestwithoutusingdeprecated`methods`paramin`shallowMount`?[dupli... 查看详情