启动linkerd viz dashboard时提示socat not found报错
错误成因
执行linkerd viz dashboard时,Linkerd CLI会自动调用Kubernetes的port-forward能力,在本地和linkerd-viz组件的Pod之间建立流量转发隧道,这个转发链路的实现强依赖socat(多用途流量转发工具)。
出现socat not found报错的根本原因是:运行minikube集群节点的环境中没有安装socat工具,端口转发进程无法调用该依赖完成流量转发。多数踩坑场景是仅在EC2宿主机安装了socat,但minikube如果是基于容器/独立虚拟机驱动启动,实际运行工作负载的minikube内部节点没有安装该依赖,依然会触发这个报错。
解决步骤
- 登录minikube集群的节点环境,执行命令:
minikube ssh - 根据节点的操作系统发行版,执行对应命令安装socat:
- Debian/Ubuntu系节点:依次执行
apt update、apt install -y socat - RHEL/CentOS/Amazon Linux系节点:执行
yum install -y socat(使用dnf包管理器的环境将命令中yum替换为dnf即可)
- Debian/Ubuntu系节点:依次执行
- 安装完成后执行
exit退出minikube节点的SSH会话 - 同步在EC2宿主机上安装socat,避免后续执行其他kubectl端口转发操作时触发同类错误,安装命令匹配宿主机操作系统选择即可
- 清理之前卡住的失效进程:执行
pkill -f "linkerd viz dashboard"杀掉之前挂起的后台dashboard进程 - 重新执行
linkerd viz dashboard &,等待linkerd-viz扩展就绪后即可正常访问可视化面板
若minikube节点重启后会重置系统配置,可将socat安装命令配置为minikube节点的开机启动脚本,避免节点重启后重复出现该报错。
内容的提问来源于stack exchange,提问作者Kesavan Ramalingam
相关产品推荐
相关产品推荐

