6
votes

I'm beginning to build out a kubernetes cluster for our applications. We are using Azure for cloud services, so my K8s cluster is built using AKS. The AKs cluster was created using the portal interface for Azure. It has one node, and I am attempting to create a pod with a single container to deploy to the node. Where I am stuck currently is trying to connect to the AKS cluster from Powershell. The steps I have taken are:

az login (followed by logging in)
az account set --subscription <subscription id>
az aks get-credentials --name <cluster name> --resource-group <resource group name>
kubectl get nodes

After entering the last line, I am left with the error: Unable to connect to the server: dial tcp: lookup : no such host

I've also gone down a few other rabbit holes found on SO and other forums, but quite honestly, I'm looking for a straight forward way to access my cluster before complicating it further.

Edit: So in the end, I deleted the resource I was working with and spun up a new version of AKS, and am now having no trouble connecting. Thanks for the suggestions though!

6
Can you fire "az aks show" and post the output (remember to mask out any sensitive info)..docs.microsoft.com/en-us/cli/azure/… - krishg
also make sure you are not connected to any VPN (like your company's) or proxy - krishg

6 Answers

1
votes

Posting this as Community Wiki for better visibility.

Solution provided by OP:

Delete resource and spun up a new version of AKS.

For details, you can check docs Create a resource group, Create AKS cluster and resource create.

Next try worth to try:

kubectl config use-context <cluster-name>

as it was proposed in similar Github issue.

4
votes

Unable to connect to the server: dial tcp: lookup : no such host

The error is coming because of private cluster. The Private Cluster option is enabled while creating the AKS cluster. You need to disable this option.

Kubectl is a kubernetes control client. It is an external connectivity provider to connect with our kubernetes cluster. We can't connect with the private cluster externally.

Believe me.... just disable the private cluster options And see your success. Thank you.

Note: We can't disable this option after the cluster creation. you need to delete the cluster and again reform it.

1
votes

Gaurav's answer pretty much sums it up. In fact you can refer to the documentation which states that

The API server endpoint has no public IP address. To manage the API server, you'll need to use a VM that has access to the AKS cluster's Azure Virtual Network (VNet). There are several options for establishing network connectivity to the private cluster.

To connect to a private cluster, there are only 3 methods:

  • Create a VM in the same Azure Virtual Network (VNet) as the AKS cluster.
  • Use a VM in a separate network and set up Virtual network peering. See the section below for more information on this option.
  • Use an Express Route or VPN connection.
0
votes

Usually, this is all that is required to connect. Check whether firewall is not blocking any traffic. Also, verify subscription id and other identifiers again and make sure you are using the correct values. If the issue still persists, I recommend you ask azure support to help you out.

0
votes

It is more convenient to use Az module from desktop Powershell for any management operation with Azure portal. Microsoft adds a lot of new cmdlets for managing AKS and Service Fabric clusters.

Please take a look Az.Aks

In your case:

Connect-AzAccount

Get-AzAksNodePool
0
votes

I had the same issues when running the kubectl command from jenkins. For me it was the permission issues of ~/.kube/config I gave it access to jenkins as well which solved the issue for me.