From bd3514b8b8b623a849840e9813d759e27b123fc1 Mon Sep 17 00:00:00 2001 From: Daxin Wang Date: Tue, 10 May 2022 15:10:51 +0800 Subject: [PATCH 1/5] Update deploy files Signed-off-by: Daxin Wang --- deploy/install.sh | 4 +- deploy/kindling-clusterrolebinding.yml | 18 ++++++++ deploy/kindling-collector-config.yml | 2 +- deploy/kindling-deploy.yml | 13 ------ deploy/kindling-grafana-install.sh | 1 + deploy/kindling-grafana.yaml | 59 ++++++++++++++++++++++++++ deploy/recompile-module.sh | 12 ++++++ deploy/start.sh | 16 ------- deploy/uninstall.sh | 9 ++++ 9 files changed, 102 insertions(+), 32 deletions(-) create mode 100644 deploy/kindling-clusterrolebinding.yml create mode 100644 deploy/kindling-grafana-install.sh create mode 100644 deploy/kindling-grafana.yaml create mode 100644 deploy/recompile-module.sh delete mode 100644 deploy/start.sh create mode 100644 deploy/uninstall.sh diff --git a/deploy/install.sh b/deploy/install.sh index 3f249abdd..083925a63 100644 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -3,7 +3,7 @@ kubectl create ns kindling kubectl create serviceaccount kindling-agent -nkindling kubectl apply -f kindling-clusterrole.yml -kubectl create clusterrolebinding kindling-agent --clusterrole=kindling-agent --serviceaccount=kindling:kindling-agent +kubectl apply -f kindling-clusterrolebinding.yml kubectl create cm kindlingcfg -n kindling --from-file=kindling-collector-config.yml kubectl apply -f kindling-deploy.yml @@ -11,5 +11,5 @@ kubectl apply -f kindling-deploy.yml kubectl apply -f kindling-prometheus-rabc.yml kubectl apply -f kindling-prometheus-service.yml kubectl apply -f kindling-prometheus-servicemonitor.yml - +sleep 5 kubectl get pods -n kindling \ No newline at end of file diff --git a/deploy/kindling-clusterrolebinding.yml b/deploy/kindling-clusterrolebinding.yml new file mode 100644 index 000000000..7a575ca78 --- /dev/null +++ b/deploy/kindling-clusterrolebinding.yml @@ -0,0 +1,18 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + managedFields: + - apiVersion: rbac.authorization.k8s.io/v1 + fieldsType: FieldsV1 + name: kindling-agent + resourceVersion: "15122093" + selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/kindling-agent + uid: 8761e9af-aab2-49d2-be7e-ca4aae974508 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kindling-agent +subjects: +- kind: ServiceAccount + name: kindling-agent + namespace: kindling diff --git a/deploy/kindling-collector-config.yml b/deploy/kindling-collector-config.yml index c4c81902f..cee137a71 100644 --- a/deploy/kindling-collector-config.yml +++ b/deploy/kindling-collector-config.yml @@ -32,7 +32,7 @@ analyzers: networkanalyzer: connect_timeout: 100 # How many seconds to wait until we consider a request as no response. - request_timeout: 1 + request_timeout: 60 # How many milliseconds to wait until we consider a request-response as slow. response_slow_threshold: 500 # Whether enable conntrack module to find pod's ip when calling service diff --git a/deploy/kindling-deploy.yml b/deploy/kindling-deploy.yml index 94e0cf97a..a74f1fef8 100644 --- a/deploy/kindling-deploy.yml +++ b/deploy/kindling-deploy.yml @@ -25,19 +25,6 @@ spec: command: - sh - /pl/post_start.sh - args: - - --v=1 - - --minloglevel=0 - - --log_dir=/pl - - --logtostderr=false - - --stirling_enable_kafka_tracing=false - - --stirling_enable_nats_tracing=false - - --stirling_enable_redis_tracing=false - - --stirling_enable_dns_tracing=false - - --stirling_enable_cass_tracing=false - - --stirling_enable_http_tracing=false - - --stirling_enable_pgsql_tracing=false - - --stirling_enable_mysql_tracing=false command: - /pl/docker-entrypoint.sh resources: diff --git a/deploy/kindling-grafana-install.sh b/deploy/kindling-grafana-install.sh new file mode 100644 index 000000000..b8197773e --- /dev/null +++ b/deploy/kindling-grafana-install.sh @@ -0,0 +1 @@ +kubectl create -f https://k8s-bpf-probes-public.oss-cn-hangzhou.aliyuncs.com/kindling-grafana.yaml -n kindling diff --git a/deploy/kindling-grafana.yaml b/deploy/kindling-grafana.yaml new file mode 100644 index 000000000..b0eafe241 --- /dev/null +++ b/deploy/kindling-grafana.yaml @@ -0,0 +1,59 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: grafana + name: grafana +spec: + selector: + matchLabels: + app: grafana + template: + metadata: + labels: + app: grafana + spec: + containers: + - name: grafana + image: kindlingproject/kindling-grafana:latest + imagePullPolicy: Always + ports: + - containerPort: 3000 + name: http-grafana + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /robots.txt + port: 3000 + scheme: HTTP + initialDelaySeconds: 120 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 2 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 120 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: 3000 + timeoutSeconds: 1 + resources: + requests: + cpu: 250m + memory: 750Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: grafana +spec: + ports: + - port: 3000 + protocol: TCP + targetPort: http-grafana + selector: + app: grafana + type: LoadBalancer diff --git a/deploy/recompile-module.sh b/deploy/recompile-module.sh new file mode 100644 index 000000000..ef036777f --- /dev/null +++ b/deploy/recompile-module.sh @@ -0,0 +1,12 @@ +mkdir rebuild-kindling-agent +cd rebuild-kindling-agent +curl -O https://k8s-bpf-probes-public.oss-cn-hangzhou.aliyuncs.com/2b4b2a107c05bd16a03c12841c6cce1d6404efac.tar.gz +tar -zvxf 2b4b2a107c05bd16a03c12841c6cce1d6404efac.tar.gz +cd agent-libs-2b4b2a107c05bd16a03c12841c6cce1d6404efac +docker pull kindlingproject/kernel-builder:latest +docker run -it -v /usr:/host/usr -v /lib/modules:/host/lib/modules -v $PWD:/source kindlingproject/kernel-builder:latest +cd .. +curl -O https://k8s-bpf-probes-public.oss-cn-hangzhou.aliyuncs.com/recompile-module-Dockerfile +mv -f recompile-module-Dockerfile Dockerfile +docker build -t kindlingproject/kindling-probe:latest-bymyself . + diff --git a/deploy/start.sh b/deploy/start.sh deleted file mode 100644 index 6aef73a12..000000000 --- a/deploy/start.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -kubectl create ns kindling - -kubectl create serviceaccount kindling-agent -nkindling -kubectl apply -f https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-clusterrole.yml -kubectl create clusterrolebinding kindling-agent --clusterrole=kindling-agent --serviceaccount=kindling:kindling-agent -curl -O https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-collector-config.yml -kubectl create cm kindlingcfg -n kindling --from-file=kindling-collector-config.yml -kubectl apply -f https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-deploy.yml - -# configure Prometheus -kubectl apply -f https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-prometheus-rabc.yml -kubectl apply -f https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-prometheus-service.yml -kubectl apply -f https://raw.githubusercontent.com/Kindling-project/kindling/main/deploy/kindling-prometheus-servicemonitor.yml - -kubectl get pods -n kindling \ No newline at end of file diff --git a/deploy/uninstall.sh b/deploy/uninstall.sh new file mode 100644 index 000000000..3a0b1524a --- /dev/null +++ b/deploy/uninstall.sh @@ -0,0 +1,9 @@ +kubectl delete -f kindling-prometheus-servicemonitor.yml +kubectl delete -f kindling-prometheus-service.yml +kubectl delete -f kindling-prometheus-rabc.yml + +kubectl delete -f kindling-deploy.yml +kubectl delete cm kindlingcfg -n kindling +kubectl delete -f kindling-clusterrolebinding.yml +kubectl delete -f kindling-clusterrole.yml +kubectl delete serviceaccount kindling-agent -nkindling From 8347c1eb8059bdefa32d4f5d70e16aa8b4e33970 Mon Sep 17 00:00:00 2001 From: Daxin Wang Date: Tue, 10 May 2022 15:41:48 +0800 Subject: [PATCH 2/5] Add README and update files Signed-off-by: Daxin Wang --- deploy/README.md | 11 +++++++++++ deploy/{ => agent}/install.sh | 0 deploy/{ => agent}/kindling-clusterrole.yml | 0 deploy/{ => agent}/kindling-clusterrolebinding.yml | 0 deploy/{ => agent}/kindling-collector-config.yml | 0 deploy/{ => agent}/kindling-deploy.yml | 0 deploy/{ => agent}/kindling-prometheus-rabc.yml | 0 deploy/{ => agent}/kindling-prometheus-service.yml | 0 .../kindling-prometheus-servicemonitor.yml | 0 deploy/{ => agent}/uninstall.sh | 0 deploy/{ => grafana}/kindling-grafana-install.sh | 0 deploy/{ => grafana}/kindling-grafana.yaml | 0 deploy/recompile-probe/recompile-module-Dockerfile | 2 ++ deploy/{ => recompile-probe}/recompile-module.sh | 0 14 files changed, 13 insertions(+) create mode 100644 deploy/README.md rename deploy/{ => agent}/install.sh (100%) rename deploy/{ => agent}/kindling-clusterrole.yml (100%) rename deploy/{ => agent}/kindling-clusterrolebinding.yml (100%) rename deploy/{ => agent}/kindling-collector-config.yml (100%) rename deploy/{ => agent}/kindling-deploy.yml (100%) rename deploy/{ => agent}/kindling-prometheus-rabc.yml (100%) rename deploy/{ => agent}/kindling-prometheus-service.yml (100%) rename deploy/{ => agent}/kindling-prometheus-servicemonitor.yml (100%) rename deploy/{ => agent}/uninstall.sh (100%) rename deploy/{ => grafana}/kindling-grafana-install.sh (100%) rename deploy/{ => grafana}/kindling-grafana.yaml (100%) create mode 100644 deploy/recompile-probe/recompile-module-Dockerfile rename deploy/{ => recompile-probe}/recompile-module.sh (100%) diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 000000000..5310876cf --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,11 @@ +# Deployment files for Kubernetes +The files under this directory are needed when releasing the Kindling. + +## agent +This directory contains files used for deploying `kindling-agent` in Kubernetes. + +## grafana +This directory contains files used for deploying `Grafana` in Kubernetes. + +## recompile-probe + The files under this directory provide a convenient way to build a new `kindling-probe` image with `drivers` **built locally**. The script compiles the driver codes and produces `drivers` based on the specific kernel version, and rebuilds a container image base on the `drivers` and the latest `kindling-probe` image. \ No newline at end of file diff --git a/deploy/install.sh b/deploy/agent/install.sh similarity index 100% rename from deploy/install.sh rename to deploy/agent/install.sh diff --git a/deploy/kindling-clusterrole.yml b/deploy/agent/kindling-clusterrole.yml similarity index 100% rename from deploy/kindling-clusterrole.yml rename to deploy/agent/kindling-clusterrole.yml diff --git a/deploy/kindling-clusterrolebinding.yml b/deploy/agent/kindling-clusterrolebinding.yml similarity index 100% rename from deploy/kindling-clusterrolebinding.yml rename to deploy/agent/kindling-clusterrolebinding.yml diff --git a/deploy/kindling-collector-config.yml b/deploy/agent/kindling-collector-config.yml similarity index 100% rename from deploy/kindling-collector-config.yml rename to deploy/agent/kindling-collector-config.yml diff --git a/deploy/kindling-deploy.yml b/deploy/agent/kindling-deploy.yml similarity index 100% rename from deploy/kindling-deploy.yml rename to deploy/agent/kindling-deploy.yml diff --git a/deploy/kindling-prometheus-rabc.yml b/deploy/agent/kindling-prometheus-rabc.yml similarity index 100% rename from deploy/kindling-prometheus-rabc.yml rename to deploy/agent/kindling-prometheus-rabc.yml diff --git a/deploy/kindling-prometheus-service.yml b/deploy/agent/kindling-prometheus-service.yml similarity index 100% rename from deploy/kindling-prometheus-service.yml rename to deploy/agent/kindling-prometheus-service.yml diff --git a/deploy/kindling-prometheus-servicemonitor.yml b/deploy/agent/kindling-prometheus-servicemonitor.yml similarity index 100% rename from deploy/kindling-prometheus-servicemonitor.yml rename to deploy/agent/kindling-prometheus-servicemonitor.yml diff --git a/deploy/uninstall.sh b/deploy/agent/uninstall.sh similarity index 100% rename from deploy/uninstall.sh rename to deploy/agent/uninstall.sh diff --git a/deploy/kindling-grafana-install.sh b/deploy/grafana/kindling-grafana-install.sh similarity index 100% rename from deploy/kindling-grafana-install.sh rename to deploy/grafana/kindling-grafana-install.sh diff --git a/deploy/kindling-grafana.yaml b/deploy/grafana/kindling-grafana.yaml similarity index 100% rename from deploy/kindling-grafana.yaml rename to deploy/grafana/kindling-grafana.yaml diff --git a/deploy/recompile-probe/recompile-module-Dockerfile b/deploy/recompile-probe/recompile-module-Dockerfile new file mode 100644 index 000000000..7f7294fb9 --- /dev/null +++ b/deploy/recompile-probe/recompile-module-Dockerfile @@ -0,0 +1,2 @@ +FROM kindlingproject/kindling-probe:latest +COPY ./agent-libs-2b4b2a107c05bd16a03c12841c6cce1d6404efac/kindling-falcolib-probe/* /opt/kindling-extra-probe/ diff --git a/deploy/recompile-module.sh b/deploy/recompile-probe/recompile-module.sh similarity index 100% rename from deploy/recompile-module.sh rename to deploy/recompile-probe/recompile-module.sh From 5c574200ba4324e003b86d3bfac92c27461945fb Mon Sep 17 00:00:00 2001 From: Daxin Wang Date: Tue, 10 May 2022 17:27:54 +0800 Subject: [PATCH 3/5] Rename dir grafana to grafana-with-plugins Signed-off-by: Daxin Wang --- .../{grafana => grafana-with-plugins}/kindling-grafana-install.sh | 0 deploy/{grafana => grafana-with-plugins}/kindling-grafana.yaml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename deploy/{grafana => grafana-with-plugins}/kindling-grafana-install.sh (100%) rename deploy/{grafana => grafana-with-plugins}/kindling-grafana.yaml (100%) diff --git a/deploy/grafana/kindling-grafana-install.sh b/deploy/grafana-with-plugins/kindling-grafana-install.sh similarity index 100% rename from deploy/grafana/kindling-grafana-install.sh rename to deploy/grafana-with-plugins/kindling-grafana-install.sh diff --git a/deploy/grafana/kindling-grafana.yaml b/deploy/grafana-with-plugins/kindling-grafana.yaml similarity index 100% rename from deploy/grafana/kindling-grafana.yaml rename to deploy/grafana-with-plugins/kindling-grafana.yaml From e600ea2d1e67368ba6200cbaeb20f13aa7431761 Mon Sep 17 00:00:00 2001 From: Daxin Wang Date: Tue, 10 May 2022 20:22:14 +0800 Subject: [PATCH 4/5] Rename "deploy" inside the direcotry to "docker" Signed-off-by: Daxin Wang --- collector/{deploy => docker}/Dockerfile | 4 ++-- .../kindling-collector-config.yml | 0 collector/{deploy => docker}/libso/libzmq.so.5 | Bin probe/{deploy => docker}/BUILD.bazel | 0 probe/{deploy => docker}/Dockerfile | 0 probe/{deploy => docker}/docker-entrypoint.sh | 0 probe/{deploy => docker}/gdb_print.sh | 0 probe/{deploy => docker}/kindling-probe-loader | 0 probe/{deploy => docker}/post_start.sh | 0 probe/src/probe/BUILD.bazel | 6 +++--- probe/src/probe/standalone/BUILD.bazel | 2 +- 11 files changed, 6 insertions(+), 6 deletions(-) rename collector/{deploy => docker}/Dockerfile (67%) rename collector/{deploy => docker}/kindling-collector-config.yml (100%) rename collector/{deploy => docker}/libso/libzmq.so.5 (100%) rename probe/{deploy => docker}/BUILD.bazel (100%) rename probe/{deploy => docker}/Dockerfile (100%) rename probe/{deploy => docker}/docker-entrypoint.sh (100%) rename probe/{deploy => docker}/gdb_print.sh (100%) rename probe/{deploy => docker}/kindling-probe-loader (100%) rename probe/{deploy => docker}/post_start.sh (100%) diff --git a/collector/deploy/Dockerfile b/collector/docker/Dockerfile similarity index 67% rename from collector/deploy/Dockerfile rename to collector/docker/Dockerfile index bfd709b3d..0504d59ed 100644 --- a/collector/deploy/Dockerfile +++ b/collector/docker/Dockerfile @@ -1,9 +1,9 @@ FROM centos:7 -COPY deploy/libso/libzmq.so.5 /lib64/ +COPY libso/libzmq.so.5 /lib64/ RUN ldconfig -COPY deploy/*.yml /etc/kindling/config/ +COPY kindling-collector-config.yml /etc/kindling/config/ COPY kindling-collector /usr/bin/kindling-collector CMD ["/usr/bin/kindling-collector", "--config=/etc/kindling/config/kindling-collector-config.yml"] diff --git a/collector/deploy/kindling-collector-config.yml b/collector/docker/kindling-collector-config.yml similarity index 100% rename from collector/deploy/kindling-collector-config.yml rename to collector/docker/kindling-collector-config.yml diff --git a/collector/deploy/libso/libzmq.so.5 b/collector/docker/libso/libzmq.so.5 similarity index 100% rename from collector/deploy/libso/libzmq.so.5 rename to collector/docker/libso/libzmq.so.5 diff --git a/probe/deploy/BUILD.bazel b/probe/docker/BUILD.bazel similarity index 100% rename from probe/deploy/BUILD.bazel rename to probe/docker/BUILD.bazel diff --git a/probe/deploy/Dockerfile b/probe/docker/Dockerfile similarity index 100% rename from probe/deploy/Dockerfile rename to probe/docker/Dockerfile diff --git a/probe/deploy/docker-entrypoint.sh b/probe/docker/docker-entrypoint.sh similarity index 100% rename from probe/deploy/docker-entrypoint.sh rename to probe/docker/docker-entrypoint.sh diff --git a/probe/deploy/gdb_print.sh b/probe/docker/gdb_print.sh similarity index 100% rename from probe/deploy/gdb_print.sh rename to probe/docker/gdb_print.sh diff --git a/probe/deploy/kindling-probe-loader b/probe/docker/kindling-probe-loader similarity index 100% rename from probe/deploy/kindling-probe-loader rename to probe/docker/kindling-probe-loader diff --git a/probe/deploy/post_start.sh b/probe/docker/post_start.sh similarity index 100% rename from probe/deploy/post_start.sh rename to probe/docker/post_start.sh diff --git a/probe/src/probe/BUILD.bazel b/probe/src/probe/BUILD.bazel index 1ebcb26db..ef063f520 100644 --- a/probe/src/probe/BUILD.bazel +++ b/probe/src/probe/BUILD.bazel @@ -48,7 +48,7 @@ container_image( directory = "/pl", files = [ "@kindling_falcolib_probe_tar_gz//file:file", - "//deploy:scripts", + "//docker:scripts", ":kindling_probe", ], cmd = ["/pl/docker-entrypoint.sh"], @@ -60,8 +60,8 @@ container_image( base = "@px//:pl_cc_bpf_image", directory = "/pl", files = [ - "//deploy:scripts", - "//deploy:localdriver", + "//docker:scripts", + "//docker:localdriver", ":kindling_probe", ], cmd = ["/pl/docker-entrypoint.sh"], diff --git a/probe/src/probe/standalone/BUILD.bazel b/probe/src/probe/standalone/BUILD.bazel index 39ff06d73..942833851 100644 --- a/probe/src/probe/standalone/BUILD.bazel +++ b/probe/src/probe/standalone/BUILD.bazel @@ -31,7 +31,7 @@ container_image( directory = "/pl", files = [ "@kindling_falcolib_probe_tar_gz//file:file", - "//deploy:scripts", + "//docker:scripts", ":qianlu", ], cmd = ["/pl/docker-entrypoint.sh"], From 0a0252a26ba601cc780264b48533f8affe1caabc Mon Sep 17 00:00:00 2001 From: Daxin Wang Date: Wed, 11 May 2022 16:11:25 +0800 Subject: [PATCH 5/5] update deploy/README Signed-off-by: Daxin Wang --- deploy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/README.md b/deploy/README.md index 5310876cf..b0e421f36 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -4,7 +4,7 @@ The files under this directory are needed when releasing the Kindling. ## agent This directory contains files used for deploying `kindling-agent` in Kubernetes. -## grafana +## grafana-with-plugins This directory contains files used for deploying `Grafana` in Kubernetes. ## recompile-probe