文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

以对话的形式管理你的Kubernetes集群

2024-12-03 00:41

关注

安装BotKube

本文使用slack作为消息接收平台,需要自行注册slack,拿到Access token

  1. xoxb-2169032185141-2256603089394-qeLWxe0sUtwfdlwnk6VWbw11 

将 BotKube 用户添加到 Slack 频道

将 BotKube 应用程序安装到您的 Slack 工作区后,您会看到一个名为“BotKube”的新机器人用户添加到您的工作区中。 将该机器人添加到您想要接收通知的 Slack 频道。

(您可以通过在频道中邀请@BotKube 来添加它)

使用helm把BotKube安装到kubernrtes集群

  1. helm repo add infracloudio https://infracloudio.github.io/charts 
  2. helm repo update 
  3.  
  4. 请自行替换<>内的信息: 
  5. helm install --version v0.12.1 botkube --namespace botkube \ 
  6.   --set communications.slack.enabled=true \ 
  7.   --set communications.slack.channel= \ 
  8.   --set communications.slack.token= \ 
  9.   --set config.settings.clustername= \ 
  10.   --set config.settings.kubectl.enabled= \ 
  11.   --set image.repository=infracloudio/botkube \ 
  12.   --set image.tag=v0.12.1 \ 
  13.   infracloudio/botkube 
  14.  
  15.  
  16. - SLACK_CHANNEL_NAME 是添加@BotKube 的频道名称 
  17. - SLACK_API_TOKEN_FOR_THE_BOT 是将 BotKube 应用程序安装到 Slack 工作区后收到的令牌 
  18. - CLUSTER_NAME 是在传入消息中设置的集群名称 
  19. - ALLOW_KUBECTL 设置为 true 以允许 BotKube 在集群上执行 kubectl 命令 

查看安装信息

  1. # helm list -n botkube 
  2. NAME       NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION 
  3. botkube    botkube     1           2021-07-09 10:41:35.813245746 +0800 CST deployed    botkube-v0.12.1 v0.12.1 
  4. # kubectl get all -n botkube 
  5. NAME                           READY   STATUS    RESTARTS   AGE 
  6. pod/botkube-747ff4dc5d-795hz   1/1     Running   0          2d22h 
  7.  
  8. NAME                      READY   UP-TO-DATE   AVAILABLE   AGE 
  9. deployment.apps/botkube   1/1     1            1           2d22h 
  10.  
  11. NAME                                 DESIRED   CURRENT   READY   AGE 
  12. replicaset.apps/botkube-747ff4dc5d   1         1         1       2d22h 

 5、如果你需要修改配置,可以更新botkube-configmap,默认设置如下

  1. recommendations: true 
  2. resources: 
  3. - events: 
  4.   - create 
  5.   - delete 
  6.   - error 
  7.   name: v1/pods 
  8.   namespaces: 
  9.     ignore
  10.     - null 
  11.     include: 
  12.     - all 
  13. - events: 
  14.   - create 
  15.   - delete 
  16.   - error 
  17.   name: v1/services 
  18.   namespaces: 
  19.     ignore
  20.     - null 
  21.     include: 
  22.     - all 
  23. - events: 
  24.   - create 
  25.   - update 
  26.   - delete 
  27.   - error 
  28.   name: apps/v1/deployments 
  29.   namespaces: 
  30.     ignore
  31.     - null 
  32.     include: 
  33.     - all 
  34.   updateSetting: 
  35.     fields: 
  36.     - spec.template.spec.containers[*].image 
  37.     - status.availableReplicas 
  38.     includeDiff: true 
  39. - events: 
  40.   - create 
  41.   - update 
  42.   - delete 
  43.   - error 
  44.   name: apps/v1/statefulsets 
  45.   namespaces: 
  46.     ignore
  47.     - null 
  48.     include: 
  49.     - all 
  50.   updateSetting: 
  51.     fields: 
  52.     - spec.template.spec.containers[*].image 
  53.     - status.readyReplicas 
  54.     includeDiff: true 
  55. - events: 
  56.   - create 
  57.   - delete 
  58.   - error 
  59.   name: networking.k8s.io/v1beta1/ingresses 
  60.   namespaces: 
  61.     ignore
  62.     - null 
  63.     include: 
  64.     - all 
  65. - events: 
  66.   - create 
  67.   - delete 
  68.   - error 
  69.   name: v1/nodes 
  70.   namespaces: 
  71.     ignore
  72.     - null 
  73.     include: 
  74.     - all 
  75. - events: 
  76.   - create 
  77.   - delete 
  78.   - error 
  79.   name: v1/namespaces 
  80.   namespaces: 
  81.     ignore
  82.     - null 
  83.     include: 
  84.     - all 
  85. - events: 
  86.   - create 
  87.   - delete 
  88.   - error 
  89.   name: v1/persistentvolumes 
  90.   namespaces: 
  91.     ignore
  92.     - null 
  93.     include: 
  94.     - all 
  95. - events: 
  96.   - create 
  97.   - delete 
  98.   - error 
  99.   name: v1/persistentvolumeclaims 
  100.   namespaces: 
  101.     ignore
  102.     - null 
  103.     include: 
  104.     - all 
  105. - events: 
  106.   - create 
  107.   - delete 
  108.   - error 
  109.   name: v1/configmaps 
  110.   namespaces: 
  111.     ignore
  112.     - null 
  113.     include: 
  114.     - all 
  115. - events: 
  116.   - create 
  117.   - update 
  118.   - delete 
  119.   - error 
  120.   name: apps/v1/daemonsets 
  121.   namespaces: 
  122.     ignore
  123.     - null 
  124.     include: 
  125.     - all 
  126.   updateSetting: 
  127.     fields: 
  128.     - spec.template.spec.containers[*].image 
  129.     - status.numberReady 
  130.     includeDiff: true 
  131. - events: 
  132.   - create 
  133.   - update 
  134.   - delete 
  135.   - error 
  136.   name: batch/v1/jobs 
  137.   namespaces: 
  138.     ignore
  139.     - null 
  140.     include: 
  141.     - all 
  142.   updateSetting: 
  143.     fields: 
  144.     - spec.template.spec.containers[*].image 
  145.     - status.conditions[*].type 
  146.     includeDiff: true 
  147. - events: 
  148.   - create 
  149.   - delete 
  150.   - error 
  151.   name: rbac.authorization.k8s.io/v1/roles 
  152.   namespaces: 
  153.     ignore
  154.     - null 
  155.     include: 
  156.     - all 
  157. - events: 
  158.   - create 
  159.   - delete 
  160.   - error 
  161.   name: rbac.authorization.k8s.io/v1/rolebindings 
  162.   namespaces: 
  163.     ignore
  164.     - null 
  165.     include: 
  166.     - all 
  167. - events: 
  168.   - create 
  169.   - delete 
  170.   - error 
  171.   name: rbac.authorization.k8s.io/v1/clusterrolebindings 
  172.   namespaces: 
  173.     ignore
  174.     - null 
  175.     include: 
  176.     - all 
  177. - events: 
  178.   - create 
  179.   - delete 
  180.   - error 
  181.   name: rbac.authorization.k8s.io/v1/clusterroles 
  182.   namespaces: 
  183.     ignore
  184.     - null 
  185.     include: 
  186.     - all 
  187. settings: 
  188.   clustername: k8s-2 
  189.   configwatcher: true 
  190.   kubectl: 
  191.     commands: 
  192.       resources: 
  193.       - deployments 
  194.       - pods 
  195.       - namespaces 
  196.       - daemonsets 
  197.       - statefulsets 
  198.       - storageclasses 
  199.       - nodes 
  200.       verbs: 
  201.       - api-resources 
  202.       - api-versions 
  203.       - cluster-info 
  204.       - describe 
  205.       - diff 
  206.       - explain 
  207.       - get 
  208.       - logs 
  209.       - top 
  210.       - auth 
  211.       - describe 
  212.     defaultNamespace: 
  213.     - default 
  214.     - pro 
  215.     - qa 
  216.     enabled: true 
  217.     restrictAccess: false 
  218.   upgradeNotifier: true 
  219. ssl: 
  220.   enabled: false 

使用Slack与BotKube对话

先ping下BotKube,看看输出


查看可使用的命令


以对话的形式执行kubectl命令,例如获取pod,更多命令可以自己测试…


验证slack收集kubernetes事件信息,例如创建一个新的pod,这里以nginx为例

我这里直接用lens连接集群,创建一个名为nginx的deployment,


直接创建即可,然后来到slack可以看到如下信息,即botkube将这个create事件消息推送到了你的slack频道。


现在删除deployment,再看slack频道,收到delete的消息


更多好玩的功能,请自行体会吧。。。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯