使用 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 错误。