Skip to content

A script and kubectl plugin which makes it easier to ssh into nodes within your cluster.

License

Notifications You must be signed in to change notification settings

marjamis/kubectl-kcn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

kubectl-kcn

A kubectl plugin which makes it simple to ssh into nodes within your cluster.

Requirements

This script heavily relies on your ssh_config to determine how the connections are made to the nodes which allows you to easily connect to the nodes based on your unique networking configuration.

This is made simpler by flags which will allow you to select what value is passed into the ssh command, i.e. hostname/nodename, private-ip (as registered to k8s) or public-ip (obtained using AWS API calls).

How to use

Install the plugin by having the script in the $PATH of your shell. Once in the $PATH run:

kubectl plugin list

to ensure kubectl can find the plugin and it will use it. Once properly in place the plugin can be used by running:

kubectl n [options] [node]

For a complete list of options run:

kubectl n -h

More information about kubectl plugins in general can be found here: https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/

Samples

Sample ~/.ssh/config file:

# Defaults
Host *
  ServerAliveInterval 120
  ServerAliveCountMax 30
  Compression yes
  LogLevel INFO
  VisualHostKey yes

Host bastion
  HostName bastion.example.com
  User ec2-user
  IdentityFile ~/.ssh/bastion_private_key.pem

Host *.us-west-2.compute.internal
  IdentityFile ~/.ssh/node_private_key.pem
  User ec2-user
  ProxyCommand ssh bastion -W %h:%p

About

A script and kubectl plugin which makes it easier to ssh into nodes within your cluster.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages