Skip to content

Decide on the Deployment Model #97

@arkodg

Description

@arkodg

Outlining various deployment models that allow the project to achieve its goals

CP = Control Plane
DP = Data Plane

EG Deployment Tradeoffs

  1. Combine CP and Envoy (DP) into a single deployment
  • Similar to what is done in Emissary today
  • Every CP watches for a specific GatewayClass, as well as the Gateway and HTTPRoute resources linked to it
  • Pros
    • Simple to deploy & operate
    • Makes internal & user cert management simpler (Unix domain sockets b/w Envoy and xDS Server)
    • Simpler upgrades
  • Cons
    • More load on k8s API Server
    • Resource consumption increases - CPs are duplicating work
    • Aggregation of stats/status across all identical controllers moves into the CLI, external layer
  1. Provision a unique CP and Envoy (DP) per GatewayClass
  • Similar to what is done in Contour today
  • The main provisioner watches for a specific GatewayClass, and creates a CP per GatewayClass
  • Each CP watches for Gateway and HTTPRoutes and configures the xDS Server tied to it
  • Pros
    • Simpler CP
    • Envoy scales with App load but CP doesnt
    • API server load independent from App load
    • Isolates user certs by isolating xDS Servers
  • Cons
    • Non trivial Authn + Authz between CP and Envoy
    • More containers/deployments to manage & operate
    • Another communication channel over the network between the main provisioner and every CP to aggregate stats/status
    • Non trivial upgrades
  1. Common CP with a unique Envoy (DP) per GatewayClass
  • Similar to what is done in Istio today

  • The xDS Server is shared across all Envoys

  • The DP component also contains an agent (similar to Istio-agent) that performs SDS local to the Envoy

  • Pros

    • Most efficient model
    • Easier to aggregate stats
    • Easier to collect cluster state
  • Cons

    • Non trivial upgrades
    • Non trivial Authn + Authz between CP and Envoy
    • Implement & Maintain a DP Sidecar Agent / SDS Server

Relates to #40 & #41

Metadata

Metadata

Assignees

Labels

area/infra-mgrIssues related to the provisioner used for provisioning the managed Envoy Proxy fleet.area/xds-serverIssues related to the xDS Server used for managing Envoy configuration.kind/decisionA record of a decision made by the community.kind/questionFurther information is requested

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions