Summary:
We need to use support a ReadWriteMany for our application in Kubernetes in a multi-replica deployment. Our Kubernetes environment script creates an environment that has CephFS created with Rook.
Experience Required:
Kubernetes
DevOps
1 of the following programming languages: JavaScript/NodeJs, Python, Java, or C#.
Linux Scripting
Pre-requirements:
Create 2 VM with at least 2 CPUs and 4 GB of RAM.
Install Ubuntu 18 LTS Server Image. Note: Proceed with default installation. During the installation, itll give you options to install additional stuff, you dont need to check anything else. This will need to be a two master cluster.
01 Work:
1. Create a very simple Web Application
Create a very simple web application in Python, C#, NodeJs, or Java that has the following endpoints:
POST /add?id={ id} &text={ text}
- This endpoint writes the text to a id.txt in a folder specified via an Environment Variable FolderPath.
string saveFilePath = Environment.GetVariable(FolderPath) + / + id.txt;
File.WriteText(saveFilePath, text)
2. GET /get?id={ id}
This endpoint get the text from id.txt from folder specified via an Environment Variable FolderPath.
string filePath = Environment.GetVariable(FolderPath) + / + id.txt;
File.GetText(filePath)
02: Add Web Application to Kubernetes with ReadWriteManySupport
Create a CephFilesystem resource and a Deployment (3 replica) in Kubernetes environment you set up with our script using the resource above. Expose this Service via NodePort on port 30001.
Verify: The resources are written by all 3 pods and returned by all 3 pods.
03: 3. Create Another Deployment
We want to ensure two separate deployments can read and write to the shared space.
Similar to above, create another deployment (2 replicas) with same web application. You can reuse the CephFileSystem from above.
Expose this Service via NodePort on port 30001.
Verify: The resources are written by all 2 pods and returned by all 2 pods.
Verify: Documents written in Deployment1 accessible in Deployment2 via /get.
Verify: Documents written in Deployment2 accessible in Deployment1 via /get.
Outcomes:
Demo functionality of ReadWriteMany and all the Verify above.
Must be reproduceable on our machine. Provide all resources developed (web App, scripts, YAMLs).
ReadWrite should work across deployments and nodes.
Work Expectations:
Must successfully demonstrate all outcomes and pass QA prior for payment.
Work in GIT
Price Includes:
All Meetings (available Mon-Fri at 10 AM EST if there are questions)
Work clarification meetings
Final demonstration meeting by developer (if needed)
Work
Bug fixes
Documentation
Instructions on how to reproduce.
About the recuiterMember since Sep 13, 2017 Gregory P Benso
from Illinois, United States
Open for hiringApply before - Oct 27, 2024
Work from Anywhere
40 hrs / weekOffer to work on this project closes in 116 days!
Are you interested in this Opportunity?
Looking for help? Checkout our video tutorial
How to search and apply for jobs
How to apply? Do you have more questions about the Job?
See frequently asked questions