Skip to content
This repository was archived by the owner on May 6, 2020. It is now read-only.
This repository was archived by the owner on May 6, 2020. It is now read-only.

Use one proxy per VM #795

@jodh-intel

Description

@jodh-intel

Modify runtime to launch one proxy per VM. This will improve our HA story since there will no longer be a single point of failure on the system (the system-level instance of cc-proxy).

Plan (ordered steps)

  • Update the proxy to allow 1 proxy / pod, alongside the system-level systemd cc-proxy service (One proxy per vm proxy#167).
    At this point:
    • multiple instances of cc-proxy will be able to co-exist with the system-level cc-proxy systemd service.
  • Update virtcontainers to spawn 1 proxy / pod (One proxy per vm containers/virtcontainers#483).
  • Re-vendor the virtcontainers changes into the runtime (proxy: Use one proxy instance per VM #835).
    At this point:
    • the system-level cc-proxy systemd instance won't be being used (although it can continue to run without interfering with the pod-specific cc-proxy instances).
    • we will lose the KSM feature of cc-proxy because since all the proxy requests will be handled by the pod-specific cc-proxy instances and since we don't want multiple proxies fighting over KSM kernel settings, the KSM code will never be run.
  • Create a daemon to replace the KSM functionality in cc-proxy ([PROPOSAL] [RFC] KSM throttler proxy#168)
    which is now implemented by https://github.com/kata-containers/ksm-throttler.
  • Remove the following features from the proxy:
  • Update packaging for the proxy (Package ksm-throttler packaging#198) to do something like:
     $ sudo systemctl stop cc-proxy.socket
     $ sudo systemctl stop cc-proxy.service
     $ sudo rm /lib/systemd/system/cc-proxy.socket
     $ sudo rm /lib/systemd/system/cc-proxy.service
     $ sudo systemctl daemon-reload
    
  • Release updated packages for proxy, runtime and the new KSM daemon.
    At this point, there will no longer be a system-level cc-proxy instance.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions