Kubernetes & WebAssembly: strategies, debugging, and adoption
Discover the essential strategies for mastering new technologies and the exciting advancements in Kubernetes and WebAssembly.
In this interview, CNCF ambassador Shivay Lamba discusses:
How companies are increasingly adopting Kubernetes and WebAssembly, balancing on-prem and cloud resources, and using them for faster workloads.
Effective debugging using documentation, community resources, and various tools, and seeking help when needed.
His enthusiasm about contributing to the new SpinKube project, focusing on documentation and promoting WebAssembly with Kubernetes.
Relevant links
Transcription
Bart: Who are you? What's your role? And who do you work for?
Shivay: Hi, I'm Shivay. I'm a software engineer and developer relations engineer at Meilisearch. I also contribute actively to the open source project called WasmEdge, which is a WebAssembly runtime. It's part of the CNCF right now.
Bart: What are three emerging Kubernetes tools that you're keeping an eye on?
Shivay: The three main Kubernetes tools that I'm really interested in are part of the Kubernetes ecosystem. The main one is SpinKube, which essentially allows you to run WebAssembly workloads inside of Kubernetes. Not just that. Because we are integrating it with the WebAssembly shim, the containerd-wasm shim, we also have operators and schedulers that are being built for WebAssembly workloads. I'm super excited for that. The other thing that I'm really excited about is the newest releases for Kubernetes and the DRA, which is the Dynamic Resource Allocation, primarily for being able to run machine learning workloads with GPU clusters very efficiently. The capability of, in the future, adding WebGPU support, which is basically a GPU API, is being ported over to WASI. This will allow you to run GPU support for WebAssembly workloads. If you're running machine learning workloads like LLM models inferencing with WebAssembly, you'll also be able to get GPU cluster support and GPU slicing support inside your Kubernetes cluster.
Bart: One of our guests, Mathias, suggested the best way to learn Kubernetes is by doing and getting your hands dirty. He then built his own bare metal Kubernetes cluster in his spare time. What's your strategy for learning new Kubernetes tools and features?
Shivay: I think the most important aspect is just understanding how any architecture works. For example, if you're learning about Kubernetes, you know that there is the API server and then there are pods. Understanding how everything works fundamentally and then applying it through real-world projects is crucial. That is a really great way. Also, don't feel shy to reach out to the maintainers and core contributors of a project if you have any doubts about learning these technologies. For instance, when I was trying to understand containerd and how runc works, these technologies were involved when learning WebAssembly workloads and running them inside Kubernetes. I didn't know much about containerd. So I reached out to the maintainers of containerd, the VMware folks, and I was able to learn the internals of how it works. That helped me set up WebAssembly workloads directly inside containerd and run them through WasmEdge. These are very effective strategies for beginners trying to learn new Kubernetes tools or concepts.
Bart: Another guest of ours, Alex, spent several weeks troubleshooting an issue with Kubernetes, which required the team to explore the kernel code. He stressed the importance of learning while troubleshooting. Is there any practical advice that you've learned over the years regarding debugging?
Shivay: Debugging can be very stressful for a lot of folks. For me, what really works is looking at the documentation and understanding that if there is a particular type of error, I go back and try to identify the steps that I've used. And of course, looking at StackOverflow or using tools like GPT can give you some additional insights. If you're a beginner and new to a concept, the bugs or issues that arise might be something alien to you. So, reaching out to folks and using standard debugging techniques is helpful. For example, I have been involved with a lot of cloud-native web debugging. I use standard print line debugging that you would use in a normal programming language scenario, or you might use standard debuggers. Understanding the different debugging tools that are out there and which work best for you is important. Try out all of them. If you still face an issue, then reach out to team members. That's one of the effective debugging techniques that I recommend to everyone.
Bart: Kubernetes is turning 10 years old this year.
Shivay: I think as we've already seen in the past 10 years, companies have now adopted Kubernetes. A lot of companies have started to adopt it. There are a lot of Kubernetes learning resources. We'll just see more success stories of companies that have not yet migrated now moving to Kubernetes. And of course, seeing a good balance of on-prem versus cloud Kubernetes resources. I think we'll also see a lot of WebAssembly adoption and running faster workloads that do not require smaller cold start times to run on WebAssembly. And then... partnering very well with Kubernetes as well.
Bart: What's next for you?
Shivay: For me, I'm really excited about the SpinKube project as I mentioned. Just working more on it. It's a brand new project. I'll be contributing to the documentation and the project itself. Helping more people adopt it and getting better at using WebAssembly with Kubernetes.
Bart: How can people get in touch with you?
Shivay: You can connect with me on my Twitter. It's @howdevelop. I'm very active there. I'm also active on the CNCF Slack. You can reach out to me if you have any doubts or want to discuss machine learning on Kubernetes or WebAssembly on Kubernetes.