使用 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 日:将插件自述文件添加到网站 (cf976f6dd)