You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"description": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n",
1757
-
"markdownDescription": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.",
1758
-
"x-intellij-html-description": "\u003cp\u003eKubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\u003c/p\u003e\n"
1756
+
"description": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.\n",
1757
+
"markdownDescription": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.",
1758
+
"x-intellij-html-description": "\u003cp\u003eKubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\u003c/p\u003e\n\n\u003cp\u003eThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee \u003ca href=\"https://github.com/siderolabs/talos/issues/9980\" target=\"_blank\"\u003ehttps://github.com/siderolabs/talos/issues/9980\u003c/a\u003e for more information.\u003c/p\u003e\n"
|`kubernetes`|<ahref="#Config.cluster.discovery.registries.kubernetes">RegistryKubernetesConfig</a> |<details><summary>Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information</summary>as annotations on the Node resources.</details> ||
3833
+
|`kubernetes`|<ahref="#Config.cluster.discovery.registries.kubernetes">RegistryKubernetesConfig</a> |<details><summary>Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information</summary>as annotations on the Node resources.<br /><br />This feature is deprecated as it is not compatible with Kubernetes 1.32+.<br />See https://github.com/siderolabs/talos/issues/9980 for more information.</details> ||
3834
3834
|`service`|<ahref="#Config.cluster.discovery.registries.service">RegistryServiceConfig</a> |Service registry is using an external service to push and pull information about cluster members. ||
"description": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n",
1757
-
"markdownDescription": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.",
1758
-
"x-intellij-html-description": "\u003cp\u003eKubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\u003c/p\u003e\n"
1756
+
"description": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.\n",
1757
+
"markdownDescription": "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\n\nThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee https://github.com/siderolabs/talos/issues/9980 for more information.",
1758
+
"x-intellij-html-description": "\u003cp\u003eKubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources.\u003c/p\u003e\n\n\u003cp\u003eThis feature is deprecated as it is not compatible with Kubernetes 1.32+.\nSee \u003ca href=\"https://github.com/siderolabs/talos/issues/9980\" target=\"_blank\"\u003ehttps://github.com/siderolabs/talos/issues/9980\u003c/a\u003e for more information.\u003c/p\u003e\n"
Copy file name to clipboardExpand all lines: website/content/v1.10/talos-guides/discovery.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,8 @@ Sidero Labs runs a public external registry service, which is enabled by default
20
20
The Kubernetes registry service is disabled by default.
21
21
The advantage of the external registry service is that it is not dependent on etcd, and thus can inform you of cluster membership even when Kubernetes is down.
22
22
23
+
> Note: Kubernetes registry is deprecated as it is not compatible with Kubernetes 1.32 and later versions in the default configuration.
24
+
23
25
## Video Walkthrough
24
26
25
27
To see a live demo of Cluster Discovery, see the video below:
@@ -46,6 +48,8 @@ Disabling all registries effectively disables member discovery.
46
48
47
49
> Note: An enabled discovery service is required for [KubeSpan]({{< relref "../talos-guides/network/kubespan/" >}}) to function correctly.
48
50
51
+
### Kubernetes Registry
52
+
49
53
The `Kubernetes` registry uses Kubernetes `Node` resource data and additional Talos annotations:
> Note: Starting with Kubernetes 1.32, the feature gate `AuthorizeNodeWithSelectors` enables additional authorization for `Node` resource read access via `system:node:*` role.
64
+
> This prevents Talos Kubernetes registry from functioning correctly.
65
+
> The workaround is to disable the feature gate on the API server, but it's not recommended as it disables also other important security protections.
66
+
> For this reason, the Kubernetes registry is deprecated and disabled by default.
67
+
68
+
### Discovery Service Registry
69
+
59
70
The `Service` registry by default uses a public external Discovery Service to exchange encrypted information about cluster members.
60
71
61
72
> Note: Talos supports operations when Discovery Service is disabled, but some features will rely on Kubernetes API availability to discover
62
73
> controlplane endpoints, so in case of a failure disabled Discovery Service makes troubleshooting much harder.
63
74
64
-
## Discovery Service
65
-
66
75
Sidero Labs maintains a public discovery service at `https://discovery.talos.dev/` whereby cluster members use a shared key that is globally unique to coordinate basic connection information (i.e. the set of possible "endpoints", or IP:port pairs).
67
76
We call this data "affiliate data."
77
+
This data is encrypted by Talos Linux before being sent to the discovery service, and it can only be decrypted by the cluster members.
68
78
69
79
> Note: If KubeSpan is enabled the data has the addition of the WireGuard public key.
70
80
@@ -73,7 +83,7 @@ Each node submits its own data, plus the endpoints it sees from other peers, to
73
83
The discovery service aggregates the data, deduplicates the endpoints, and sends updates to each connected peer.
74
84
Each peer receives information back from the discovery service, decrypts it and uses it to drive KubeSpan and cluster discovery.
75
85
76
-
Data is stored in memory only.
86
+
Data is stored in memory only (and snapshotted to disk in encrypted way to facilitate quick recovery on restarts).
77
87
The cluster ID is used as a key to select the affiliates (so that different clusters see different affiliates).
78
88
79
89
To summarize, the discovery service knows the client version, cluster ID, the number of affiliates, some encrypted data for each affiliate, and a list of encrypted endpoints.
Copy file name to clipboardExpand all lines: website/content/v1.9/talos-guides/discovery.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,8 @@ Sidero Labs runs a public external registry service, which is enabled by default
20
20
The Kubernetes registry service is disabled by default.
21
21
The advantage of the external registry service is that it is not dependent on etcd, and thus can inform you of cluster membership even when Kubernetes is down.
22
22
23
+
> Note: Kubernetes registry is deprecated as it is not compatible with Kubernetes 1.32 and later versions in the default configuration.
24
+
23
25
## Video Walkthrough
24
26
25
27
To see a live demo of Cluster Discovery, see the video below:
@@ -46,6 +48,8 @@ Disabling all registries effectively disables member discovery.
46
48
47
49
> Note: An enabled discovery service is required for [KubeSpan]({{< relref "../talos-guides/network/kubespan/" >}}) to function correctly.
48
50
51
+
### Kubernetes Registry
52
+
49
53
The `Kubernetes` registry uses Kubernetes `Node` resource data and additional Talos annotations:
> Note: Starting with Kubernetes 1.32, the feature gate `AuthorizeNodeWithSelectors` enables additional authorization for `Node` resource read access via `system:node:*` role.
64
+
> This prevents Talos Kubernetes registry from functioning correctly.
65
+
> The workaround is to disable the feature gate on the API server, but it's not recommended as it disables also other important security protections.
66
+
> For this reason, the Kubernetes registry is deprecated and disabled by default.
67
+
68
+
### Discovery Service Registry
69
+
59
70
The `Service` registry by default uses a public external Discovery Service to exchange encrypted information about cluster members.
60
71
61
72
> Note: Talos supports operations when Discovery Service is disabled, but some features will rely on Kubernetes API availability to discover
62
73
> controlplane endpoints, so in case of a failure disabled Discovery Service makes troubleshooting much harder.
63
74
64
-
## Discovery Service
65
-
66
75
Sidero Labs maintains a public discovery service at `https://discovery.talos.dev/` whereby cluster members use a shared key that is globally unique to coordinate basic connection information (i.e. the set of possible "endpoints", or IP:port pairs).
67
76
We call this data "affiliate data."
77
+
This data is encrypted by Talos Linux before being sent to the discovery service, and it can only be decrypted by the cluster members.
68
78
69
79
> Note: If KubeSpan is enabled the data has the addition of the WireGuard public key.
70
80
@@ -73,7 +83,7 @@ Each node submits its own data, plus the endpoints it sees from other peers, to
73
83
The discovery service aggregates the data, deduplicates the endpoints, and sends updates to each connected peer.
74
84
Each peer receives information back from the discovery service, decrypts it and uses it to drive KubeSpan and cluster discovery.
75
85
76
-
Data is stored in memory only.
86
+
Data is stored in memory only (and snapshotted to disk in encrypted way to facilitate quick recovery on restarts).
77
87
The cluster ID is used as a key to select the affiliates (so that different clusters see different affiliates).
78
88
79
89
To summarize, the discovery service knows the client version, cluster ID, the number of affiliates, some encrypted data for each affiliate, and a list of encrypted endpoints.
0 commit comments