<p>I have tried to change the NIC ip of the worker node directly. It seems that the master node automatically updates the ip information of the worker node. And it does not have any negative impact on the kubernetes cluster. Is it the simple and correct way to change the worker node ip? Or are there some other important steps that I have missed?</p>

wind
<p>I created a mini cluster using <code>kubeadm</code> with two ubuntu18.04 VMs in one public network.</p>
<p>Indeed changing IP address of the worker node doesn't affect the cluster at all unless new IP address doesn't interfere with <code>--pod-network-cidr</code>.</p>
<p><code>Kubelet</code> is responsible for it and it uses several options:</p>
<blockquote>
<p>The kubelet is the primary &quot;node agent&quot; that runs on each node. It can
register the node with the apiserver using one of: the hostname; a
flag to override the hostname; or specific logic for a cloud provider.</p>
</blockquote>
<p>For instance if you decide to change a <code>hostname</code> of worker node, it will become unreachable.</p>
<hr />
<p>There are two ways to change IP address properly:</p>
<ol>
<li>Re-join the worker node with new IP (already changed) to the cluster</li>
<li>Configure <code>kubelet</code> to advertise specific IP address.</li>
</ol>
<p>Last option can be done by following:</p>
<ul>
<li>modifying <code>/etc/systemd/system/kubelet.service.d/10-kubeadm.conf</code> with adding <code>KUBELET_EXTRA_ARGS=--node-ip %NEW_IP_ADDRESS%</code>.</li>
<li><code>sudo systemctl daemon-reload</code> since config file was changed</li>
<li><code>sudo systemctl restart kubelet.service</code></li>
</ul>
<hr />
<p>Useful links:</p>
<ul>
<li><a href="https://medium.com/@kanrangsan/how-to-specify-internal-ip-for-kubernetes-worker-node-24790b2884fd" rel="nofollow noreferrer">Specify internal ip for worker nodes</a> - (it's a bit old in terms of how it's done (it should be done as I described above), however the idea is the same).</li>
<li><a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/" rel="nofollow noreferrer">CLI tools - Kubelet</a></li>
</ul>
