作者:Lorenzo Fontana
Minikube是一个工具,在macOS、Linux和Windows通过一个简单的命令行实现了一个本地Kubernetes集群。它被社区成员广泛使用来尝试Falco,也被Falco贡献者使用对新的和旧的Kubernetes版本开发和调试Falco。
现在,感谢Anders Bjorklund,PR#6560建议每个用户使用Minikube>=1.8.0版本(通过minikube.iso,例如使用VM驱动程序)来启动任何Kubernetes,也会安装了Falco内核模块,准备好在用户空间中提供Falco实例!
https://github.com/kubernetes/minikube/pull/6560
在撰写本文时,Minikube安装了Kubernetes 1.17.3,Falco仓库还没有发布包含Kubernetes>=1.16版本的更新,尽管有相关的PR#1044和#1005。
https://github.com/falcosecurity/falco/pull/1044
https://github.com/falcosecurity/falco/pull/1005
出于这个原因,要测试这个功能,你可以自己修补,或者使用已经修补的Falco Helm Chart,并在这种情况下工作!
这是非常容易的!安装Minikube 1.8.0之后,你只需要启动一个集群并使用Helm Chart安装Falco。
使用一个VM驱动程序创建一个带有Minikube的集群,在这里是Virtualbox:
minikube start --driver=virtualbox
当你发出命令,看看日志,以确保你至少有Minikube 1.8.0:
? minikube v1.8.1 on Arch
▪ KUBECONFIG=/home/fntlnz/.kube/current
✨ Automatically selected the virtualbox driver
? Downloading VM boot image ...
? Creating virtualbox VM (CPUs=2, Memory=3939MB, Disk=20000MB) ...
? Preparing Kubernetes v1.17.3 on Docker 19.03.6 ...
? Launching Kubernetes ...
? Enabling addons: default-storageclass, storage-provisioner
⌛ Waiting for cluster to come online ...
? Done! kubectl is now configured to use "minikube"
现在我们的虚拟机准备好了,我们可以SSH到它,以验证模块在那里!
minikube ssh
之后查看:
lsmod | grep -i falco
Aaaand.....什么也不显示!因为Falco模块还没有加载!
让我们继续安装Falco,稍后它会为我们加载模块。
确认一切正在运行,它将需要显示系统pod:
kubectl get pods --all-namespaces
添加Stable chart仓库到Helm:
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
使用Helm安装Falco:
helm install falco stable/falco
它会给出这样的结果:
NAME: falco
LAST DEPLOYED: Sun Mar 8 16:29:11 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Falco agents are spinning up on each node in your cluster. After a few
seconds, they are going to start monitoring your containers looking for
security issues.
No further action should be required.
阅读日志,以确保Falco正在运行!
kubectl logs -l app=falco -f
它会显示试图找到内核头文件的错误,这些错误是构建模块所需要的,但是我们可以跳过这些错误,因为模块已经在那里了!
* Unloading falco-probe, if present
* Running dkms install for falco
Error! echo
Your kernel headers for kernel 4.19.94 cannot be found at
/lib/modules/4.19.94/build or /lib/modules/4.19.94/source.
* Running dkms build failed, couldn't find /var/lib/dkms/falco/0.20.0+d77080a/build/make.log
* Trying to load a system falco-probe, if present
falco-probe found and loaded with modprobe
Sun Mar 8 15:29:55 2020: Falco initialized with configuration file /etc/falco/falco.yaml
Sun Mar 8 15:29:55 2020: Loading rules from file /etc/falco/falco_rules.yaml:
Sun Mar 8 15:29:56 2020: Loading rules from file /etc/falco/falco_rules.local.yaml:
Sun Mar 8 15:29:56 2020: Starting internal webserver, listening on port 8765
现在Falco正在运行,我们可以去检查模块是否已加载,再次做minikube ssh:
sudo lsmod| grep -i falco
它终于显示Falco模块已加载!
falco_probe 630784 2
你已经完成了!你已经准备好为Falco做贡献,为我们的社区做出贡献!