无外网环境使用helm部署Falco
背景 在K8s集群中,希望引入Falco进行统一的集群操作审计 这就需要先安装Falco,借助json插件与k8saudit插件创建一个Webhook客户端,专用于接收API Server的操作审计数据 当前已有falco:0.44.0镜像,以及一个Falco的custom_values.yaml: driver: enabled: false collectors: enabled: false controller: kind: deployment services: - name: k8saudit-webhook type: NodePort ports: - port: 9765 protocol: TCP falco: rules_files: - /etc/falco/k8s_audit_rules.yaml - /etc/falco/rules.d plugins: - name: k8saudit library_path: /usr/share/falco/plugins/libk8saudit.so init_config: "" open_params: "http://:9765/k8s-audit" - name: json library_path: /usr/share/falco/plugins/libjson.so init_config: "" load_plugins: - k8saudit - json json_output: true json_include_output_property: true json_include_tags_property: true 关于格式 values文件的格式可参考:https://raw.githubusercontent.com/falcosecurity/charts/refs/heads/master/charts/falco/values.yaml 在机器可以访问外网的情况下,执行helm install falco falcosecurity/falco -n kube-audit -f custom_values.yaml即可将Falco部署到集群 但我们的集群无法访问外网,首先拉取不到Chart,其次也拉取不到falcoctl以及两个插件,甚至连插件的index文件都无法获取 因此,需要考虑离线安装Falco 手动下载Chart 执行: wget https://github.com/falcosecurity/charts/releases/download/falco-9.0.0/falco-9.0.0.tgz 即可获取falco-9.0.0.tgzChart文件,如此一来,Chart的本地化解决 falcoctl离线安装 在Pod启动时,会尝试拉取falcoctl容器镜像,它会被自动配置为Falco Pod的一个Init Container,用于管理安全规则Rules、插件Plugins ...