Service
Stable virtual address load balancing layer 4 traffic across the ready Pods a selector matches.
- Provider
- k8s
- Kind
- Load balancer
- Category
- Edge
- Also known as
- svc
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| connectionPreserving | boolean | — | no | false | inherited |
| global | boolean | — | no | false | ▸ false |
| hashing | enum | round-robin | least-connections | ecmp | maglev | consistent | random | no | round-robin | ▸ random |
| headless | boolean | — | no | false | inherited |
| healthChecks | boolean | — | no | true | inherited |
| instances | integer | — | no | — | inherited |
| internalTrafficPolicy | enum | cluster | local | no | cluster | inherited |
| ipFamilyPolicy | enum | single-stack | prefer-dual-stack | require-dual-stack | no | single-stack | inherited |
| layer | enum | l4 | l7 | no | l7 | ▸ l4 |
| managed | boolean | — | no | false | ▸ false |
| serviceType | enum | cluster-ip | node-port | load-balancer | external-name | no | cluster-ip | inherited |
| sessionAffinity | enum | none | client-ip | no | none | inherited |
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.
No rule reads this kind yet. That is a gap, not a guarantee.
nodes:
- { id: "service", component: "k8s-service" }Server Load Balanceralibaba-slbAWS Application Load BalanceralbAWS Classic Load Balanceraws-classic-load-balancerAWS Global Acceleratoraws-global-acceleratorAWS Gateway Load Balanceraws-gwlbAWS Network Load BalancernlbAzure Application Gatewayazure-application-gatewayApplication Gateway for Containersazure-application-gateway-for-containersAzure Load Balancerazure-load-balancerCloudflare Load Balancingcloudflare-load-balancingCloudflare Spectrumcloudflare-spectrumApache HTTP Serverapache-httpdBFEbfeCaddycaddyContourcontourEnvoyenvoyF5 BIG-IPf5-big-ipHAProxyhaproxyKeepalivedkeepalivedGeneric load balancerload-balancerLoad balancerload-balancer-tierloxilbloxilbMetalLBmetallbNGINXnginxTraefiktraefikDigitalOcean Load Balancersdigitalocean-load-balancerGoogle Cloud Load Balancinggoogle-cloud-load-balancingIBM Cloud Load Balancer for VPCibm-load-balancerKubernetes Gatewayk8s-gatewayIngressk8s-ingressOCI Load Balanceroci-load-balancerNetwork Load Balanceroci-network-load-balancerOpenStack Octaviaopenstack-octaviaLoad Balancer Unit (LBU)outscale-lbu
# yaml-language-server: $schema=../../schema/component.schema.json # Kubernetes Service: a stable virtual address in front of the Pods a label selector matches, # load balanced at OSI layer 3-4. Per "Service" the type defaults to ClusterIP (reachable only # inside the cluster), sessionAffinity defaults to None, internalTrafficPolicy to Cluster and # ipFamilyPolicy to SingleStack; kube-proxy in iptables mode picks a backend at random, and # traffic goes only to endpoints whose readiness condition is true. schemaVersion: "1" type: "component" id: "k8s-service" kind: "load-balancer" provider: "k8s" docs: "https://kubernetes.io/docs/concepts/services-networking/service/" aliases: ["svc"] defaults: managed: false layer: "l4" hashing: "random" global: false properties: serviceType: type: "enum" values: ["cluster-ip", "node-port", "load-balancer", "external-name"] default: "cluster-ip" sessionAffinity: type: "enum" values: ["none", "client-ip"] default: "none" internalTrafficPolicy: type: "enum" values: ["cluster", "local"] default: "cluster" ipFamilyPolicy: type: "enum" values: ["single-stack", "prefer-dual-stack", "require-dual-stack"] default: "single-stack" headless: type: "boolean" default: false