From 6c60620ad437d1be284a194e2e950f2890a1c636 Mon Sep 17 00:00:00 2001 From: Sergey Kanzhelev Date: Sat, 6 Mar 2021 06:42:10 +0000 Subject: [PATCH 1/5] added note about the name being an identifier --- .../en/docs/concepts/overview/working-with-objects/names.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/en/docs/concepts/overview/working-with-objects/names.md b/content/en/docs/concepts/overview/working-with-objects/names.md index bc89d1c30a..a74b59c71a 100644 --- a/content/en/docs/concepts/overview/working-with-objects/names.md +++ b/content/en/docs/concepts/overview/working-with-objects/names.md @@ -24,6 +24,10 @@ For non-unique user-provided attributes, Kubernetes provides [labels](/docs/conc {{< glossary_definition term_id="name" length="all" >}} +{{< note >}} +In cases when objects represent a physical entity (like Node represent a physical host), when host is re-created under the same name without deleting and re-creating a Node, Kubernetes will treat it as a same thing, which may lead to inconsistencies. +{{< /note >}} + Below are three types of commonly used name constraints for resources. ### DNS Subdomain Names From 7a5da05b9569fe130fcc54c03e3c01b8029b4d5c Mon Sep 17 00:00:00 2001 From: Sergey Kanzhelev Date: Sat, 6 Mar 2021 07:15:20 +0000 Subject: [PATCH 2/5] add inconistency message to Nodes page as well --- content/en/docs/concepts/architecture/nodes.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index 7bd4b355b6..cd2c2291c5 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -66,6 +66,15 @@ delete the Node object to stop that health checking. The name of a Node object must be a valid [DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names). +{{< note >}} +The [name](/docs/concepts/overview/working-with-objects/names#names) identifies a Node. Two Nodes +cannot have the same name at the same time. Kubernetes also assumes that a resource with the same +name is the same object. In case of a Node, it is implicitly assumed that an instance using the +same name will have the same state (e.g. network settings, root disk contents). This may lead to +inconsistencies if instance was altered without the change of a name or deleting and re-creating the +Node object from API server. +{{< /note >}} + ### Self-registration of Nodes When the kubelet flag `--register-node` is true (the default), the kubelet will attempt to From 40950997bee0d673f46cb810902ea8d09373324a Mon Sep 17 00:00:00 2001 From: Sergey Kanzhelev Date: Thu, 11 Mar 2021 17:19:23 -0800 Subject: [PATCH 3/5] Update content/en/docs/concepts/architecture/nodes.md Co-authored-by: Tim Bannister --- content/en/docs/concepts/architecture/nodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index cd2c2291c5..11343a2d8a 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -71,7 +71,8 @@ The [name](/docs/concepts/overview/working-with-objects/names#names) identifies cannot have the same name at the same time. Kubernetes also assumes that a resource with the same name is the same object. In case of a Node, it is implicitly assumed that an instance using the same name will have the same state (e.g. network settings, root disk contents). This may lead to -inconsistencies if instance was altered without the change of a name or deleting and re-creating the +inconsistencies if you modify an instance without changing its name. If you want to replace a node, you should +make sure to remove the existing Node object from API server. {{< /note >}} @@ -367,4 +368,3 @@ For example, if `ShutdownGracePeriod=30s`, and `ShutdownGracePeriodCriticalPods= * Read the [Node](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md#the-kubernetes-node) section of the architecture design document. * Read about [taints and tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/). - From eb4b67d8a22466c72cef5a0b2b7442b4d82b36aa Mon Sep 17 00:00:00 2001 From: Sergey Kanzhelev Date: Tue, 16 Mar 2021 23:22:10 -0700 Subject: [PATCH 4/5] Update content/en/docs/concepts/overview/working-with-objects/names.md Co-authored-by: Celeste Horgan --- .../en/docs/concepts/overview/working-with-objects/names.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/en/docs/concepts/overview/working-with-objects/names.md b/content/en/docs/concepts/overview/working-with-objects/names.md index a74b59c71a..8e74eb5c0b 100644 --- a/content/en/docs/concepts/overview/working-with-objects/names.md +++ b/content/en/docs/concepts/overview/working-with-objects/names.md @@ -25,7 +25,7 @@ For non-unique user-provided attributes, Kubernetes provides [labels](/docs/conc {{< glossary_definition term_id="name" length="all" >}} {{< note >}} -In cases when objects represent a physical entity (like Node represent a physical host), when host is re-created under the same name without deleting and re-creating a Node, Kubernetes will treat it as a same thing, which may lead to inconsistencies. +In cases when objects represent a physical entity, like a Node representing a physical host, when the host is re-created under the same name without deleting and re-creating the Node, Kubernetes treats the new host as the old one, which may lead to inconsistencies. {{< /note >}} Below are three types of commonly used name constraints for resources. @@ -90,4 +90,3 @@ UUIDs are standardized as ISO/IEC 9834-8 and as ITU-T X.667. * Read about [labels](/docs/concepts/overview/working-with-objects/labels/) in Kubernetes. * See the [Identifiers and Names in Kubernetes](https://git.k8s.io/community/contributors/design-proposals/architecture/identifiers.md) design document. - From 607e086ffdbd0e2c1a3896236b5ddff41eea573e Mon Sep 17 00:00:00 2001 From: Sergey Kanzhelev Date: Wed, 17 Mar 2021 06:26:30 +0000 Subject: [PATCH 5/5] converted Node to a separate section --- content/en/docs/concepts/architecture/nodes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index 11343a2d8a..6f623ccc98 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -66,15 +66,15 @@ delete the Node object to stop that health checking. The name of a Node object must be a valid [DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names). -{{< note >}} +### Node name uniqueness + The [name](/docs/concepts/overview/working-with-objects/names#names) identifies a Node. Two Nodes cannot have the same name at the same time. Kubernetes also assumes that a resource with the same name is the same object. In case of a Node, it is implicitly assumed that an instance using the same name will have the same state (e.g. network settings, root disk contents). This may lead to -inconsistencies if you modify an instance without changing its name. If you want to replace a node, you should -make sure to remove the existing -Node object from API server. -{{< /note >}} +inconsistencies if an instance was modified without changing its name. If the Node needs to be +replaced or updated significantly, the existing Node object needs to be removed from API server +first and re-added after the update. ### Self-registration of Nodes