-
Notifications
You must be signed in to change notification settings - Fork 67
Description
(This is a task description for the Centaurus Summer Camp 2021 event)
Summary
Update Arktos deployment scripts to support Mizar as its network provider. This includes several deployment environments: local machine, GCE and AWS.
Motivation
Mizar is a project under Centaurus that provides a XDP/eBPF based SDN networking. It is designed to have a high-performance data-plane along with low provisioning latency which makes it a highly scalable networking solution for Arktos clusters, Kubernetes clusters, and for data center networking where pods & light-weight VM can come and go at a rapid rate.
Arktos has deployment tools named arktos-up, and kube-up/kube-down that allow users to deploy an Arktos cluster locally or in GCE / AWS respectively. The goal of this project is to support deployment of Mizar as the network provider for Arktos deployments in local, GCE, and AWS environments. This will allow Mizar to be "self-hosted" and used in Arktos, where it gets routine exposure to developer use and scale-testing, and it allows us to compare it with other supported networking solutions.
Requirements
- Add support for Mizar as CNIPLUGIN in arktos-up script.
- Add support to deploy Mizar as NETWORK_PROVIDER for Arktos in GCE where Mizar containers images are pulled from docker hub.
- Add support for "dev mode" deployment of Mizar as NETWORK_PROVIDER for Arktos in GCE where Mizar container images from a specified location are uploaded as part of the kube-up deployment, and used in the cluster.
- Add support to deploy Mizar as NETWORK_PROVIDER for Arktos in AWS.
- Add post-deployment network health-check by that pods can be successfully deployed across different worker nodes, and the pods can ping each other, and are also reachable via service.
- Fix Mizar yaml so to work in Cluster scope instead of Namespaced scope.
- Stretch goal: Get Mizar working with multitenancy for Arktos scaleout architecture
Deliverables
- hack/arktos-up.sh that supports CNIPLUGIN=mizar , ensures Mizar networking is up and running.
- cluster/kube-up.sh that supports NETWORK_PROVIDER=mizar for GCE and AWS deployments, ensure Mizar networking is healthy.
- "dev mode" Mizar + Arktos deployment for GCE
Recommended skills: Kubernetes, Python, Bash scripting, Golang
Advisor(s): @vinaykul (Vinay Kulkarni)
Resources
- The script to bring up a local cluster: https://github.com/CentaurusInfra/arktos/blob/master/hack/arktos-up.sh
- The script to deploy Arktos in GCE / AWS: https://github.com/CentaurusInfra/arktos/blob/master/cluster/kube-up.sh
- AWS setup guide: https://github.com/CentaurusInfra/arktos/blob/master/docs/setup-guide/aws-dev-cluster.md
- GCE setup guide: