Botkube to monitor K8s cluster in Slack

Page content

Install BotKube for k8s and slack

Slack :: Messaging bot for monitoring and debugging Kubernetes clusters

cychong@mini1:~$ helm repo add infracloudio https://infracloudio.github.io/charts
"infracloudio" has been added to your repositories
cychong@mini1:~$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "infracloudio" chart repository
...Successfully got an update from the "myhelmrepo" chart repository
Update Complete. ⎈ Happy Helming!⎈

botkube를 위한 namespace 만들어주기

cychong@mini1:~$ kubectl create ns botkube
namespace/botkube created

Cluster 이름 알아내기

cychong@mini1:~$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.1.100:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

Helm을 이용해서 botkube 설치

cychong@mini1:~$ helm install --version v0.10.0 botkube --namespace botkube  \
>        --set communications.slack.enabled=true   \
> --set communications.slack.channel=notification \
> --set communications.slack.token=<BOTKUBE_TOKEN_ASSIGNED_DURING_BOTKUBE_APP_INSTALL> \
> --set config.settings.clustername=kubernetes   \
> --set config.settings.allowkubectl=true   \
> --set image.repository=infracloudio/botkube   \
> --set image.tag=v0.10.0   \
> infracloudio/botkube
NAME: botkube
LAST DEPLOYED: Fri Sep  4 23:26:16 2020
NAMESPACE: botkube
STATUS: deployed
REVISION: 1
TEST SUITE: None
cychong@mini1:~$ kubectl get pods -n botkube
NAME                     READY   STATUS    RESTARTS   AGE
botkube-8cc75f5f-q6f52   1/1     Running   0          37s

BotKube in slack

일단 @BotKube를 초대한 후

kubectl get commands

Notification for pod deletion

Pod를 임의로 삭제해 봤는데 이렇게 slack으로 이와 관련된 notification이. 받은 메시지 순서를 보면 우선 장애가 발생한 pod를 대체할 새로운 pod를 만들었다는 메시지가 먼저 오고, 그 다음 pod 장애, pod 삭제 등의 메시지가 수신된다. 요거 좀 확인해 봐야 겠다. 궁금하네.. 적어도 Pod Error가 먼저 올 줄 알았는데…

Pod가 복구되었는 지 확인해 보니 새로운 pod 가 잘 동작하고 있다. AGE 3m24s

기본 value에 적힌 권한은 모두 read-only라고 하니 Slack을 이용해서 설정을 변경하려면 value.yaml 파일을 원하는 값으로 만들어 helm 을 다시 적용하면 된다. 일단 오늘은 여기 까지 하고 자야겠다. - Configuration :: Messaging bot for monitoring and debugging Kubernetes clusters 참고.

Reference

#fun-for-life #public