
클라우드 네이티브 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`에서 이미지 repo를 수정하십시오.
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분마다 검사를 수행합니다.
# 단일 검사만 필요한 경우 이 매개변수를 제거하십시오.
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