kubectl VS cli

Compare kubectl vs cli and see what are their differences.

kubectl

Issue tracker and mirror of kubectl code (by kubernetes)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
kubectl cli
13 40
2,680 4,604
1.7% 1.9%
9.2 9.7
1 day ago 2 days ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

kubectl

Posts with mentions or reviews of kubectl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-02.
  • What are these orphaned PVC objects?
    1 project | /r/kubernetes | 6 May 2023
    Check https://github.com/kubernetes/kubectl/issues/151
  • Setting kubectl context via env var
    6 projects | /r/kubernetes | 2 May 2023
    I have read this issue, and up to now it seems not possible to change the kubectl context via an env var: https://github.com/kubernetes/kubectl/issues/1154
  • Deciding between Rust or Go for desktop applications
    9 projects | /r/golang | 8 Apr 2023
    However, I would encourage people to take a look at what the code looks like before assuming the Go developer experience on this was positive. Bear in mind that's just the top level kubectl command and some helper functions, the subcommand definitions take up a several more files split into a few more packages. Then you're still not even done, because code that uses the parsed flags still has to redundantly check things that couldn't be enforced at the type level, something Go folks like to pretend is a good thing for some reason.
  • Recommendations on file/dir/module structure, common dependencies, and/or anti-patterns for writing CLI tool in Rust
    12 projects | /r/rust | 18 Mar 2023
    kubectl is for sure battle tested, but it involves very Kubernetes specific implementations and is going to be too complicated for the first pointer
  • Recommendations on building a simple DSL REPL?
    5 projects | /r/golang | 18 Mar 2023
  • Why Go and Not Rust?
    4 projects | news.ycombinator.com | 27 Jan 2023
    > context.Background() is typically only used when one doesn’t care about the result. If you did care about the result, you should be passing the parent context to preserve the circuit breaker timeout in case the operation takes too long.

    Not necessarily. You would use context.Background in a test situation. It's also commonly used for short-lived applications like a CLI invocation. You can see kubectl uses context.Background quite a lot: https://github.com/kubernetes/kubectl/search?q=context.backg...

    > I think the level of pain you experience from mutable references in Rust depends on if you’re coming from an OOP or FP background. I have a FP background and so the patterns I use to build code already greatly restrict mutation. You can usually change code that updates data immutably (creating a new copy of it) with mutable code in rust because the control flow of your program already involves passing that new version back to the caller which also satisfies the borrow checker in most situations.

    There has to be a better solution to needlessly copying data.

  • kubectl - Create PV/PVC
    1 project | /r/kubernetes | 6 Nov 2022
    This is particularly useful for academic purposes, and makes somehow convinient to get the yaml template of k8s objects. I was looking for this as well due to an upcoming ckad test i have. Unfourtunately due to not being considered best practice the request for it was dismissed. https://github.com/kubernetes/kubectl/issues/1073
  • Must `kubectl apply` twice to allow CRD usage?
    1 project | /r/kubernetes | 6 May 2022
    I see, apologies, I did misunderstand. This is actually a known race condition between kubectl (or even helm, or any Kube API client) issuing the requests to deploy CRs that depend on CRDs while those CRDs are still being installed on the API server. Simply put, kubectl makes these requests too quickly. There is no solution to this currently aside from deploying CRDs separately from the resources they expose. See this kubectl issue: https://github.com/kubernetes/kubectl/issues/1117, and there are some links in the comments to other issues echoing the same problem in helm and elsewhere.
  • What's the number one annoyance that drives you crazy about Kubernetes?
    7 projects | /r/kubernetes | 25 Jan 2022
    Go add --no-really-all if you really want it: https://github.com/kubernetes/kubectl
  • How to change a POD label via client-go?
    1 project | /r/kubernetes | 30 Sep 2021
    You could take a look at how kubectl actually does it: https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/label/label.go

cli

Posts with mentions or reviews of cli. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-05.
  • Ask HN: How many of you are self employed?
    2 projects | news.ycombinator.com | 5 Feb 2024
    I am a self-employed furniture maker. I'm that guy who somewhat infamously no longer builds software[0]. About a year ago I moved my operations from a makerspace to my own shop. That's come with its ups and downs.

    On the one hand, I know which idiot last used a tool: me.

    On the other, I would no longer see other humans besides my wife most weeks. To keep sane I also work one day a week at a bike shop fixing bikes. It's something I'd done on a volunteer basis many years back.

    The unexpected nice thing about this is that it gives me projects that are an hour or two in size in addition to the many-week sized projects that I do as part of my business. It's sort of like getting to fix a small bug in the midst of adding a big feature; it lets me pop out of the big project for a bit and see something else through from start to finish and see some tangible progress before diving back into a long-running project that moves forward in fits and starts.

    Beyond getting to tackle some bite-sized projects, I'd say the thing that sustains me is getting to work with clients. It's tons of fun when people come to me with a vision that we can iterate on and bring into reality. And then the flip side is also rewarding: getting to scratch an itch and turn a design I've been turning over in my mind into reality.

    https://github.com/docker/cli/issues/267#issuecomment-695149...

  • Why is finding a software job really hard?
    1 project | /r/SoftwareEngineering | 10 Dec 2023
    Furniture making
  • I made a small program that makes it easier to run commands inside containers
    4 projects | /r/docker | 20 Jun 2023
    On the topic of alternatives I use https://fishshell.com/ and have the Docker Completions installed.
  • no image created from running buildx build on mac M1 platform
    2 projects | /r/docker | 12 Jun 2023
    More cases like this (but don't seem to have a consensus): https://github.com/docker/cli/issues/2686
  • docker volumes - clear password
    1 project | /r/docker | 10 Jun 2023
    anything happening with this that anyone is aware of: https://github.com/docker/cli/issues/2802
  • docker-compose project — configuring CloudWatch for EC2 deployments but not on local dev environments
    1 project | /r/docker | 30 May 2023
    I found a few different issues in docker tracker about this issue, but the only one which seems to be merged is this one which has docker ignore any options which start with x- but that doesn't seem to help here as the local log driver then just complains about:
  • Containers with named volumes cannot start anymore
    1 project | /r/docker | 23 Apr 2023
    The service in the error is about docker swarm (that you didn't mention). It seems like you have an issue similar to this one: https://github.com/docker/cli/issues/2875
  • [Docker] Installer CLI uniquement sur mac
    1 project | /r/enfrancais | 2 Apr 2023
  • Docker is deleting Open Source organisations - what you need to know
    10 projects | /r/programming | 15 Mar 2023
    Docker itself is open-source, and has slowly been broken down into modular components that are themselves open-source. For example, most of what "run this Docker container" does has been extracted out into containerd, which is Apache licensed and used by lots of things. The Docker CE engine is now based on Moby, also Apache license, and the docker command line tool is also Apache licensed. I expect these tools to continue to be community-maintained (though maybe without the Docker name) due to their immense popularity even Docker Inc folds.
  • GCC missing in Ubuntu 22.10 for RISC-V 64-bit
    2 projects | /r/RISCV | 11 Mar 2023
    Docker has a bunch of components, including the CLI, a runtime etc. They're pretty much all definitely open source, e.g.: https://github.com/docker/cli

What are some alternatives?

When comparing kubectl and cli you can also consider the following projects:

helm - The Kubernetes Package Manager

docker-cli-builder - Build Docker CLI for Windows

kubernetes - Production-Grade Container Scheduling and Management

gluetun - VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.

client-go - Go client for Kubernetes.

glab - The GitLab CLI tool. Archived: now officially adopted by GitLab as the official CLI tool and maintained at https://gitlab.com/gitlab-org/cli. See https://github.com/profclems/glab/issues/983

robusta - Kubernetes observability and automation, with an awesome Prometheus integration

encrypted-dns - DNS over HTTPS config profiles for iOS & macOS

cli - GitHub’s official command line tool

podman-compose - a script to run docker-compose.yml using podman

Mattermost - Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..

SSVM - WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.