<p>直接装Docker、Kubernetes、Red Hat YAML、Remote - Containers四个插件可覆盖90%云原生开发高频动作:Docker插件图形化容器操作,Kubernetes插件实现资源树同步与YAML联动,Red Hat YAML提供Schema校验与智能补全,Remote - Containers确保环境一致。</p>

直接装这四个插件,能覆盖 90% 的云原生开发高频动作:Docker、Kubernetes、YAML(Red Hat 官方版)、Remote - Containers。其他插件属于场景增强,不是必装。
Docker 插件:构建镜像和管理容器不能只靠命令行
它不只是让你在侧边栏点点点——真正价值在于把 docker build、docker run、docker-compose up 这些操作绑定到右键菜单和命令面板,省去切终端的打断感。常见错误是安装后看不到容器列表,原因通常是:Docker Desktop 没运行,或 VSCode 启动时 Docker 守护进程还没就绪;Mac 上还容易因权限问题卡在“Connecting to Docker…”状态,此时重启 Docker Desktop 并重开 VSCode 即可。
建议开启以下设置:
-
"docker.showExplorer"设为true,确保侧边栏 Docker 视图默认可见 -
"docker.defaultContext"显式指定上下文(如desktop-linux),避免多环境切换混乱 - 配合
.devcontainer/devcontainer.json中的dockerComposeFile字段,实现一键启动整套服务
Kubernetes 插件:别再手动敲 kubectl get pods
这个插件本质是把 kubectl 的常用子命令图形化,但关键能力在于实时资源树同步和 YAML 编辑联动。比如你在资源树里右键一个 Pod,选 “View Logs”,它会自动执行 kubectl logs -f 并把输出流进 VSCode 内置终端;再比如你双击打开一个 deployment.yaml,编辑保存后右键 “Apply” 就直接调用 kubectl apply -f。
容易踩的坑:
- 集群连接失败,多数因为
kubeconfig路径没配对——检查插件设置里的"vs-kubernetes.kubeconfig"是否指向正确的文件(默认是~/.kube/config) - 资源列表为空,确认当前 context 是否已切换到目标集群(插件底部状态栏会显示 context 名)
- 端口转发(Port Forward)功能需要本地有
kubectlCLI 且版本 ≥ 1.18,旧版会静默失败
Red Hat YAML 插件:K8s 配置写错缩进?它会在你敲下空格时就报红
它不是语法高亮工具,而是带 schema 校验的智能助手。只要你配置了 "yaml.schemas",比如把 kubernetes 关键字映射到 https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.28.0-standalone-strict/all.json,就能获得字段名自动补全、必填项提示、值类型校验(比如 replicas 必须是整数)。
几个实操要点:
- 务必启用
"yaml.validate"和"yaml.completion",否则等于白装 - 多个 YAML 文件共存时(如
deployment.yaml+service.yaml),插件能跨文件识别metadata.name引用关系,避免手误写错 service name - CI/CD 配置(GitHub Actions、GitLab CI)也能通过自定义 schema 获得同样校验,不用再靠提交后看流水线失败来 debug
Remote - Containers:解决“在我机器上能跑”的终极方案
它不光是把代码挂进容器,而是让整个开发链路(编辑、终端、调试、扩展)都在容器内运行。比如你在 .devcontainer/devcontainer.json 里声明预装 kubectl、helm、jq,所有团队成员打开项目时,VSCode 自动拉起一致环境,连 PATH 和 shell 配置都一样。
注意几个硬性前提:
- 本地必须已安装 Docker(Desktop 或 Linux daemon),且用户在
docker用户组里(Linux) - Windows 用户若用 WSL2,需确保
dockerd在 WSL2 内运行,而非 Windows 原生 Docker Desktop - 调试器(如 Go、Python)必须在容器内安装对应 runtime,不能只靠本地 VSCode 的扩展——这是最常被忽略的一点
复杂点在于网络和挂载:容器内访问宿主机服务(如本地数据库)要用 host.docker.internal;挂载敏感文件(如 ~/.kube/config)需显式声明 mounts,且注意权限位是否匹配。


















