KitkubeでKubernetesイベントに通知してください


シスコでは、我々のIMのコラボレーションエンジンとしてWebExを使用します.これはチームとして/スラックのコミュニケーション機能と同じです.つは相互作用のためのボットを構築し、Webexチームと通信するAPIを使用することができます.
プラットフォームチームとして、ポッド作成、展開ロールアウト、ポッドエラーなどのイベントが発生したときに興味を持っているパーティに通知します.
あたりを探索するとき、私は大きな範囲に我々の問題を解決するのを助けることができるbotkubeに遭遇しました

建築

ソース:https://www.botkube.io/architecture/

使用方法
完全なFaldged Chatbot -スラック、MatterestとMSチームへの統合
  • Sink -イベントをプッシュするために、使用ケースのためにエラスティックサーチとウェブフックのようなデータストアのために使われます
  • カスタムフィルタ-検証と推奨事項

  • インストール
  • はウェブフックリスナーを準備します
  • クラスタの名前を決定する(任意の文字列: <WEBHOOK_URL> )
  • 設定値を取得および更新する
  • $ wget https://raw.githubusercontent.com/infracloudio/botkube/v0.12.4/helm/botkube/sample-res-config.yaml
    $ mv sample-res-config.yaml /path/to/config.yaml
    $ vi /path/to/config.yaml
    
  • インストール
  • $ helm repo add infracloudio https://infracloudio.github.io/charts
    $ helm repo update
    $ helm install --version v0.12.4 botkube --namespace botkube \
    --set communications.webhook.enabled=true \
    --set communications.webhook.url=<WEBHOOK_URL> \
    --set config.settings.clustername=<CLUSTER_NAME> \
    --set image.repository=infracloudio/botkube \
    --set image.tag=v0.12.4 \
    -f /path/to/config.yaml
    infracloudio/botkube
    
  • インストールを確認します.
  • $ kubectl get-all -n botkube
    NAME                                  NAMESPACE  AGE
    configmap/botkube-configmap           botkube    6d22h
    configmap/kube-root-ca.crt            botkube    6d22h
    pod/botkube-785d6c889-srbzg           botkube    6d22h
    secret/botkube-communication-secret   botkube    6d22h
    secret/botkube-sa-token-btjvj         botkube    6d22h
    secret/default-token-d5s9n            botkube    6d22h
    secret/sh.helm.release.v1.botkube.v1  botkube    6d22h
    serviceaccount/botkube-sa             botkube    6d22h
    serviceaccount/default                botkube    6d22h
    deployment.apps/botkube               botkube    6d22h
    replicaset.apps/botkube-785d6c889     botkube    6d22h
    
    get-allはKREWプラグインです

    用途
    現在、特定のイベントが引き起こされるとき、Webhook URLは適切なJSONペイロードで<CLUSTER_NAME> EDです
    $ kubectl logs -n botkube pod/botkube-785d6c889-srbzg
    ...
    INFO[2022-04-09T13:27:26Z] Registering resource lifecycle informer
    INFO[2022-04-09T13:27:26Z] Adding informer for resource:apps/v1/deployments
    INFO[2022-04-09T13:27:26Z] Adding informer for resource:apps/v1/statefulsets
    INFO[2022-04-09T13:27:26Z] Adding informer for resource:apps/v1/daemonsets
    INFO[2022-04-09T13:27:26Z] Adding informer for resource:v1/nodes
    INFO[2022-04-09T13:27:26Z] Registering kubernetes events informer for types: warning
    INFO[2022-04-09T13:27:26Z] Registering kubernetes events informer for types: normal
    INFO[2022-04-09T13:27:26Z] Registering watcher on configfile /config/resource_config.yaml
    
    ペイロードは次のようになります.
    {
        "meta": {
            "cluster": "macbook-kind",
            "kind": "Deployment",
            "name": "test-dep4",
            "namespace": "default"
        },
        "status": {
            "level": "info",
            "type": "create"
        },
        "summary": "Deployment *default/test-dep4* has been created in *macbook-kind* cluster\n",
        "timestamp": "2022-04-12T00:38:15Z"
    }
    

    結論POSTは、Kubernetesクラスタを管理するための本格的なchatbotを構築し、拡張ポイントを提供するなど、はるかに可能です.チェックアウトしてdocumentation
    kubewatchというもう一つの類似したプロジェクトがあります