Configure access to your K8s cluster
Learn how to create access controls and view your cluster using kubectl, K9s, and eksctl
Last updated
Was this helpful?
Learn how to create access controls and view your cluster using kubectl, K9s, and eksctl
Last updated
Was this helpful?
This document walks you through giving a user access to a Release EKS cluster, accessing the cluster, and viewing the cluster using K9s and kubectl
.
AWS: Amazon Web Services
IAM: Identity and Access Management
EKS: Elastic Kubernetes Service
ARN: Amazon Resource Name
To add an IAM user to your cluster, you will need the following:
Administrator privileges to the EKS cluster.
The ARN for the user you're granting access to (looks like aws:arn:iam::ACCTID:user/USERNAME
).
A kubeconfig file for the EKS cluster. If you do not have an existing kubeconfig file, generate one by following the steps in the section below.
We recommend you .
You can grant a user access to a cluster in two ways: Using the K9s visual editor or the command line.
Start up K9s and use the :namespace
command to access the kube-system
namespace as shown below:
Use the :configmap
command to access the aws_auth
configuration:
Find aws_auth
and hit the e
command to edit
the file. Insert the user as shown below:
Save the file and then verify the changes by using the d
(describe) command to view the document that was applied.
Download the existing aws_auth
configmap from the kube-system
namespace.
Edit the mapUsers
field and add the user.
Save the file.
Apply the changes to the cluster.
Verify the changes have been made.
To access the cluster once you have been added to the configmap, you'll need:
Your AWS IAM credentials for the account where the EKS cluster is running.
The EKS cluster name and region.
Once you have been added to the cluster configmap and you have the prerequisites installed, you can gain access to the cluster to view status and logs, and to perform other tasks you have permissions for.
Have your AWS credentials available in configuration files, in your environment variables, or in named profiles.
To generate your kubeconfig file, type the following where your eksctl
binary is available and your AWS credentials are specified by default:
We recommend that you use the K9s interface for visualization and viewing logs and status. Administrating the cluster from the K9s interface is also possible. Here are a few use cases we’ve found useful.
View application namespaces
You can use the :namespaces
command and filter with the /release
search to list applications running from Release environments as shown below:
View pods for a Release environment
You can then either click on a namespace or type the :pods
command to view the applications in the Release environment as shown below:
View logs for an application container in a Release environment
You can use the l
(or logs) command to view what is happening in your application:
Access the container system (if available)
If you have sufficient privileges and configuration, use the s
(or shell) command to enter the running container, if available:
Exit K9s
Use the familiar VI controls to :quit
the K9s application:
Use CLI commands to examine the state of the cluster, but we generally don't recommend using them to change settings or start or stop pods or services, as this should be handled by the Release website or CLI tool.
kubectl get namespaces
Remember that a namespace in Kubernetes maps to a Release environment.
kubectl get pods -n RELEASEENV
Remember that a pod in Kubernetes maps to a Release service in the environment.
kubectl get logs RELEASESERVICE
Copy and paste the section outlined in red above to create a new user. Be careful to edit the ARN correctly to allow the user to access the system. In this example, the users are administrators, but you can consult the to define default roles like viewers and ops users.
Follow the to complete the same procedure done visually above. The steps are the same:
Command line utility eksctl
installed. You can follow these .
Command line utility kubectl
installed. You can follow these .
We recommend you .
Follow the steps in the AWS . The eksctl
binary respects the usual configuration directives that the AWS CLI uses. This document assumes the default credentials are available. If you wish to specify a set of credentials other than default, you will need to specify them appropriately.
Your credentials will authenticate you as a user or role in the account and region where the EKS cluster is available. You may have a user role configured in a different account and then assume a role in the EKS cluster account, or you may have a very complicated setup with or integrations, which is beyond the scope of this document.
You can find great in the Kubernetes documentation.