private Watch doWatchNode(long updateId, String resourceVersion) {
        final Watcher<Node> watcher = new Watcher<Node>() {
            @Override
            public void eventReceived(Action action, Node node) {
                if (closed) {
                    return;
                }
                numNodeFailures = 0;
                withUpdateLock(updateId, () -> {
                    if (!updateNode(action, node)) {
                        return;
                    }
                    maybeUpdateEndpoints();
                });
            }

            @Override
            public void onClose(WatcherException cause) {
                if (closed) {
                    return;
                }
                logger.warn("[{}/{}] Node watcher is closed.", namespace, serviceName, cause);
                scheduleRestartWithBackoff(++numNodeFailures);
            }

            @Override
            public void onClose() {
                logger.info("[{}/{}] Node watcher is closed gracefully.", namespace, serviceName);
            }
        };

        return client.nodes().withResourceVersion(resourceVersion).watch(watcher);
    }
Fetches the internal IPs of the node.
kubernetes/src/main/java/com/linecorp/armeria/client/kubernetes/endpoints/KubernetesEndpointGroup.java