Skip to content

feat: Automatically Handle Host Network IP Changes in Canoncal K8s #1621

@gatici

Description

@gatici

Description

When the host machine’s network IP address changes due to:

  • DHCP lease renewal
  • Wi-Fi or Ethernet switching
  • LXD bridge reallocation or container reboots

The Kubernetes API become unreachable and the Juju client may lose connectivity to the Kubernetes API server used by the controller, resulting in errors like below:

$ juju models
ERROR cannot connect to k8s api server; try running 'juju update-k8s --client <k8s cloud name>': starting proxy for api connection: connecting k8s proxy: Get "https://192.168.1.117:6443/api/v1/namespaces/controller-k8s/services/controller-service": dial tcp 192.168.1.117:6443: connect: no route to host

This completely breaks access to:

  • The Juju controller
  • All managed Kubernetes models

Why is this important?

This issue critically impacts production-grade environments where:

  • Juju manages multiple Kubernetes models over dynamic networking
  • IP addresses are not guaranteed to remain static.
  • Automation, monitoring or lifecycle hooks depend on persistent controller access.

Juju is used to manage multiple Kubernetes models across dynamic or container-based networks.
Network addresses may change because of DHCP or other reasons, causing the stored API server IP to become unreachable. These failures can cause unexpected downtime or inability to access running applications and poor user experience and reliability risk in Canonical’s reference architecture. And there is not any solution available to recover the K8s cluster.

Request

Please provide a robust and automatic mechanism to detect and recover from host network changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions