当前位置: 首页 > 科技观察

以对话方式管理您的Kubernetes集群

时间:2023-03-17 18:54:50 科技观察

BotKubeBotKube是一种用于监控和调试Kubernetes集群的消息传递工具。BotKube可以与Slack、Mattermost或MicrosoftTeams等多个消息传递平台集成,以帮助您监控Kubernetes集群、调试关键部署,并通过对Kubernetes资源运行检查来提供标准实践建议。安装BotKube1,本文使用slack作为消息接收平台,需要自己注册slack,获取Accesstokenxoxb-2169032185141-2256603089394-qeLWxe0sUtwfdlwnk6VWbw112,将BotKube用户添加到Slack频道,将BotKube应用安装到你的Slack工作空间后,您将看到在您的工作区中添加了一个名为“BotKube”的新机器人用户。将机器人添加到您要从中接收通知的Slack频道。(在频道中邀请@BotKube即可添加)3.使用helm安装BotKube到kubernrtes集群helmrepoaddinfracloudhttps://infracloud.github.io/chartshelmrepoupdate请自行替换<>中的信息:helminstall--versionv0.12.1botkube--namespacebotkube\--setcommunications.slack.enabled=true\--setcommunications.slack.channel=\--setcommunications.slack.token=\--setconfig.settings.clustername=\--setconfig.settings.kubectl.enabled=\--setimage.repository=infracloud/botkube\--setimage.tag=v0.12.1\infracloud/botkube-SLACK_CHANNEL_NAME是要添加的通道名称@BotKube-SLACK_API_TOKEN_FOR_THE_BOT是将BotKube应用程序安装到Slack工作空间后收到的令牌-CLUSTER_NAME是传入消息中设置的集群名称-ALLOW_KUBECTL设置为true以允许BotKube在集群上执行kubectl命令4.查看安装信息#helmlist-nbotkubeNAMAMESPACEREVISIONUPDATEDSTATUSCHARTAPPVERSIONbotkubebotkube12021-07-0910:41:35.813245746+0800CST已部署botkube-v0.12.1v0.12.1#kubectlgetall-nbotkubeNAMEREADYSTATUSRESTARTSAGEpod/botkube-747ff4dc5d-795hz1/1Running02d22hNAMEREADYUP-TO-DATEAVAILABLEAGEdeployment.apps/botkube1/1112d22hNAMEDESIREDCURRENTREADYAGEreplicaset.apps/botkube-747ff4dc5d1112d22h5、如果你需要修改配置,可以更新botkube-configmap,默认设置如下recommendations:trueresources:-events:-create-delete-errorname:v1/podsnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/servicesnamespaces:ignore:-nullinclude:-all-events:-create-update-delete-errorname:apps/v1/deploymentsnamespaces:ignore:-nullinclude:-allupdateSetting:fields:-spec.template.spec.containers[*].image-status.availableReplicasincludeDiff:true-events:-create-update-delete-errorname:apps/v1/statefulsetsnamespaces:ignore:-nullinclude:-allupdateSetting:fields:-spec.template.spec.containers[*].image-status.readyReplicasincludeDiff:true-events:-create-delete-errorname:networking.k8s.io/v1beta1/ingressesnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/nodesnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/namespacesnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/persistentvolumesnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/persistentvolumeclaimsnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:v1/configmapsnamespaces:ignore:-nullinclude:-all-events:-create-update-delete-errorname:apps/v1/daemonsetsnamespaces:ignore:-nullinclude:-allupdateSetting:fields:-spec.template.spec.containers[*].image-status.numberReadyincludeDiff:true-events:-create-update-delete-errorname:batch/v1/jobsnamespaces:ignore:-nullinclude:-allupdateSetting:fields:-spec.template.spec.containers[*].image-status.conditions[*].typeincludeDiff:true-events:-create-delete-errorname:rbac.authorization.k8s.io/v1/rolesnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:rbac.authorization.k8s.io/v1/rolebindingsnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:rbac.authorization.k8s.io/v1/clusterrolebindingsnamespaces:ignore:-nullinclude:-all-events:-create-delete-errorname:rbac.authorization.k8s.io/v1/clusterrolebindingsnamespaces:ignore:-nullinclude:-allsettings:clustername:k8s-2configwatcher:truekubectl:commands:resources:-deployments-pods-namespaces-daemonsets-statefulsets-storageclasses-nodesverbs:-api-resources-api-versions-cluster-info-describe-diff-explain-get-logs-top-auth-describedefaultNamespace:-default-pro-qaenabled:truerestrictAccess:falseupgradeNotifier:truessl:enabled:false使用Slack与BotKube对话1.首先pingBotKube以查看输出。2.检查可用命令。3.以对话的形式执行kubectl命令,比如获取pod,更多的命令可以自己测试...4.验证slack是否收集kubernetes事件信息,比如新建pod。这里我们以nginx为例。这里我直接使用lens连接集群,创建一个名为nginx的deployment,直接create即可,然后来slack可以看到如下信息,即botkube将create事件消息推送到你的slack频道现在删除deployment,再看slack频道,收到删除消息更多有趣的功能,自己体验吧。..