GithubHelp home page GithubHelp logo

widnyana / kubectl-ports-rs Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 0.0 61 KB

A kubectl krew plugin to provide a list of exposed ports on kubernetes Pod / Service resources

License: MIT License

Makefile 4.89% Rust 95.11%
k8s krew-plugin kubectl kubectl-plugin kubernetes

kubectl-ports-rs's Introduction

kubectl-ports

πŸ•Έ Show exposed container ports in the cluster.

kubectl-ports makes use of the kube-rs SDK. It will retrieve running pods and filters out the container ports information of each pod, then prints out the final result in a table view.

πŸ”° Installation

A several mechanism to install the plugin is available, pick one that easiest for you.

Using released binary

Download your binary here: https://github.com/widnyana/kubectl-ports-rs/releases/latest, extract, and copy the file(s) into $HOME/.local/bins

I use github action to build the binary for following platform:

  • aarch64-apple-darwin
  • aarch64-unknown-linux-musl
  • x86_64-apple-darwin
  • x86_64-pc-windows-msvc
  • x86_64-unknown-linux-gnu
  • x86_64-unknown-linux-musl

Compiling on your own

$ git clone https://github.com/widnyana/kubectl-ports-rs.git kubectl-ports-rs
$ cd kubectl-ports-rs && make build install clean
$ kubectl ports --help

πŸ“ Usage

~ 🐢 kubectl-ports --help
A kubectl plugin to provide a list of exposed ports on kubernetes Pod resources

Usage: kubectl-ports [OPTIONS] [RESOURCE]

Arguments:
  [RESOURCE]
          select Kubernetes resource you want to list the port(s)

          [default: pod]

          Possible values:
          - pod:     (default) Enable both coloring and formatting
          - service: Apply syntax highlighting to output
          - svc

Options:
      --context <CONTEXT>
          The name of the kubeconfig context to use

  -n, --namespace <NAMESPACE>
          Show only pods from this namespace

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

πŸ”– Glances

Listing ports exposed by Pod

~$ kubectl ports -n kube-system
  +===============+==========================================+========================+==================+===================+
  |   Namespace   |                 Pod Name                 |     Container name     |  Container Port  |     Port Name     |
  +===============+==========================================+========================+==================+===================+
  |  kube-system  |  fluentbit-gke-46dgf                     |  fluentbit             |  2020/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-46dgf                     |  fluentbit-gke         |  2021/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-4f4tv                     |  fluentbit             |  2020/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-4f4tv                     |  fluentbit-gke         |  2021/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-gbklt                     |  fluentbit             |  2020/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-gbklt                     |  fluentbit-gke         |  2021/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-pv6jv                     |  fluentbit             |  2020/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-pv6jv                     |  fluentbit-gke         |  2021/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-shstp                     |  fluentbit             |  2020/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  fluentbit-gke-shstp                     |  fluentbit-gke         |  2021/TCP        |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-99wvm               |  gke-metadata-server   |  987/TCP         |  alts             |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-99wvm               |  gke-metadata-server   |  988/TCP         |  metadata-server  |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-99wvm               |  gke-metadata-server   |  989/TCP         |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-dqvnm               |  gke-metadata-server   |  987/TCP         |  alts             |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-dqvnm               |  gke-metadata-server   |  988/TCP         |  metadata-server  |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-dqvnm               |  gke-metadata-server   |  989/TCP         |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-qwlsc               |  gke-metadata-server   |  987/TCP         |  alts             |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-qwlsc               |  gke-metadata-server   |  988/TCP         |  metadata-server  |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-qwlsc               |  gke-metadata-server   |  989/TCP         |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-vqwmc               |  gke-metadata-server   |  987/TCP         |  alts             |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-vqwmc               |  gke-metadata-server   |  988/TCP         |  metadata-server  |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-vqwmc               |  gke-metadata-server   |  989/TCP         |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-wlc94               |  gke-metadata-server   |  987/TCP         |  alts             |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-wlc94               |  gke-metadata-server   |  988/TCP         |  metadata-server  |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  gke-metadata-server-wlc94               |  gke-metadata-server   |  989/TCP         |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  kubedns               |  10053/UDP       |  dns-local        |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  kubedns               |  10053/TCP       |  dns-tcp-local    |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  kubedns               |  10055/TCP       |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  dnsmasq               |  53/UDP          |  dns              |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  dnsmasq               |  53/TCP          |  dns-tcp          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-4zpkq               |  sidecar               |  10054/TCP       |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  kubedns               |  10053/UDP       |  dns-local        |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  kubedns               |  10053/TCP       |  dns-tcp-local    |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  kubedns               |  10055/TCP       |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  dnsmasq               |  53/UDP          |  dns              |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  dnsmasq               |  53/TCP          |  dns-tcp          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  kube-dns-859b68dc67-lbqvs               |  sidecar               |  10054/TCP       |  metrics          |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  l7-default-backend-6b99559c7d-bhgw5     |  default-http-backend  |  8080/TCP        |                   |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  metrics-server-64cf6869bd-7nrdg         |  metrics-server        |  4443/TCP        |  https            |
  +---------------+------------------------------------------+------------------------+------------------+-------------------+
  |  kube-system  |  metrics-server-v0.5.2-866bc7fbf8-bzrvc  |  metrics-server        |  10250/TCP       |  https            |
  +===============+==========================================+========================+==================+===================+

Listing ports exposed by Service

~$ kubectl ports -n kube-system svc
  +===============+========================+=============+=================+=============+===============+================+=============+
  |   Namespace   |      Service Name      |    Type     |   Cluster IP    |  Port Name  |  Target Port  |  Exposed Port  |  Node Port  |
  +===============+========================+=============+=================+=============+===============+================+=============+
  |  kube-system  |  default-http-backend  |  NodePort   |  172.23.5.200   |    http     |  8080/TCP     |  80/TCP        |  32725/TCP  |
  +---------------+------------------------+-------------+-----------------+-------------+---------------+----------------+-------------+
  |  kube-system  |  kube-dns              |  ClusterIP  |  172.23.0.10    |     dns     |  53/UDP       |  53/UDP        |  0/UDP      |
  +---------------+------------------------+-------------+-----------------+-------------+---------------+----------------+-------------+
  |  kube-system  |  kube-dns              |  ClusterIP  |  172.23.0.10    |   dns-tcp   |  53/TCP       |  53/TCP        |  0/TCP      |
  +---------------+------------------------+-------------+-----------------+-------------+---------------+----------------+-------------+
  |  kube-system  |  metrics-server        |  ClusterIP  |  172.23.11.137  |      -      |  https/TCP    |  443/TCP       |  0/TCP      |
  +===============+========================+=============+=================+=============+===============+================+=============+

πŸ“ƒ License

MIT OR Apache-2.0 Β©widnyana

kubectl-ports-rs's People

Contributors

widnyana avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.