@IuryFukuda-7915 , by "communicate kubernetes with VMs" if you mean VMs talking to applications deployed on Kubernetes or vice versa then you can use:
- Azure CNI with the Kubernetes cluster. [How-to guide for AKS] With Azure Container Networking Interface (CNI), every pod gets an IP address from the subnet and can be accessed directly. The VMs must be in the same virtual network as the Kubernetes cluster or in a network (on-premises or Azure Virtual network) connected to the cluster's virtual network.
- To have the VMs access the applications via an exposing Service object in Kubernetes you leverage the internal loadBalancer Service on an AKS cluster.
AKS private clusters should be considered only when you want traffic to and from your API server to remain on a private network.
----
Hope this helps.
Please "Accept as Answer" if it helped, so that it can help others in the community looking for help on similar topics.