13.12.2020

Azure Aks Generate Ssh Keys

91

Create an AKS cluster using az aks create. The following example creates a cluster named myAKSCluster in the resource group named myResourceGroup. This resource group was created in the previous tutorial. To allow an AKS cluster to interact with other Azure resources, an Azure Active Directory service principal is automatically created, since you did not specify one. Mar 25, 2020 Get Started with the Azure Kubernetes Service (AKS) Introduction. Microsoft Azure is a flexible and versatile cloud platform for enterprise use cases, while Kubernetes is quickly becoming the standard way to manage application containers in production environment.

  1. Azure Aks Generate Ssh Keys List
  2. Azure Aks Generate Ssh Key
  3. Aks Generate-ssh-keys

If you use the Azure CLI to create your VM, you can optionally generate SSH public and private key files by running the az vm create command with the -generate-ssh-keys option. The keys are stored in the /.ssh directory. May 22, 2019 Reading Time: 5 minutes Share:This is currently in preview On Friday 17th May 2019 Microsoft announced the support for Windows Containers in Azure Kubernetes Service (AKS). This is something I have personally been waiting for. Below you will find Read more. All the time that i have tried deploying AKS Cluster i have used the 'node-count' in my command line. Az aks create -resource-group myResourceGroup -name myK8sCluster -node-count 1 -generate-ssh-keys.

-->

Throughout the lifecycle of your Azure Kubernetes Service (AKS) cluster, you may need to access an AKS node. This access could be for maintenance, log collection, or other troubleshooting operations. You can access AKS nodes using SSH, including Windows Server nodes (currently in preview in AKS). You can also connect to Windows Server nodes using remote desktop protocol (RDP) connections. For security purposes, the AKS nodes aren't exposed to the internet. To SSH to the AKS nodes, you use the private IP address.

This article shows you how to create an SSH connection with an AKS node using their private IP addresses.

Before you begin

This article assumes that you have an existing AKS cluster. If you need an AKS cluster, see the AKS quickstart using the Azure CLI or using the Azure portal.

By default, SSH keys are obtained, or generated, then added to nodes when you create an AKS cluster. This article shows you how to specify different SSH keys than the SSH keys used when you created your AKS cluster. The article also shows you how to determine the private IP address of your node and connect to it using SSH. If you don't need to specify a different SSH key, then you may skip the step for adding the SSH public key to the node.

Azure Aks Generate Ssh Keys List

This article also assumes you have an SSH key. You can create an SSH key using macOS or Linux or Windows. If you use PuTTY Gen to create the key pair, save the key pair in an OpenSSH format rather than the default PuTTy private key format (.ppk file).

You also need the Azure CLI version 2.0.64 or later installed and configured. Run az --version to find the version. If you need to install or upgrade, see Install Azure CLI.

Configure virtual machine scale set-based AKS clusters for SSH access

To configure your virtual machine scale set-based for SSH access, find the name of your cluster's virtual machine scale set and add your SSH public key to that scale set.

Use the az aks show command to get the resource group name of your AKS cluster, then the az vmss list command to get the name of your scale set.

The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the scale set name and assign it to SCALE_SET_NAME.

Important

At this time, you should only update your SSH keys for your virtual machine scale set-based AKS clusters using the Azure CLI.

Add ssh key azure vm

For Linux nodes, SSH keys can currently only be added using the Azure CLI. If you want to connect to a Windows Server node using SSH, use the SSH keys provided when you created the AKS cluster and skip the next set of commands for adding your SSH public key. You will still need the IP address of the node you wish to troubleshoot, which is shown in the final command of this section. Alternatively, you can connect to Windows Server nodes using remote desktop protocol (RDP) connections instead of using SSH.

To add your SSH keys to the nodes in a virtual machine scale set, use the az vmss extension set and az vmss update-instances commands.

The above example uses the CLUSTER_RESOURCE_GROUP and SCALE_SET_NAME variables from the previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key.

Note

By default, the username for the AKS nodes is azureuser.

After you add your SSH public key to the scale set, you can SSH into a node virtual machine in that scale set using its IP address. View the private IP addresses of the AKS cluster nodes using the kubectl get command.

The follow example output shows the internal IP addresses of all the nodes in the cluster, including a Windows Server node.

Record the internal IP address of the node you wish to troubleshoot.

To access your node using SSH, follow the steps in Create the SSH connection.

Configure virtual machine availability set-based AKS clusters for SSH access

To configure your virtual machine availability set-based AKS cluster for SSH access, find the name of your cluster's Linux node, and add your SSH public key to that node.

Azure Aks Generate Ssh Key

Use the az aks show command to get the resource group name of your AKS cluster, then the az vm list command to list the virtual machine name of your cluster's Linux node.

The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the virtual machine name. The example output shows the name of the virtual machine:

To add your SSH keys to the node, use the az vm user update command.

The above example uses the CLUSTER_RESOURCE_GROUP variable and the node virtual machine name from previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key. You could also use the contents of your SSH public key instead of specifying a path.

Note

By default, the username for the AKS nodes is azureuser.

After you add your SSH public key to the node virtual machine, you can SSH into that virtual machine using its IP address. View the private IP address of an AKS cluster node using the az vm list-ip-addresses command.

The above example uses the CLUSTER_RESOURCE_GROUP variable set in the previous commands. The following example output shows the private IP addresses of the AKS nodes:

Create the SSH connection

To create an SSH connection to an AKS node, you run a helper pod in your AKS cluster. This helper pod provides you with SSH access into the cluster and then additional SSH node access. To create and use this helper pod, complete the following steps:

  1. Run a debian container image and attach a terminal session to it. This container can be used to create an SSH session with any node in the AKS cluster:

    Tip

    If you use Windows Server nodes (currently in preview in AKS), add a node selector to the command to schedule the Debian container on a Linux node:

    kubectl run -it --rm aks-ssh --image=debian --overrides='{'apiVersion':'apps/v1','spec':{'template':{'spec':{'nodeSelector':{'beta.kubernetes.io/os':'linux'}}}}}'

  2. Once the terminal session is connected to the container, install an SSH client using apt-get:

  3. Open a new terminal window, not connected to your container, copy your private SSH key into the helper pod. This private key is used to create the SSH into the AKS node.

    If needed, change ~/.ssh/id_rsa to location of your private SSH key:

  4. Return to the terminal session to your container, update the permissions on the copied id_rsa private SSH key so that it is user read-only: /product-key-generator-for-windows-7-professional-64-bit.html.

  5. Create an SSH connection to your AKS node. Again, the default username for AKS nodes is azureuser. Accept the prompt to continue with the connection as the SSH key is first trusted. You are then provided with the bash prompt of your AKS node:

Remove SSH access

When done, exit the SSH session and then exit the interactive container session. When this container session closes, the pod used for SSH access from the AKS cluster is deleted.

Aks Generate-ssh-keys

Next steps

If you need additional troubleshooting data, you can view the kubelet logs or view the Kubernetes master node logs.