{"title":"Kubernetes的共享资源编排扩展以支持实时云容器","authors":"Gabriele Monaco, Gautam Gala, G. Fohler","doi":"10.1109/ISORC58943.2023.00022","DOIUrl":null,"url":null,"abstract":"The improvements in network latency and the advent of Edge computing have inspired industries to explore providing Real-time (RT) applications as cloud-based services and benefit from the availability, scalability, and efficient hardware resource utilization of clouds. It is crucial to improve the entire stack, including the applications’ containerization, container deployment, and orchestration across nodes to host RT applications in the cloud. However, state-of-the-art container orchestrators, e.g., Kubernetes (K8s), and the underlying Linux and containerization layer ignore orchestration and management of shared resources (e.g., memory bandwidth, cache); thus, rendering them unsuitable for RT use cases due unpredictability as a result of shared resource contention. We propose K8s extensions inspired by existing RT resource management frameworks to the underlying Linux kernel and containerization layer of each node for shared resource monitoring to help K8s maintain a cloud-wide view and allocate and dynamically orchestrate shared resources to enforce the guarantees required by the RT containers. Additionally, as a proof-of-concept, we design and implement (1) new K8s shared resource orchestration extensions to support memory bandwidth and last-level cache allocation and (2) a shared-resource controller in Linux based on a new algorithm to combine approximate but throttling-free memory bandwidth allocation by simple and efficient hardware controllers (e.g., Intel MBA) together with strict but pessimistic guarantees offered by software budget allocation and throttling (e.g., Memguard). We performed experiments to evaluate and demonstrate the newly implemented extensions on server-grade hardware.","PeriodicalId":281426,"journal":{"name":"2023 IEEE 26th International Symposium on Real-Time Distributed Computing (ISORC)","volume":"423 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Shared Resource Orchestration Extensions for Kubernetes to Support Real-Time Cloud Containers\",\"authors\":\"Gabriele Monaco, Gautam Gala, G. Fohler\",\"doi\":\"10.1109/ISORC58943.2023.00022\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The improvements in network latency and the advent of Edge computing have inspired industries to explore providing Real-time (RT) applications as cloud-based services and benefit from the availability, scalability, and efficient hardware resource utilization of clouds. It is crucial to improve the entire stack, including the applications’ containerization, container deployment, and orchestration across nodes to host RT applications in the cloud. However, state-of-the-art container orchestrators, e.g., Kubernetes (K8s), and the underlying Linux and containerization layer ignore orchestration and management of shared resources (e.g., memory bandwidth, cache); thus, rendering them unsuitable for RT use cases due unpredictability as a result of shared resource contention. We propose K8s extensions inspired by existing RT resource management frameworks to the underlying Linux kernel and containerization layer of each node for shared resource monitoring to help K8s maintain a cloud-wide view and allocate and dynamically orchestrate shared resources to enforce the guarantees required by the RT containers. Additionally, as a proof-of-concept, we design and implement (1) new K8s shared resource orchestration extensions to support memory bandwidth and last-level cache allocation and (2) a shared-resource controller in Linux based on a new algorithm to combine approximate but throttling-free memory bandwidth allocation by simple and efficient hardware controllers (e.g., Intel MBA) together with strict but pessimistic guarantees offered by software budget allocation and throttling (e.g., Memguard). We performed experiments to evaluate and demonstrate the newly implemented extensions on server-grade hardware.\",\"PeriodicalId\":281426,\"journal\":{\"name\":\"2023 IEEE 26th International Symposium on Real-Time Distributed Computing (ISORC)\",\"volume\":\"423 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2023 IEEE 26th International Symposium on Real-Time Distributed Computing (ISORC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ISORC58943.2023.00022\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2023 IEEE 26th International Symposium on Real-Time Distributed Computing (ISORC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISORC58943.2023.00022","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Shared Resource Orchestration Extensions for Kubernetes to Support Real-Time Cloud Containers
The improvements in network latency and the advent of Edge computing have inspired industries to explore providing Real-time (RT) applications as cloud-based services and benefit from the availability, scalability, and efficient hardware resource utilization of clouds. It is crucial to improve the entire stack, including the applications’ containerization, container deployment, and orchestration across nodes to host RT applications in the cloud. However, state-of-the-art container orchestrators, e.g., Kubernetes (K8s), and the underlying Linux and containerization layer ignore orchestration and management of shared resources (e.g., memory bandwidth, cache); thus, rendering them unsuitable for RT use cases due unpredictability as a result of shared resource contention. We propose K8s extensions inspired by existing RT resource management frameworks to the underlying Linux kernel and containerization layer of each node for shared resource monitoring to help K8s maintain a cloud-wide view and allocate and dynamically orchestrate shared resources to enforce the guarantees required by the RT containers. Additionally, as a proof-of-concept, we design and implement (1) new K8s shared resource orchestration extensions to support memory bandwidth and last-level cache allocation and (2) a shared-resource controller in Linux based on a new algorithm to combine approximate but throttling-free memory bandwidth allocation by simple and efficient hardware controllers (e.g., Intel MBA) together with strict but pessimistic guarantees offered by software budget allocation and throttling (e.g., Memguard). We performed experiments to evaluate and demonstrate the newly implemented extensions on server-grade hardware.