
クラウドネイティブなKubernetesクラスター検査ツールで、カスタムOPA、PromQL、システムルールを使用して、アプリケーションの設定ミス、異常なコンポーネント、ノードの問題を検出します。
英語 | 中文
KubeEyeは、Kubernetes専用に設計されたクラウドネイティブクラスタ検査ツールであり、カスタムルールに基づいてKubernetesクラスタ内の問題やリスクを特定できます。
Releasesからインストールパッケージをダウンロードしてください。これにはHelmチャート、デモルール、オフラインインストール用のイメージが含まれています。
VERSION=v1.0.3
wget https://github.com/kubesphere/kubeeye/releases/download/${VERSION}/kubeeye-offline-${VERSION}.tar.gz
tar -zxvf kubeeye-offline-${VERSION}.tar.gz
cd kubeeye-offline-${VERSION}
# オフラインインストールの場合、'images'フォルダ内のイメージをローカルのコンテナレジストリにインポートし、`chart/kubeeye/values.yaml`内のイメージリポジトリを変更してください。
helm upgrade --install kubeeye chart/kubeeye -n kubeeye-system --create-namespace
インストールパッケージ内の
rulesディレクトリにはデモルールが用意されており、必要に応じてカスタマイズできます。
注意: PromQLルールを使用するには、事前にPrometheusのエンドポイントを設定する必要があります。
kubectl apply -f rules
必要に応じて検査プランを設定します。
cat > plan.yaml << EOF
apiVersion: kubeeye.kubesphere.io/v1alpha2
kind: InspectPlan
metadata:
name: inspectplan
spec:
# 検査を実行する計画時間。cron式のみサポートします。例:'*/30 * * * ?'は30分ごとに検査を実行します。
# 1回だけ検査する場合は、このパラメータを削除してください。
schedule: "* */12 * * ?"
# 保持する検査結果の最大数。未入力の場合はすべて保持します。
maxTasks: 10
# 検査プランを一時停止するかどうか。定期検査にのみ適用されます。trueまたはfalse(デフォルトはfalse)。
suspend: false
# 検査のタイムアウト時間。デフォルトは10分。
timeout: 10m
# 検査ルールのリスト。関連する検査ルールを関連付けるために使用します。inspectRule名を入力してください。
# `kubectl get inspectrule`を実行して、クラスタ内の検査ルールを確認してください。
ruleNames:
- name: configmap-inspect-rules
- name: cronjob-inspect-rules
- name: daemonset-inspect-rules
- name: deployment-inspect-rules
- name: event-inspect-rules
- name: job-inspect-rules
- name: node-inspect-rules
- name: pod-inspect-rules
- name: pod-state-inspect-rules
# nodeName: master
# nodeSelector:
# node-role.kubernetes.io/master: ""
# マルチクラスタ検査(現在はKubeSphereでのみマルチクラスタ検査をサポート)
# clusterName:
# - name: host
EOF
kubectl apply -f plan.yaml
# 検査レポートダウンロード用の検査結果名を表示します。
kubectl get inspectresult
## kubeeye-apiserverサービスのアドレスとポートを取得します。
kubectl get svc -n kubeeye-system kubeeye-apiserver -o custom-columns=CLUSTER-IP:.spec.clusterIP,PORT:.spec.ports[*].port
## 検査レポートをダウンロードします。< >は実際の環境から取得した情報に置き換えてください。
curl http://<svc-ip>:9090/kapis/kubeeye.kubesphere.io/v1alpha2/inspectresults/<result name>\?type\=html -o inspectReport.html
## ダウンロード後、ブラウザでHTMLファイルを開いて表示できます。
## kubeeye-apiserver用にnodePortタイプのsvcを作成します。
kubectl -n kubeeye-system expose deploy kubeeye-apiserver --port=9090 --type=NodePort --name=ke-apiserver-node-port
## ブラウザで検査レポートURLにアクセスします。< >は実際の環境から取得した情報に置き換えてください。
http://<node address>:<node port>/kapis/kubeeye.kubesphere.io/v1alpha2/inspectresults/<result name>?type=html