Endpoints

Discovery record listing the ready backend addresses behind a Service, superseded by EndpointSlice.

Provider
k8s
Category
Operations
Also known as
ep
Properties · 2 set by this component
propertytypevaluesrequiredkind defaultthis component
addressType · component propertyenumipv4 | ipv6 | fqdnno—inherited
consensusenumnone | raft | paxos | zabnononeinherited
controlPlaneManaged · component propertyboolean—notrueinherited
managedboolean—nofalse▸ false
maxEndpointsPerSlice · component propertyinteger—no100inherited
nodesinteger—no—inherited
replicatedboolean—nofalseinherited
roleenummetadata | lock | discovery | placement | sharding | leader-election | configyes—▸ discovery
Rules that apply · 2

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

shared-dependency-without-redundancy

The design requires redundant discovery, but this DNS or coordination service, which everything depends on, runs on a single provider or a single replica. Its failure is the whole system's failure.

  • — all of these hold:
  • — the design requirement `availability.discoveryRedundant` is true
  • — any of these hold:
  • — the node's `redundantProviders` is false
  • — the node's `replicated` is false
stateful-engine-pinned-to-single-zone

A matching engine, coordination service or event store living in exactly one availability zone, with no failover and no replication, is lost with that zone. Everything that depends on it stops with it.

  • — all of these hold:
  • — the node sits inside exactly 1 availability-zone group
  • — any of these hold:
  • — the node's `failover` is "none"
  • — the node's `replicated` is false
  • — the node's `replication` is "none"
Use it in a design
nodes:
  - { id: "endpoints", component: "k8s-endpoints" }
Other Coordination service products · 17
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Kubernetes Endpoints: the discovery record listing the backend addresses behind a Service.
# Deprecated since Kubernetes v1.33 in favour of EndpointSlice, which is what the control plane
# now creates and manages for every Service that has a selector. Per "EndpointSlices" a slice
# holds at most 100 endpoints by default (raisable to 1000 with --max-endpoints-per-slice on
# kube-controller-manager), and IPv4 and IPv6 addresses live in separate slices.
schemaVersion: "1"
type: "component"
id: "k8s-endpoints"
kind: "coordination-service"
provider: "k8s"
docs: "https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/"
aliases: ["ep"]
defaults:
  role: "discovery"
  managed: false
properties:
  controlPlaneManaged:
    type: "boolean"
    default: true
  maxEndpointsPerSlice:
    type: "integer"
    default: 100
  addressType:
    type: "enum"
    values: ["ipv4", "ipv6", "fqdn"]

The same page as markdown, for an agent: /catalogue/components/k8s-endpoints.md