Kubernetes Application Survey
Results and Observations - 2018
By the Application Definition Working Group
Contact @mattfarina for more detail
I would describe my experience with Kubernetes as:
Observation: Cluster and Application Operation
207 people identified as cluster operators and application operators. Put another way, 72.6% of people who identified as application operators also identified as cluster operators (also chose “I operate Kubernetes clusters for my organization”).
Observation: Develop API Tools & Operate Apps
77.2% of those who identified as developing applications that interact with the Kubernetes API also identified as operating applications in Kubernetes.
Core Controllers
How would you describe your usage of the workload controllers (Deployment, DaemonSet, StatefulSet, ReplicaSet)?
Observation: App Operators and Workloads API
When we reduce the set to just those who identified as application operators, only 6.7% of them said they did NOT use the workloads controllers.
23% of those who identify as Application Operators said they used custom controllers to supplement the workload controllers. That number drops to 21.8% if we exclude those who also said they operated clusters for their organizations.
What do you like about the workload controllers?
Common sentiments, from 185 responses, include:
“Simplicity” | “They cover most of the common use cases needed” |
“They are pretty easy to use” | “Good fit for real world needs” |
“Save a lot of time. Simple. Automatic.” | “Clear, declarative” |
“Well thought-out interface and concept” | “I love deployments” |
“Deployment provides 99% of what we need to run an application with replicas and handle rollouts” | “Fully automated scaling and distribution, it's simply removing all the painfull effort. Just a little bit of configuration!” |
What would you like to see added or changed in the workload controllers?
Common suggestions from the 140 responses:
For more detail see the raw data.
How would you describe your usage of Jobs and CronJobs?
Observation: App Operators and Jobs/CronJobs
60.7% of those who identified as application operators said they used Jobs or CronJobs. This is up from 56.6% of all who were surveyed.
What do you like about Jobs and/or CronJobs?
Common sentiments, from 109 responses, include:
“Distributed cron jobs are amazing” | “Easy way to have a scheduled job” |
“Resource saving when job ends” | “interface to using these jobs is intuitive” |
“Simplicity” | “They are awesome” |
“Pretty straightforward to understand and use” | “Reliability” |
“Perfect for the tasks you never know how to manage” | “Much simpler and more ressource efficient that a Docker container that uses ordinary crontabs.” |
What would you like to see added or changed in Jobs and/or CronJobs?
Common suggestions from the 90 responses:
For more detail see the raw data.
kubectl
How would you describe your usage of kubectl
What do you like about kubectl?
Common sentiments, from 222 responses, include:
“It's pretty fast and relatively simple to use.” | “well documented, swiss army knife” |
“It's very powerful” | “Bash completion. Consistent syntax, help.” |
“It supports all operations of the cluster and is scriptable.” | “I love having autocomplete so, so much.” |
“multiple names including plurals for resource names is incredible!” | “well documented, nice that things can be output via yaml/json” |
What would you like to see added or changed in kubectl?
Common suggestions from the 185 responses:
For more detail see the raw data.
Kubernetes Dashboard
How would you describe your usage of the Kubernetes Dashboard
Observation: Application Operation and Dashboards
38.2% of those who said they operated applications for their organization also said they didn’t use a graphical UI.
What dashboard do you use, if you don’t use Kubernetes Dashboard?
Helm and Charts
How would you describe your usage of Helm
How would you describe your experience with Helm Charts
The default template engine (gotpl) is sufficient for my needs?
Why was gotpl insufficient for your needs, if you answered no to the previous question?
Common suggests from the 45 responses:
For more detail see the raw data.
How would you describe your usages of chart repositories
Have you used any plugins to extend helm?
What plugins have you used, if you answered yes to the previous question?
Consolidated answers from 45 responses:
Before reading this survey, were you aware that you can create your own client side plugins in Helm to extend its functionality?
Observation: Helm Plugin Awareness and Usage
Of those who said they were aware of Helm plugins, 40.9% said they had used a plugin.
What do you like about Helm?
Common sentiments, from 125 responses, include:
“Templating” | “It has a strong community and wide adoption.” |
“Flexibility” | “Versioned charts” |
“Easy to use, meets my needs, decent docs” | “standardises template hackery” |
“All the relevant things in one place. It's lovely.” | “flexible templating, plenty of prior art to look at” |
“Makes packaging application deployments easier.” | “Seems to be trying to solve a problem we have (package/release management)” |
What would you like to see added or changed in Helm?
Common suggestions from the 114 responses:
For more detail see the raw data.
How would you describe your usage of the Community Charts
Kompose
How would you describe your usage of Kompose
Minikube
How would you describe your usage of Minikube
What do you like about Minikube?
Common sentiments, from 150 responses, include:
“Simplicity” and “Easy” | “Easy to spin up a local env” |
“Simple to use for demos” | “Everything, it's awesome” |
“Mostly download+run -> ready” | “Works out of the box with zero configuration” |
“Easy local testing” | “Helps to do some training easily” |
“Fast to start, easy for quick test on development process.” | “Zero-to-Kube in moments. Great for demos, onboarding, development etc!” |
What would you like to see added or changed in Minikube?
Common suggestions from the 99 responses:
For more detail see the raw data.
What platform(s) do you run Minikube on?
Observation: Minikube Platform Usage
The Stack Overflow 2018 survey notes that 49.9% of developers use Windows as their primary operating system. This is where Minikube would run. Yet, Windows is in last place for Minikube usage at 11.8%.
Observation: Supported Versions
The Kubernetes community supports the current minor release along with the previous 2 minor releases. At the time of the survey version 1.7.x and older are no longer supported. Yet, 18% of respondents are still using 1.7.x.
What driver(s) do you use regularly with Minikube?
What bootstrapper do you use with Minikube?
What version(s) of Kubernetes are up you currently using?
What --extra-config parameters do you use?
Summary from the 46 responses (for full responses see the raw data):
What addons do you use?
Summary from the 49 responses (for full responses see the raw data):
Are you interested in having a multi-node minikube (beyond current single-node)?
What container runtime(s) do you use with minikube?
General Kubernetes
Information and Needs
Where is the software you operate in Kubernetes developed?
Which types of software do you or your organization deploy onto Kubernetes? (Part 1)
Note, there was an “other” option where individuals could fill in the blank with their workloads. Those results are on the next slide.
Which types of software do you or your organization deploy onto Kubernetes? (Part 2)
Answered filled in for this question:
I want to be able to visualize all the Kubernetes objects that make up my application
I want to be able to visualize the Kubernetes objects that make up a sub-component of my application
I want to be able to find the version of an application I have running
I want to be able to find the tool managing my application or that launched it (e.g., Helm)
I want to be able to find a pointer to more details on an application running in Kubernetes
I would like an object to represent my application running in Kubernetes. Possibly with similar content to that in a Helm Chart.yaml and that the objects representing my application can reference
I would benefit from documentation that helps me to better understand how to practically run applications in Kubernetes
I would benefit from improved clients or SDKs and developer documentation that explained how to build tools to complement Kubernetes
Which of the following publicly available tools for managing apps on Kubernetes are you using
Note: the 17 tools with 0 reported usage were not displayed
Are there any publicly available tools you use in addition to the previous set? (Part 1)
Responses listing tools used by multiple people:
Are there any publicly available tools you use in addition to the previous set? (Part 2)
Responses listing tools used by a single person:
Can you share a little about why you choose the tools you used?
Custom Tool Development
Does your organization build its own in-house tools to aid in developing and operating applications on Kubernetes
If your organization builds in-house tools, do you personally develop those tools?
If your organization builds in-house tools, why do you build them?
Common reasons from the 168 responses:
For more detail see the raw data.
CI/CD
I deploy or test Kubernetes configurations via CI/CD?
I use one or more of the following tools for CI/CD
Observation: Container Native CI
Container Native CI systems (e.g., Drone, Concourse, Gitlab CI, etc), when added together, outnumber Jenkins usage.
General Kubernetes
Do you enjoy running applications on Kubernetes?