-
Notifications
You must be signed in to change notification settings - Fork 38.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify explanation of system concepts #22687
Comments
We should ensure the terminology is consistent across the UI and CLI, as well. |
Last week me, @floreks, @bryk and @olekzabl have had meeting regarding categorizing resources, that we want to display in Dashboard. We've prepared a list of resources (and their members) exposed by Kubernetes API:
Then we've created two propositions for categorizing them. First one contains 6 categories, second one merges two of them (policies into config):
So here's ours proposal:
Could you please take a look and tell what you think about it? Do you agree with it or perhaps you would update it? How? CC @kubernetes/dashboard-maintainers |
In a DevOps team you will find a person that setup the cluster (the op guy) and the developers. In this sense I think the grouping should reflect these roles, e.g. I think security context and secret should not be in the same group as well as persistent volume and claims. I would rather group the resources to reflect the high level use cases "manage cluster" and "manage workloads" somehow. |
CC @fwalker, @gertipoppel |
cc @pwittrock |
We also have a proposal for restructuring kubernetes docs. In the proposal we categorize concepts similar to your proposal, and we named "workloads" as "running workloads", "exposing workloads" as "discovering and load balancing", "config" as "configuring data". Other categories include "obejct metadata" (label and selectors, annotations, namespaces, names), "infrastructure" (nodes, PV and PVC), "policy" (similar to yours). We put HPA, image, container under "running workloads". |
The naming of the categories is temporary now and should be either verb+ing or noun. |
It's long, but "exposing workloads" is most commonly described as: |
I'm not keen on the -ing convention. Volume and Container are details of pods, not APIs unto themselves. Image and SecurityContext are details of a container. PodSecurityPolicy would be a policy object. Scale and Binding are subresource APIs that won't appear in the UI, nor in user-facing docs. (They should be in developer-facing docs.) There may be a "scale" knob on some other resources, though (e.g., RCs, Deployment). As Janet mentioned, several of the rows are metadata. Selector is a common concept, but not metadata. Punt on component status until we start on cluster admin views. I wouldn't make Endpoints a top-level menu item. At most, it should be a details page for a Service. A PersistentVolume is like a Node, an infrastructure resource. It should go in the same category -- cluster. I have a strong desire to minimize the number of categories that are relevant to end users / app developers. Given that PVC is the only "storage" resource, I propose a "Data" category that includes PVC, Secret, and ConfigMap. PodTemplate isn't used. Don't display it. |
Maybe @erictune has a suggest about how to categorize ServiceAccount. |
@thockin says he prefers to think of PVC as storage, which would suggest Secret and ConfigMap would go into a separate Configuration category. Or, maybe we could choose to not surface Secret and ConfigMap through the top-level menu. They are auxiliary resources. |
We still need to put Secret and ConfigMap somewhere in docs, though. |
These categories are pretty abstract, without any description how how they are used. I think serviceAccount is both a description (like a label or name) and a kind of config (it is a collection of secrets). I'd be fine with categorizing it as config. |
Some upcoming objects and tentative categorization:
|
Is it on GitHub somewhere? From what you've described, it looks like very similar to what we've proposed here, so we could merge them. |
I think this is what we've decided in the UI team talks, but decided that those objects do not deserve separate menu items or global listing. They are just properties of a pod/container/controller. CC @maciaszczykm |
|
@bryk Yes, it's true. We decided to put links to/information about some of the objects into details pages of another objects. We can access image details from controller page, but we do not list all images in the cluster and do not want to create separate menu entry for them. |
Yeah, makes sense. We've been thinking similar.
Agreed. I think we should move Volume/Container/Image/SContext to categories of their owner objects.
I like the grouping you propose, but I'm not fully satisfied with the name. "Storage" is bad for secrets and config maps, "Data" is acceptable, but generic enough to mean anything. We'll brainstorm in the UI team about other proposals. |
@bryk the docs structure proposal is in Google Docs and I've cc'ed you. That was written before this UI proposal so the categories are different as expected, for example:
This is because we didn't have "Cluster" category in docs. I plan to have the same categories in docs concept and UI (once we have a consensus). I like "Cluster"; I'll change "Infrastructure" to "Cluster" and have Nodes and namespaces there. Not sure yet if PV should be under "Cluster" or "Storage", and if PVC should be under "Storage" or "Data" or "Cluster". Note that not all concept in the doc will be shown in the UI. |
|
So, let's assume that we'll have following categories in the dashboard:
Questions:
I'll try to keep above proposal up to date. |
@maciaszczykm thanks, this proposal matches the docs well.
|
@pwittrock I'm torn about DaemonSet. I view it as a cluster admin tool and one needs to think about Nodes in order to use it, but users rightfully see it as similar to the other controllers, which I don't think we want to fight. For now, I think it makes sense to keep it under Workloads. |
If users see it as similar to other controllers, then IMHO Workloads is where it should go. |
Current state:
I've added objects from #20120, #8190 to last category, but it doesn't matter so much at the moment for the dashboard. |
Workloads are getting a bit thick, but I am not sure there is a better option available. |
We could subdivide workloads into continuous and batch. |
That might be better. Something like: Need a home???
Continuous Workloads
Run To Completion Workloads
|
The taxonomy-like grouping here mostly makes sense to me (as a Kubernetes novice). Two questions come to mind... What happens to the objects that are not categorized? For the sake of documentation, will they be given a category or just "other"? With respect to possibly using these conceptual groupings as navigation for the dashboard -- echoing both @cheld 's comment above and Material Design's navigation guide -- do we want to consider how ops and developer roles might be trying to accomplish different tasks and structure the navigation to help them best complete their tasks? |
@Lukenickerson Yes we want to structure navigation around roles + tasks the user is trying to accomplish. I think we do a better job of this in the non-concept sections. We should do that here as well to the extent that makes sense, but in some cases it will not. For example putting DaemonSet, Deployment and Job together in the same section. DaemonSet is typically going to be used most by folks managing the cluster itself, whereas Deployment and Job will be used typically by folks running their applications on the cluster. However conceptually they are just different ways of defining and scheduling workloads on the cluster and probably are should be logically close to one another. Let me know if you think there are improvements we can make in this area.
Some of these are categorized for the docs now (Labels, Horizontal Pod Autoscalers). Some of these are really just part of a concept that is covered and will be covered in them (PodStatus as part of Pod). Some may or may not make sense to have a full concept for and be documented in Task pages only (Events). The docs may have more categories than the UI dashboard does. |
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or |
This is done. |
We have lots of controllers now and lots of volume types, so it's important to explain system concepts in terms of categories of objects:
Primary:
Secondary:
cc @kubernetes/docs
The text was updated successfully, but these errors were encountered: