All Posts

macOS Local Network Privacy: why your CLI gets EHOSTUNREACH and how to fix it

If you run a local model server, an MCP server, or anything else on your LAN, you have probably hit this: curl http://192.168.1.50:11434/v1/models returns a model list, nc -vz 192.168.1.50 11434 succeeds, and your tool still fails with:

AI_APICallError: Cannot connect to API: Was there a typo in the url or port?
  cause: Error: Was there a typo in the url or port?
   code: "FailedToOpenSocket"

or, from Node:

connect EHOSTUNREACH 192.168.1.50:11434

The URL is right, the port is open, and the server is up. The error is misleading, because the connection never leaves your machine.

Rancher Turtles with Harvester: Cluster API in practice

In this article, we will focus on Cluster API as a way to deploy Kubernetes Clusters on VMs running inside SUSE Harvester. In this scenario, Harvester acts as a cloud, providing compute, storage and networking, including Load Balancing capabilities, and Cluster API is used to communicate with Harvester’s API to provision VMs on which Kubernetes is installed. For simplicity’s sake, we will focus on a graphical way to use Cluster API. That is using Rancher Turtles.

Harvester networking: attaching a VM to a bridged network

In the first article of this blog, I focused on installing Harvester and creating my first VM. In this article, I will describe how to create a VM that I can connect to directly through SSH. Indeed, the default networking mode used by Harvester is the masquerade mode, where the VMs get a cluster IP address, but cannot be accessed directly from outside the Harvester Cluster. In order to access the VMs from outside the cluster, you would need to create a NodePort service or a LoadBalancer service on the Kubernetes cluster underlying Harvester.

Harvester HCI: what it is and how to install it

Harvester is an open source hyper-converged infrastructure (HCI) platform from SUSE. It runs virtual machines on Kubernetes, so the same cluster that hosts containers can also host Windows and Linux VMs, and those VMs get Kubernetes primitives like load balancing and service discovery instead of living in a separate silo.

This article started as an install walkthrough in 2021, when Harvester was at v0.1.0. It is now updated for v1.9 (released September 2026). The install screenshots are still from that first release: the flow is the same, but the interface has changed, so treat them as a guide to the steps rather than to the current UI. For pixel-accurate screens, use the official installation guide.