Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes: As Seen On TV

Kubernetes: As Seen On TV

Kubernetes is not just a product to be used solely as it comes out of the box, it’s also a platform, a series of building blocks that can be tweaked, tuned, and modified to fit more specific use cases.

At Comcast we are building a geographically distributed system to stream linear video to millions of cable customers around the country, from 1,000 physical locations, within more than 30 regional networks. We have unique requirements and constraints which have benefited incredibly from the versatility of Kubernetes.

Erik St. Martin

November 11, 2016
Tweet

More Decks by Erik St. Martin

Other Decks in Technology

Transcript

  1. IP Video Benefits • Reduced Bandwidth • More Content •

    More Formats (4k, etc) • More Devices (tablets, phones, etc) • Ubiquitous IP Network
  2. 30+ CRANs / Regional DCs 1,000+ Hub Sites 4 National

    Data Centers 5,000+ Servers / Blades
  3. Requirements • High Availability (No SPOF’s) • Stream / Hubsite

    Affinity • Static IP’s (Source Specific Multicast) • Live Updates To Stream Configuration • Real Time CPU • Deterministic Software Updates • Easy Debugging & Troubleshooting • Monitoring and Alerting • Ops tooling
  4. Require Nodes without a pod labeled: stream: stream1 Prefer Zones

    without a pod labeled: stream: stream1 Pod Anti-Affinity
  5. Tooling • kubectl get streams • kubectl get streams -l

    lineup=sports • kubectl get streams -l version,version notin (1.0) • kubectl drain <ip>
  6. CPU Real-Time Priority • Streamer requires RT priority for some

    threads • cpu.rt_runtime must be considered for scheduling • Docker creates a new cgroup for every container • cpu.rt_runtime defaults to 0 • Kubernetes has no knowledge of cpu.rt_runtime
  7. Source Specific Multicast / Networking • Requires static IP •

    IP must be pre-assigned • Layer 3 • Bandwidth based scheduling
  8. Closing • Not just an orchestration platform • Can be

    used as a framework for building distributed systems • Tons of great patterns to learn from