Skip to content
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

Several glossary entries about cluster architecture may lead to confusion #48556

Open
TransitivityPaul opened this issue Oct 27, 2024 · 12 comments
Assignees
Labels
language/en Issues or PRs related to English language needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@TransitivityPaul
Copy link

I'm not sure if this is the right channel, but..

For various reasons I'm modeling Kubernetes and am trying to land on definitions that are a little more precise so that I can reason about the structure. Any thoughts below are as much to get a response around their correctness (so that I get my model right) as they are about suggested updates to the glossary itself.

Regarding the definition of Cluster - The terms "worker machine" and "worker node" seem perhaps unnecessary and potentially confusing. Especially as worker * may also (optionally) host elements of the control plane. Is the distinction between a worker node and a non-worker node meaningful? Is it possible to simplify the definition by saying that:

A Kubernetes cluster is composed of a set of one or more nodes that are exclusively managed by an instance of the Kubernetes control plane. The control plane runs on one of more of the nodes in the cluster, and is responsible for managing the cluster, and the containerized workloads (in the form of pods) that run on member nodes.

As it stands, the definition also doesn't preclude the control plane being hosted outside of the cluster, even though the architecture diagram shows it being within the cluster. I know of some cluster frameworks that do support "externalized" control planes or control plane components.

Control Plane - It might make sense to reorder the words or to add a comma to make it clear that..

The control plane provides API/Interface driven management of the lifecycles and service levels (performance, scale, availability etc,) of the containerized workloads that run on the cluster, and of the cluster itself. Components of the control plane may be distributed across multiple nodes for scale and/or resilience. Components of the control plane may also be co-located with containerized workloads, i.e. pods, on the same node.

Node could perhaps likewise be simplified...

A node is a member of a Kubernetes cluster. It consists of a machine, either a physical computer or a virtual machine, together with an operating system, and appropriate Kubernetes services. A node may host control plane components, containerized workloads, in the form of Pods, or both...

Is there a reason to continue to refer to Masters and Minions at all? If they still occur in documents that are not yet deprecated, then it might make sense to call this out specifically as glossary items.

Master - A deprecated term, that is still extant in some older documents, referring to nodes dedicated to running the control plane.

Otherwise it may make sense to drop the terms completely. The term Master is somewhat pejorative, especially considering cluster role definitions of the past.

Anyway, I hope you can help me me land on the accurate definitions for myself, and perhaps these may also help evolve the glossary.

Best regards
Paul

@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Oct 27, 2024
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

SIG Docs takes a lead on issue triage for this website, but any Kubernetes member can accept issues by applying the triage/accepted label.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@sftim
Copy link
Contributor

sftim commented Oct 27, 2024

Regarding the definition of Cluster - The terms "worker machine" and "worker node" seem perhaps unnecessary and potentially confusing. Especially as worker * may also (optionally) host elements of the control plane. Is the distinction between a worker node and a non-worker node meaningful? Is it possible to simplify the definition by saying that:

A Kubernetes cluster is composed of a set of one or more nodes that are exclusively managed by an instance of the Kubernetes control plane. The control plane runs on one of more of the nodes in the cluster, and is responsible for managing the cluster, and the containerized workloads (in the form of pods) that run on member nodes.

No; that wouldn't be correct. The control plane is always part of the cluster, but doesn't have to run as containers.

@sftim
Copy link
Contributor

sftim commented Oct 27, 2024

As it stands, the definition also doesn't preclude the control plane being hosted outside of the cluster, even though the architecture diagram shows it being within the cluster. I know of some cluster frameworks that do support "externalized" control planes or control plane components.

The control plane is always part of the cluster, but you don't have to use Kubernetes technology to supervise and deploy it.

@sftim
Copy link
Contributor

sftim commented Oct 27, 2024

Node could perhaps likewise be simplified...

A node is a member of a Kubernetes cluster. It consists of a machine, either a physical computer or a virtual machine, together with an operating system, and appropriate Kubernetes services. A node may host control plane components, containerized workloads, in the form of Pods, or both...

You are welcome to send in a pull request.

Is there a reason to continue to refer to Masters and Minions at all? If they still occur in documents that are not yet deprecated, then it might make sense to call this out specifically as glossary items.

Yes, lots of documentation and code in the wider ecosystem still uses the term master. Some very old docs talk about minions.

We could move the minion explanation to its own glossary entry; contributions are, again, very welcome.

/language en

@k8s-ci-robot k8s-ci-robot added the language/en Issues or PRs related to English language label Oct 27, 2024
@sftim
Copy link
Contributor

sftim commented Oct 27, 2024

Is the distinction between a worker node and a non-worker node meaningful?

A worker node is a node that isn't used to host any part of the control plane. If this isn't clear, let's try to improve the docs we have.

@babugeet
Copy link
Contributor

@sftim : can i take it up?
/assign

@TransitivityPaul
Copy link
Author

TransitivityPaul commented Oct 31, 2024 via email

@sftim
Copy link
Contributor

sftim commented Oct 31, 2024

Best place for discussion? Likely https://discuss.kubernetes.io/

Whether a node without any part of the control plane is treated fundamentally differently from other nodes in any way? Does it get preferential treatment or otherwise?

I'd take that question to the forums. This repo is for improving the docs.

Whether you can have a cluster with no worker nodes, i.e. that each node hosts some aspect of the control plane? For example a basic 2 node cluster with that has control plane elements on both nodes?

You can have no nodes at all, but it's rarely done. The jargon term is scaling to zero. You also get clusters with only control plane nodes, and workloads scheduled onto the nodes that run the control plane. This is more common but still not the typical way to operate Kubernetes.

@sftim
Copy link
Contributor

sftim commented Oct 31, 2024

@TransitivityPaul if your main aim was to learn Kubernetes, please consider closing this issue.

@TransitivityPaul
Copy link
Author

TransitivityPaul commented Oct 31, 2024 via email

@sftim
Copy link
Contributor

sftim commented Nov 7, 2024

/retitle Several glossary entries about cluster architecture may lead to confusion

It's more that the glossary entries fail to head off (avoid) the confusion, but we like terse issue titles.

We don't set out for the glossary to supersede or substitute for reading the actual concept guide, but it's plausible that a minority of readers will do the same thing.

@k8s-ci-robot k8s-ci-robot changed the title Glossary - Seeking greater clarity in a number of definitions... Several glossary entries about cluster architecture may lead to confusion Nov 7, 2024
@sftim
Copy link
Contributor

sftim commented Nov 11, 2024

See #48686

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
language/en Issues or PRs related to English language needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

4 participants