使用 gVisor 插件

gVisor 插件

gVisor,一个沙箱容器运行时,允许用户在 minikube 中安全地运行带有不受信任工作负载的 Pod。

启动 minikube

gVisor 依赖于 containerd 运行时才能在 minikube 中运行。启动 minikube 时,请指定以下标志以及任何其他所需标志

$ minikube start --container-runtime=containerd  \
    --docker-opt containerd=/var/run/containerd/containerd.sock

启用 gVisor

要启用此插件,只需运行

$ minikube addons enable gvisor

在一分钟内,插件管理器应该会检测到此更改,您应该会看到 gvisor Pod 和 gvisor 运行时类

$ kubectl get pod,runtimeclass gvisor -n kube-system
NAME         READY   STATUS    RESTARTS   AGE
pod/gvisor   1/1     Running   0          2m52s

NAME                              CREATED AT
runtimeclass.node.k8s.io/gvisor   2019-06-15T04:35:09Z

一旦 Pod 的状态为 Running,gVisor 就会在 minikube 中启用。

在 gVisor 中运行 Pod

要在 gVisor 中运行 Pod,请将 gvisor 运行时类添加到 Kubernetes yaml 中的 Pod 规范。

runtimeClassName: gvisor

Pod 示例显示如下

apiVersion: v1
kind: Pod
metadata:
  name: nginx-untrusted
spec:
  runtimeClassName: gvisor
  containers:
  - name: nginx
    image: nginx

禁用 gVisor

要禁用 gVisor,请运行

$ minikube addons disable gvisor

在一分钟内,插件管理器应该会检测到此更改。一旦 gvisor Pod 的状态为 Terminating 或已被删除,gVisor 插件就应该被禁用。

$ kubectl get pod gvisor -n kube-system
NAME      READY     STATUS        RESTARTS   AGE
gvisor    1/1       Terminating   0          5m

注意:一旦 gVisor 被禁用,任何使用 gvisor 运行时类的 Pod 都将因 FailedCreatePodSandBox 错误而失败。


上次修改时间:2023 年 7 月 7 日:将插件 README 添加到网站 (cf976f6dd)