我不太确定如何正确地制定这个问题,真的是 k8s 的初学者。我正在笔记本电脑上为 k3s 创建一个游乐场,想要安装 cilium 和 prometheus/grafana 监控。为此,我安装了 rancher-desktop,它创建了在 vm 中运行 k3s 的沙盒环境(在笔记本电脑上运行)
我使用 helm 在 rancher-desktop v1.0.0 上安装了 cilium:
helm install cilium cilium/cilium --version 1.11.1 \
--namespace kube-system \
--set prometheus.enabled=true \
--set operator.prometheus.enabled=true \
--set hubble.enabled=true \
--set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,http}"
它安装,但纤毛容器无法启动:
Error: failed to generate container "0fae98546697febc25abb4ac49d5e5a2f27a3ee1781bade900f2c767f8d6df28" spec: failed to generate spec: path "/run/cilium/cgroupv2" is mounted on "/run/cilium/cgroupv2" but it is not a shared or slave mount
这让我相信 bpf 没有安装。现在,我精通 Linux,但实际上是 k8s 的新手。rancher-desktop 打包 k3s 并在 vm 中启动它(我的电脑是基于 Ubuntu 20.04 的)。所以,qemu 启动了这个虚拟机(lima-rancher-desktop),我可以登录它。我假设应该在该 VM 中启用 BPF(事实并非如此)。但是,也许我错了。也许它在 k3s 内的一些容器内?我什至在我的笔记本电脑上启用了 BPF,但这无济于事,k3s 在该 VM 内运行,以下是 pod:
kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-84bb864455-z2659 1/1 Running 0 4h28m
kube-system helm-install-traefik-crd--1-dxcg7 0/1 Completed 0 4h28m
kube-system svclb-traefik-7kqgd 2/2 Running 0 4h28m
kube-system helm-install-traefik--1-lbjhw 0/1 Completed 1 4h28m
kube-system metrics-server-ff9dbcb6c-rmvd9 1/1 Running 0 4h28m
kube-system traefik-55fdc6d984-zpk5s 1/1 Running 0 4h28m
cilium-monitoring prometheus-655fb888d7-mbnb9 1/1 Running 0 3h52m
cilium-monitoring grafana-5747bcc8f9-rj5jk 1/1 Running 0 3h52m
kube-system cilium-operator-5ffd7d9795-ktldm 0/1 Pending 0 3m26s
kube-system cilium-operator-5ffd7d9795-b8ls9 1/1 Running 0 3m26s
kube-system cilium-d5xr4 0/1 Init:CreateContainerError 0 3m26s
kube-system coredns-96cc4f57d-r99zl 1/1 Running 0 7s
如果有人能解释 BPF 应该安装在哪里,我将不胜感激:在该 VM 内,或在 k3s 上的某个容器内,以及如何安装它?
注意:它无论如何都不会安装在 VM 中:
mount --bind /var/run/bpf /var/run/bpf
没有任何效果,也不会挂载任何东西,就好像它是只读的一样。