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/deploy/README.md b/deploy/README.md new file mode 100644 index 000000000..b0e421f36 --- /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-with-plugins +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 79% rename from deploy/install.sh rename to deploy/agent/install.sh index 3f249abdd..083925a63 100644 --- a/deploy/install.sh +++ b/deploy/agent/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-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/agent/kindling-clusterrolebinding.yml b/deploy/agent/kindling-clusterrolebinding.yml new file mode 100644 index 000000000..7a575ca78 --- /dev/null +++ b/deploy/agent/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/agent/kindling-collector-config.yml similarity index 99% rename from deploy/kindling-collector-config.yml rename to deploy/agent/kindling-collector-config.yml index c4c81902f..cee137a71 100644 --- a/deploy/kindling-collector-config.yml +++ b/deploy/agent/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/agent/kindling-deploy.yml similarity index 89% rename from deploy/kindling-deploy.yml rename to deploy/agent/kindling-deploy.yml index 94e0cf97a..a74f1fef8 100644 --- a/deploy/kindling-deploy.yml +++ b/deploy/agent/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-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/agent/uninstall.sh b/deploy/agent/uninstall.sh new file mode 100644 index 000000000..3a0b1524a --- /dev/null +++ b/deploy/agent/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 diff --git a/deploy/grafana-with-plugins/kindling-grafana-install.sh b/deploy/grafana-with-plugins/kindling-grafana-install.sh new file mode 100644 index 000000000..b8197773e --- /dev/null +++ b/deploy/grafana-with-plugins/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/grafana-with-plugins/kindling-grafana.yaml b/deploy/grafana-with-plugins/kindling-grafana.yaml new file mode 100644 index 000000000..b0eafe241 --- /dev/null +++ b/deploy/grafana-with-plugins/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-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-probe/recompile-module.sh b/deploy/recompile-probe/recompile-module.sh new file mode 100644 index 000000000..ef036777f --- /dev/null +++ b/deploy/recompile-probe/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/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"],