ShipTalk - SRE, DevOps, Platform Engineering, Software Delivery

Virtualizing Kubernetes: Efficiency and Developer Experience with Lukas Gentele from Loft Labs

By Harness Season 3 Episode 9

In this episode of the ShipTalk podcast, co-host Eric Minick talks with Lukas Gentele, co-founder and CEO of LoftLabs, about revolutionizing Kubernetes infrastructure through virtualization. Lukas shares his entrepreneurial journey starting from age 16 and explains how his company pivoted to create vcluster, a technology that virtualizes Kubernetes control planes similar to how VMs virtualize physical machines. They discuss the inefficiencies of running many small Kubernetes clusters versus optimizing resources with virtual clusters, the impact on developer workflows, and innovative approaches to CI/CD testing environments. Whether you're looking to optimize cloud costs or improve your development experience with Kubernetes, this episode offers practical insights into the future of container orchestration infrastructure.

WEBVTT


11
00:00:48.250 --> 00:01:04.750
Eric Minick: Welcome to the ShipTalk podcast my name is Eric Minick, your co-host for ship talk where we talk about the ins and outs and ups and downs of software delivery. I'm here today with Lucas Gentelli, co-founder and CEO of LoftLabs.

12
00:01:04.930 --> 00:01:07.199
Eric Minick: Welcome to ShipTalk, Lucas

13
00:01:07.830 --> 00:01:11.439
Lukas Gentele: Awesome to be here, Eric. Thanks for for making the time inviting me to the show

14
00:01:12.516 --> 00:01:23.249
Eric Minick: I'm so excited to talk to you like your your journey is is so interesting, and I I think the work that that you've been doing in the Kubernetes. Space is

15
00:01:23.430 --> 00:01:27.866
Eric Minick: really exciting and and important. So

16
00:01:28.740 --> 00:01:33.560
Eric Minick: this will be really good. You know.

17
00:01:34.290 --> 00:01:38.066
Eric Minick: Maybe we should talk about that entrepreneurial journey a little bit.

18
00:01:38.750 --> 00:01:43.788
Eric Minick: But before we do like, can I ask you like, where where are we finding you today?

19
00:01:45.450 --> 00:02:08.060
Lukas Gentele: I'm based in Miami right now. I go back and forth between the Bay Area, Europe and sometimes New York City lots of customers over there. So most of the time, I'm actually on the road, you know, meeting customers attending conferences. And yeah, the the usual life of somebody who's trying to, you know, create awareness and and talk to people about this new technology that we're building

20
00:02:08.740 --> 00:02:15.540
Eric Minick: A a lot of hustle. But we found you at home and somewhere warm in the winter. So

21
00:02:15.950 --> 00:02:20.739
Eric Minick: yeah, it's a good good time of year in Miami

22
00:02:21.710 --> 00:02:26.825
Lukas Gentele: Yeah, yeah. The weather. The weather is nice, not too, not too much winter here in March.

23
00:02:28.020 --> 00:02:33.760
Eric Minick: That's good. That's good. Yeah, not too much winter, and probably not the heat of summer, either. So cool. Alright?

24
00:02:34.589 --> 00:02:41.239
Eric Minick: Yeah. So let's let's get into that entrepreneurial journey. You know this.

25
00:02:42.597 --> 00:02:51.849
Eric Minick: We were talking earlier. You mentioned to me that you founded your 1st company at was it 16

26
00:02:52.230 --> 00:02:53.749
Lukas Gentele: Yeah, I was 16.

27
00:02:53.950 --> 00:02:59.719
Lukas Gentele: That's correct. Yeah, it's pretty pretty early. I started coding when I was like, you know, 13 or so and

28
00:02:59.970 --> 00:03:05.119
Lukas Gentele: redesigned our school website, you know, back in in high school, I guess. And

29
00:03:05.320 --> 00:03:34.759
Lukas Gentele: yeah, it was. You know, people reached out to me. They liked the new homepage. You know, the parents of other students, and they were like, Hey, can you make a website for me as well? And you know, I guess that was the starting point for me to dig a little deeper, and you know, as a as a high schooler, somebody offers you, you know, 200 bucks to to make their website. That's yeah. That's something very exciting. So you're kind of looking into. Maybe I should start a single person, you know, small small entity. So that's what I started doing when I turned 16

30
00:03:35.380 --> 00:03:41.084
Eric Minick: Yeah, you know, I think I was writing a little bit of code. Maybe it's 1718

31
00:03:42.010 --> 00:03:42.409
Lukas Gentele: Oh!

32
00:03:42.746 --> 00:04:02.250
Eric Minick: But you know, that was, you know, tweaking some things here and there, chipping into an online game. I don't think I had the the good sense to ask anybody for money. So I appreciate that you you had that that sense to be like, oh, not only do this, but I'm gonna you know.

33
00:04:02.570 --> 00:04:04.780
Eric Minick: set up a company and

34
00:04:04.780 --> 00:04:05.450
Lukas Gentele: Yeah.

35
00:04:05.450 --> 00:04:06.550
Eric Minick: Travicular.

36
00:04:06.550 --> 00:04:16.800
Lukas Gentele: Of startup owners that I know have this kind of, you know, sense of wanting to build something, and like early on, you know, seeing this opportunity, and I don't think you really

37
00:04:17.010 --> 00:04:25.459
Lukas Gentele: as considerate about it, or you're really, you know, consciously starting. Oh, I'm starting my entrepreneurial journey here, right like. I don't think anybody does that, but

38
00:04:25.640 --> 00:04:41.869
Lukas Gentele: if the opportunity presents itself, you just kind of like, you know, grasping it, I think then you're on that track. And hopefully, things go well, right? And yeah, I think that was exciting to see that people really value and that you can actually, you know.

39
00:04:42.190 --> 00:04:50.639
Lukas Gentele: make people happy with with your passion. Right? I think that's that was yeah. That was exciting for me to see. So I got got deeper and deeper from there

40
00:04:53.030 --> 00:04:56.350
Eric Minick: Yeah, that you you can. You can do some work and

41
00:04:57.010 --> 00:05:02.340
Eric Minick: bring people that joy of having solved their problem. And

42
00:05:03.230 --> 00:05:06.020
Eric Minick: but it doesn't hurt to get paid along the way

43
00:05:06.300 --> 00:05:06.965
Lukas Gentele: Sure.

44
00:05:08.060 --> 00:05:10.640
Eric Minick: No, I love that. And then

45
00:05:10.810 --> 00:05:14.969
Eric Minick: I mean, you've been doing kind of that entrepreneurial approach

46
00:05:15.310 --> 00:05:19.940
Eric Minick: pretty much your whole career like if you have you ever worked for anybody

47
00:05:20.244 --> 00:05:38.229
Lukas Gentele: Yeah, it's kind of true. I ran one business after another. Right? I yeah. When I you know, when I went to college after after high school, I still had that single person business going with the with the websites, and it expanded more into like online shops. And you know, a little bit more complex online systems. And

48
00:05:38.550 --> 00:06:01.190
Lukas Gentele: yeah, I met a whole bunch of really smart people in college. And I started just hiring them. For, you know, contract at work, you know. Some of my, you know, my high school buddies or my you know, college buddies and we we worked on on really exciting projects, and got deeper into things like containers and kubernetes right? Once that once that started and yeah, I think

49
00:06:01.510 --> 00:06:22.729
Lukas Gentele: right after college, there was the opportunity to. There was a scholarship as part of the University, right where you could. Essentially they paid you for a year to explore different areas, to found a startup, and I had no idea about startups to be clear right? Like I knew how to build this like, you know, services business right? And to.

50
00:06:22.730 --> 00:06:33.570
Lukas Gentele: you know. Get half of the money upfront, and then get the other half after completing a project, you know, and then you staff accordingly. Right like I've done this kind of stuff. But building a startup, building a product

51
00:06:33.610 --> 00:06:38.510
Lukas Gentele: and then thinking about things like a business plan and fundraising, and like these kinds of things

52
00:06:38.700 --> 00:07:06.090
Lukas Gentele: I had no idea right? So that was a really interesting opportunity. And I immediately, you know, and I immediately, you know, realized that that one year could be could be life changing. And so I started doing that, and my co-founder and CTO. Fabian joined me. He was one of the engineers that I was lucky enough to to hire eventually, in the 1st place, and so when I asked him, Hey, do you want to do this with me? He was immediately down for it. And

53
00:07:06.100 --> 00:07:15.250
Lukas Gentele: you know, I think we we saw the opportunity to build something in open source space, and, you know, got really really hooked in that in that Kubernetes space

54
00:07:16.830 --> 00:07:28.639
Eric Minick: Oh, that's that's so interesting. And you know, as as you're talking about like, oh, I needed a business plan. It sounds like your your university experience wasn't business school.

55
00:07:29.848 --> 00:07:32.431
Eric Minick: It's a little more technical than that.

56
00:07:32.800 --> 00:07:54.260
Lukas Gentele: Yeah, it's definitely technical. I think. Yeah, the degree I did was was information systems. So it's a lot about it's probably product management. If you will, right? And it's about how to build engineering teams right? But it's also hands on coding. It's a really interesting kind of mixed degree between computer science and more of the

57
00:07:54.260 --> 00:08:05.699
Lukas Gentele: the skills that you actually need to to start a startup right product management, the managing a team managing a backlog right? And and being effective as a team rather than just an IC

58
00:08:07.720 --> 00:08:15.350
Eric Minick: Yeah, that's that's actually really interesting. Because I feel like, at least

59
00:08:15.710 --> 00:08:21.479
Eric Minick: in in my university experience, that wasn't really on the table right there.

60
00:08:21.870 --> 00:08:28.340
Eric Minick: There wasn't a lot of conversation about how do you succeed as a team? Until

61
00:08:29.200 --> 00:08:31.230
Eric Minick: a little bit of a like

62
00:08:31.390 --> 00:08:38.750
Eric Minick: final senior project where they're like, Oh, well, you guys should go build something together right? And so.

63
00:08:39.270 --> 00:08:45.240
Eric Minick: you know, I'd love to see more of that spread out across the university setting of

64
00:08:45.830 --> 00:08:48.059
Eric Minick: how do we do this as a team like

65
00:08:49.570 --> 00:08:53.340
Eric Minick: what is agile like? What does this look like?

66
00:08:53.340 --> 00:08:53.910
Lukas Gentele: I think

67
00:08:53.910 --> 00:08:54.340
Eric Minick: Yeah.

68
00:08:54.340 --> 00:09:22.970
Lukas Gentele: Think hands on projects really teach you the most right. That's, I think, why, a lot of you know, people want you to have prior work experience and all that kind of stuff. Right? Because I think a lot of colleges make that mistake of, you know, I mean, you need these fundamentals. Right? I mean, I took the classes and like even math classes. And then algorithms and data structures. And like, really, these, okay, you know, Dijkstra algorithm. And these kinds of things right? Traveling salesmen. You learn all of this kind of stuff. But

69
00:09:23.320 --> 00:09:46.120
Lukas Gentele: you know how to build an online shop with 5 people. I mean, that's like, that's a different challenge. I think you know, colleges could probably do a little bit more of that. Like practical, you know, world experience right like, what what do you actually need to do? And it's a difference building something, you know, with it, with a team versus building it. You know as an individual as well

70
00:09:46.320 --> 00:09:50.074
Eric Minick: Yeah, yeah, I'm hearing some

71
00:09:51.270 --> 00:09:56.289
Eric Minick: academic listening to this right now, yelling, we're not a trade school. And okay.

72
00:09:56.800 --> 00:10:14.920
Lukas Gentele: Yeah, I think there's probably a healthy balance. Right? I think there's definitely some benefit to having the theory right and having the foundation. Right? Right? But yeah, I think these kind of mixed degrees like like I did that are not pure computer science. Right?

73
00:10:14.920 --> 00:10:35.199
Lukas Gentele: I think that's something something really interesting, and I think a lot of friend of mine did. A degree is pretty similar, and we had some excursion classes in there as well around like machine learning and like what people you know all call to AI today, right like these areas. And I think more and more people start to do these like hands-on things. Because.

74
00:10:35.200 --> 00:10:46.870
Lukas Gentele: you know, theoretically, talking about a neural network is is a way different thing than actually doing things like neural network sentiment, analysis. And all these kind of things hands-on right? You're really seeing the problem. Once you actually

75
00:10:46.870 --> 00:10:48.279
Lukas Gentele: start working on it.

76
00:10:50.660 --> 00:10:54.060
Eric Minick: Yeah, no, I I that makes a world of sense.

77
00:10:54.710 --> 00:11:08.059
Eric Minick: I guess. Speaking of that, that concrete, I guess we we can bring it back. You you had mentioned kind of meeting up with your co-founder and getting kind of deep into kubernetes in.

78
00:11:08.760 --> 00:11:13.640
Eric Minick: Then you said founding your company, and that's that's loft labs that that you were speaking about. There

79
00:11:14.080 --> 00:11:32.729
Lukas Gentele: We actually had a company before that, and we even had an open source project before Vcluster. Some folks probably know that story, others. This is probably new, you know, before we started Vcluster in 2021, we actually launched an open source project in 2018, and it's called Dev space

80
00:11:32.730 --> 00:12:01.890
Lukas Gentele: part of the Cncf. Right now it's in the sandbox. And as a developer tool for Kubernetes, we really started out from that, you know, developer engineering perspective. Right? We, you know, I was always like as a hobby kind of running my own mail server and doing some of these like sysadmin. I had a co-located server like all of this kind of stuff, right? Going into data center, doing the cables right? I spun up kubernetes, clusters on bare metal and these kinds of fun things, but we were generally both my co-found and me. We were more

81
00:12:01.890 --> 00:12:10.129
Lukas Gentele: engineers than like it Admins. And you know those those folks that are, you know, more dominant in the Kubernetes space.

82
00:12:10.200 --> 00:12:32.499
Lukas Gentele: So we were like, okay, this technology is so fascinating. How can we make the developer experience and development flow easier on top of Kubernetes and that 1st project we kind of built for ourselves and then open source it. And that's really what got us hooked on building open source and rooting your business and open source. Despite, you know that 1st attempt to build a you know.

83
00:12:32.500 --> 00:12:50.829
Lukas Gentele: a startup and a commercial offering and called it dev space cloud. It was like a pass. It ultimately failed, and we pivoted, and the result of that pivot is vcluster, because, you know one of the things we learned while building the pass was, how do you share a Kubernetes cluster? How do you dice it up

84
00:12:50.860 --> 00:13:03.319
Lukas Gentele: and really create these subunits in Kubernetes. How do you do? Multi-tenancy? And how do you do it at very low cost? Because one of the reasons we had to pivot was, we had a ton of users. A lot of people liked the experience.

85
00:13:03.320 --> 00:13:23.149
Lukas Gentele: Not a lot of people wanted to pay for it. So you're kind of forced into the situation. How do we optimize this? Make this as cheap as possible, because, you know, the easy way out would be, give everybody their own full blown cluster. But there was no way we could have afforded that with our free tier. And then we started innovating in that space and realized, Hey, maybe what we just built for ourselves here

86
00:13:23.210 --> 00:13:24.110
Lukas Gentele: is

87
00:13:24.630 --> 00:13:33.329
Lukas Gentele: even more valuable if we had this stand alone rather than trying to build this pass on top of it. And that's that's how we cluster ultimately got started

88
00:13:35.040 --> 00:13:43.879
Eric Minick: So so that that's really interesting. Because I I think you know, we love containers.

89
00:13:45.190 --> 00:13:52.904
Eric Minick: yeah, it's been very consistent for pushing out our deployments and running things consistently deploying things consistently. It's great

90
00:13:53.891 --> 00:13:59.910
Eric Minick: but they're not small managing clusters, because Kubernetes is our normal way of doing it.

91
00:14:00.240 --> 00:14:08.515
Eric Minick: Those tend to be big, got a lot to layer in on that and so getting in after that expense

92
00:14:09.300 --> 00:14:19.740
Eric Minick: is a big deal, and you know, you talk to developers and like they, they don't wanna worry a lot about the price of things. But somebody does

93
00:14:19.840 --> 00:14:22.059
Eric Minick: right like it matters

94
00:14:22.910 --> 00:14:36.520
Lukas Gentele: Yeah, 100. There's so much inefficiency in Kubernetes today. Right? Yeah. I think you know, in the early days of Kubernetes, when you think about why kubernetes and containers was such a thing. It's because we wanted to get rid of

95
00:14:36.550 --> 00:14:54.530
Lukas Gentele: pet vms right. And people were called like, you know. You know, you're hurting these servers and stuff like that right? And we wanted to turn that into, you know, really like cattle and say, like, Okay, we have a fleet of vms and things get dynamically allocated with containers on top of that right. And

96
00:14:54.570 --> 00:15:07.990
Lukas Gentele: Google with this idea of Borg, you have this big network of all of these connected servers. Right? Really large scale distributed systems. That's the origins of Kubernetes and the core idea behind containers. When you look at the world today

97
00:15:08.050 --> 00:15:18.509
Lukas Gentele: it looks quite different. Actually, most enterprises today run a fleet of small clusters they don't have like one giant clusters or 10 big clusters right?

98
00:15:18.540 --> 00:15:41.869
Lukas Gentele: They're going to have 100, a thousand right, sometimes 5,000 little clusters, and they all have like 3 nodes. So you know, in a way, we don't have a pet vm anymore. We have a pet cluster that consists of 3 vms. So it's not like we solve the actual problem. We may be 3 x, the problem right? That's the state that that we're in today. And that's really what we're what we're going after and trying to trying to fix

99
00:15:43.018 --> 00:15:45.461
Eric Minick: Make sure I get this right? So

100
00:15:46.450 --> 00:15:59.729
Eric Minick: the magic of Kubernetes, from an efficiency point of view is that I'm sending you my workloads, and I'm saying I need this kind of resource. It's got a big cluster, and it's able to

101
00:15:59.870 --> 00:16:06.290
Eric Minick: distribute my workload across that cluster where there's space and where it can meet the needs of

102
00:16:06.570 --> 00:16:09.814
Eric Minick: the bits and bobs in my workload. Right?

103
00:16:10.860 --> 00:16:16.070
Eric Minick: But I lose a lot of that magic right, that efficiency magic.

104
00:16:16.280 --> 00:16:17.510
Eric Minick: When

105
00:16:17.610 --> 00:16:23.130
Eric Minick: I have a lot of tiny clusters, because you can't distribute a lot of workloads in within tiny clusters

106
00:16:23.130 --> 00:16:23.620
Lukas Gentele: Right.

107
00:16:24.520 --> 00:16:51.739
Lukas Gentele: Yeah, I mean, people forget right. But one of the core concepts in Kubernetes is that scheduler that is supposed to find out where to put this workload on which node right when to restart it, where to schedule it right. And if you have a tiny cluster well, that scheduling decision is pretty easy, because there's like 3 nodes right versus if you have a 5,000 node cluster that actually is much bigger challenge right? And you know, in the early days of Kubernetes. When you look at

108
00:16:52.170 --> 00:17:11.630
Lukas Gentele: blog posts in the Kubernetes blog, it was like, Oh, the Scheduler can now handle 500. Now it can handle a thousand. Now it can handle 5,000 nodes right? And today most clusters are much more smaller than that. And you know what's even worse is, it's not just Kubernetes that is highly inefficient in that way, because all of this runs idle most of the time. Right?

109
00:17:11.630 --> 00:17:36.459
Lukas Gentele: You also have these components in each cluster, because we all know we've all seen the Cmcf landscape with the 3,000 tools on it, or however many, it is right you have to put something in your Kubernetes cluster as an ingress controller at Prometheus for monitoring or policy agent, for, like there's so many tools you deploy, you know, storage network compliance, tools, security tools in each cluster.

110
00:17:36.540 --> 00:17:58.509
Lukas Gentele: If you're creating little tiny clusters that's not going away. But instead of running that once like running things like an Istio or an opa once in a big cluster, and all of these shoes are designed for these big clusters, you go ahead and spin it up 500 times and 500 tiny clusters. And if it's a pre-production or Ci type cluster.

111
00:17:58.650 --> 00:18:10.780
Lukas Gentele: you're only going to use that, you know, maybe 20% of the week, or something like that, if even right and the rest of the time all of these systems, one idle right or very low utilization.

112
00:18:11.250 --> 00:18:28.419
Lukas Gentele: versus when you're in a big system, you know, big Kubernetes cluster. Well, that Istio is always busy with something right, and these systems are designed to handle those loads really, really well, right? So we should make use of that and kind of go back to the to the original promise of what Kubernetes was designed to be

113
00:18:29.410 --> 00:18:50.679
Eric Minick: Yeah, we see this all the time. You know, part of our business is in cloud cost management, and so we go and inspect Kubernetes clusters, and we see low utility, low utilization, low utilization, low utilization. And you know, we're we're talking to people about how how to optimize that. But

114
00:18:50.750 --> 00:19:07.712
Eric Minick: you know, maybe part of it is, hey, merge these clusters together. Let's get bigger. So that's that's actually a really interesting spin on it. And of course, if you've got totally idle things, you should be able to detect that and turn them off when you're not using them and get clever around that

115
00:19:08.260 --> 00:19:13.199
Eric Minick: But you know there, there's gotta be some reasons why people have gone to this like

116
00:19:13.870 --> 00:19:24.779
Eric Minick: tiny cluster model. So what's what's going on here like what's behind this drift away from these big clusters down to the little clusters like

117
00:19:25.020 --> 00:19:29.259
Eric Minick: this sounds like a pain. It sounds expensive. Why are we doing this?

118
00:19:30.030 --> 00:19:36.640
Lukas Gentele: Yeah, I think, core of the problem that that I've been observing over the past few years is it's really hard to share a cluster.

119
00:19:36.880 --> 00:19:46.639
Lukas Gentele: you know, and you think that's not the case right? You think Kubernetes got it all figured out right because there's fine granular or back. There's things like namespaces. Right?

120
00:19:46.820 --> 00:19:59.660
Lukas Gentele: You think it should be possible to share. Kubernetes cluster right with with multiple tenants. But you know, I always remind people. You know, Linux has also users and find granular permissions and folders.

121
00:19:59.870 --> 00:20:03.029
Lukas Gentele: but sharing a Linux host without virtualization.

122
00:20:03.750 --> 00:20:08.790
Lukas Gentele: It's pretty hard, right? If you are not, you know.

123
00:20:08.940 --> 00:20:19.903
Lukas Gentele: a privileged user. If you don't have root control over that host, you can't install anything you like. A lot of that autonomy is taken away from you, and you're going to be very, very limited, right?

124
00:20:20.610 --> 00:20:41.980
Lukas Gentele: if you are, you know, giving everybody a server that full control. But then, obviously, you have that duplication, these wasted resources, those idle times. Right? Same applies to Kubernetes. The difference, though, is in Kubernetes, you know, before the cluster there wasn't really a virtualization technology focusing on that. You know, how do we virtualize the Kubernetes control plane similar to how you know

125
00:20:41.980 --> 00:20:54.410
Lukas Gentele: virtualization companies have focused on virtualizing the Linux kernel right? And that physical machine? Right? So we're focusing exactly on that problem we're focusing on, how do you virtualize Kubernetes itself.

126
00:20:54.730 --> 00:21:08.779
Lukas Gentele: And that way, you know, vcluster is almost like a Vm. Right? It's like inside. You feel like you got the whole thing to yourself and a whole separate thing right? But you're actually running on a shared on a shared system

127
00:21:10.210 --> 00:21:19.690
Eric Minick: Right, and then then the virtualization virtualization. Then the scheduler can still take care of placing containers appropriately and

128
00:21:20.480 --> 00:21:21.100
Lukas Gentele: Absolutely.

129
00:21:21.100 --> 00:21:21.560
Eric Minick: Hi

130
00:21:21.560 --> 00:21:40.922
Lukas Gentele: Yeah, just like in a Linux system. Right? If you have like, let's say containers as the virtualization layer. Right? If you start containers, that's essentially just processes on the underlying host. Right? I mean, obviously, they're like the C groups. And all these things right to really, you know, isolate and and put things into these containers right? But

131
00:21:41.550 --> 00:22:01.899
Lukas Gentele: you know, in the end it's just processes on the underlying. Oh, it's the same here like these pods and the actual containers they get handled by the underlying cluster. Which is why, when you know, you schedule a container through a vcluster like that part that holds that container. It's a native performance, because ultimately it runs in your eks or Gke or openshift cluster right?

132
00:22:01.990 --> 00:22:10.769
Lukas Gentele: But that control plane that gives you these namespaces and permissions, and you know all the things you can do in Kubernetes. Crds, right?

133
00:22:10.850 --> 00:22:32.919
Lukas Gentele: You have full control over them because they can be virtual like a Crd doesn't actually start something on host right? It's just entirely made up construct. That's entirely virtual. Right? So why not scope that into this virtual space and have the real things like the actual pods and maybe services right? That wire up the network between pods. Right?

134
00:22:32.920 --> 00:22:58.300
Lukas Gentele: Have them be controlled by that underlying bigger cluster right? And make that bigger cluster a little dumber as well, because it doesn't have to deal with things like Cds as much right. And these kind of, you know, multiple tenants on a different version of a Crd, right? You have all these kind of problems. If you're trying to share system. Now let's have everybody have this, these virtual objects, these higher level objects, these custom resources, and all the higher level Kubernetes constructs. Everybody gets their own

135
00:22:58.470 --> 00:23:16.759
Lukas Gentele: encapsulated in a virtual cluster, and the only thing that's shared is like nodes and pods, and the very, very bare bones underlying things in Kubernetes. That's kind of where we draw the divide. And I think Yv. Cluster is such a, you know, powerful technology, because it draws the line at this at this kind of sweet spot

136
00:23:18.560 --> 00:23:23.539
Eric Minick: That that's interesting. And you know I I like how you're drawing this analogy back to

137
00:23:23.660 --> 00:23:25.740
Eric Minick: you know. Vms, and

138
00:23:26.250 --> 00:23:33.360
Eric Minick: you know, I guess you could even say, you know, vms are working that on top of physical hardware. And all of that.

139
00:23:33.970 --> 00:23:44.779
Eric Minick: yeah, I I feel like we very often are now looking at problem spaces and going. Oh, this is totally novel and hard and difficult, and we we haven't seen this before, and

140
00:23:45.330 --> 00:23:52.149
Eric Minick: if you just look backwards in time, and squint and turn your head a little bit. You're like, oh, no, I've seen this before.

141
00:23:53.170 --> 00:23:59.930
Lukas Gentele: Yeah, history repeats itself. Right? If we if we're actually looking into it, you can learn from it

142
00:23:59.930 --> 00:24:01.659
Eric Minick: Yeah, we we know how to do this.

143
00:24:03.864 --> 00:24:07.255
Eric Minick: This, this looks right? Yeah, I I think.

144
00:24:08.930 --> 00:24:13.220
Eric Minick: no, I've we've we've seen this, you know, with, you know.

145
00:24:13.950 --> 00:24:22.703
Eric Minick: E, everywhere from, I think, some patterns in continuous integration, continuous delivery. How we're we're dealing with infrastructure.

146
00:24:23.300 --> 00:24:27.290
Eric Minick: you know, we're we're moving things forward. And you know.

147
00:24:27.860 --> 00:24:32.560
Eric Minick: boy, like, I mean Kubernetes, like, it's just still yeah.

148
00:24:34.140 --> 00:24:44.230
Eric Minick: there's there's some bloat there, and there's hassles there, and all of that. But and I'll take that over running just a a bunch of fleet of vms any day of the week, right

149
00:24:44.230 --> 00:24:46.039
Lukas Gentele: Oh 100%. Yeah.

150
00:24:47.745 --> 00:24:51.050
Eric Minick: And yeah, well, I I think we

151
00:24:51.450 --> 00:24:55.009
Eric Minick: you know, we can go back at the same time we look at, you know.

152
00:24:55.160 --> 00:25:03.289
Eric Minick: software delivery. Right? It's where you were talking at the start. Yeah, look back at.

153
00:25:03.570 --> 00:25:08.170
Eric Minick: You know where we were 1520 years ago, and people were delivering.

154
00:25:08.760 --> 00:25:23.499
Eric Minick: you know, if if you were delivering every 2 weeks, you were amazing, you're really good a lot of people monthly slower than that. And you know now a lot of people are delivering couple of times a week

155
00:25:23.680 --> 00:25:33.830
Eric Minick: couple times a day. Isn't isn't anything outrageous anymore so progress. I love the progress

156
00:25:34.270 --> 00:25:43.090
Lukas Gentele: 100%. Yeah, on the on the topic of Ci. You know, one of the most fascinating use cases for Vcust I've ever seen is people spinning up.

157
00:25:43.190 --> 00:25:58.619
Lukas Gentele: you know, 8, 9. Virtual Kubernetes clusters at the start of a Ci run. Then they run the end to end, or integration tests right, and they throw the clusters away like truly ephemeral clusters for Ci, right? Just imagine doing that with a

158
00:25:58.880 --> 00:26:15.719
Lukas Gentele: Eks cluster that takes like 30 40 min to start like nobody would spin up 8 clusters in parallel right of like, you know, 20 different vms, right? Like like you wouldn't do that in in ci, right? And you know, one of these cases I've seen is people wanting to test their

159
00:26:15.980 --> 00:26:21.609
Lukas Gentele: their software to run in different versions and configurations and flavors of Kubernetes. Right?

160
00:26:21.630 --> 00:26:44.480
Lukas Gentele: You spin up these. These virtual clusters. Run tests again. So dispose of it again right? And that wasn't really what we designed recluster for. Right. We thought more of these like long running, you know, like, maybe a dev cluster, maybe a shared ci cluster right? But we weren't thinking of like, truly a firm, hey? You spin it up in 10 seconds you run your pipelines, and then you dispose of it in 5 seconds again.

161
00:26:44.480 --> 00:27:00.289
Lukas Gentele: But yeah, I mean? Why not right? Things that are not even possible with the, with the physical thing are not now becoming possible in the virtual world, and they are accelerating things right? If you have these kind of capabilities, and you give these kind of capabilities to your engineering teams. Right?

162
00:27:00.840 --> 00:27:25.800
Lukas Gentele: A lot of conflicts and a lot of friction goes away. And and they can just, you know, autonomously move faster with, you know, delivering great software that ultimately is what they're trying to do improve the quality right? If you're saying, Hey, we can't test against 10 versions of Kubernetes. Well, today you can right like there's no excuse anymore. Right? And and I think that's going to ultimately improve. You know the delivery of software for sure.

163
00:27:26.920 --> 00:27:30.780
Eric Minick: Yeah, it in the scenario you're talking about. There is

164
00:27:31.480 --> 00:27:35.359
Eric Minick: distributing functional tests, right? And different

165
00:27:35.800 --> 00:27:39.390
Eric Minick: variations of those functional tests. Right? Yeah.

166
00:27:40.223 --> 00:27:43.310
Eric Minick: and I I've seen that sort of pattern, both

167
00:27:43.600 --> 00:27:54.809
Eric Minick: where you've got that grid of. I need to do a whole bunch of different variations. I've got different versions of things or where people have. I've got this functional test suite, and it takes me

168
00:27:54.920 --> 00:27:56.390
Eric Minick: hours to run

169
00:27:56.995 --> 00:28:06.259
Eric Minick: but if I could slice it into 30 spots and run 30 in parallel. Now I can get it done in 10 min right.

170
00:28:06.430 --> 00:28:09.690
Eric Minick: and oftentimes 10 min is faster than hours.

171
00:28:11.160 --> 00:28:34.040
Lukas Gentele: Yeah. And it matters right? Because if you you know, sometimes the I mean, obviously, it's best if you can even like replicate tests and run things even on localhost. And you know, before you even make the commit right. But once you commit to get to that validation point, to to run the full suite to get the true, you know ideally all the green check marks you want to see right?

172
00:28:34.297 --> 00:28:42.009
Lukas Gentele: If that takes, you know, 2 h or so. That's really going to slow you down like the faster you can get to that point, obviously the better. It is

173
00:28:42.900 --> 00:28:46.120
Eric Minick: And if it takes too long you're not gonna do it, or you're not gonna do it as often

174
00:28:46.280 --> 00:28:53.740
Eric Minick: right. And it leads to bad behavior. So I think if you can accelerate that, it leads to such good behavior. And it's ex- exciting.

175
00:28:54.629 --> 00:29:02.699
Eric Minick: I mean, so passionate, like good ci like I'd still say it was like.

176
00:29:03.260 --> 00:29:11.189
Eric Minick: probably for your build, Kubernetes might not be the optimal place to build, because it's kind of slow.

177
00:29:12.210 --> 00:29:41.920
Eric Minick: but well, if you got a small build you're good. You got a big build like, get as close to bare metal as you can. Just for, like the raw speed. But then, once you're doing these like distributed tests and like using that for a build, a test grid. Oh, that sounds fantastic. I I love that sort of approach to like massively parallelize, and then make it affordable by doing it just for a little while, and then bringing that infrastructure down

178
00:29:42.790 --> 00:30:03.739
Lukas Gentele: Yeah. And these kind of like, you, you know, real like end to end tests right as close to production as possible. You don't want that environment to be, you know, completely mocked and completely different than production. Because, you know, then, I I what is your confidence level of it? Actually working when you're done, you know. Like, if you let's say you run your end to end tests entirely without Kubernetes.

179
00:30:03.740 --> 00:30:16.019
Lukas Gentele: But then your product is entirely Kubernetes. Right? So it's like, you may actually want to have that validation step in an environment that's as close to production as possible. I think that instills a lot of confidence in what you're shipping

180
00:30:16.550 --> 00:30:22.169
Eric Minick: Absolutely. Yeah, that's always the game is, how do you get as close to production as possible without

181
00:30:22.800 --> 00:30:25.740
Eric Minick: having a whole new production? Sometimes, maybe don't test

182
00:30:25.740 --> 00:30:27.266
Lukas Gentele: In production.

183
00:30:28.880 --> 00:30:31.134
Eric Minick: Well, and we're seeing more and more of that, too.

184
00:30:31.360 --> 00:30:31.950
Lukas Gentele: Okay.

185
00:30:32.380 --> 00:30:34.660
Eric Minick: Which for better and worse, I think.

186
00:30:35.898 --> 00:30:41.034
Eric Minick: Okay, I I think that's that's that's really cool.

187
00:30:43.340 --> 00:30:45.979
Eric Minick: you know. Are, are there other kind of

188
00:30:47.220 --> 00:30:50.249
Eric Minick: tips that you want to bring up for kind of

189
00:30:51.060 --> 00:30:55.114
Eric Minick: doing your engineering in Kubernetes efficiently.

190
00:30:56.800 --> 00:30:59.931
Eric Minick: you know I love this kind of distributed testing.

191
00:31:01.140 --> 00:31:04.150
Eric Minick: What else? What else should people be thinking about?

192
00:31:05.620 --> 00:31:07.540
Lukas Gentele: Yeah, I think with Kubernetes, it's a

193
00:31:07.720 --> 00:31:16.199
Lukas Gentele: it's an interesting space, right? Because Kubernetes is obviously very Ops, heavy, very complex, right? And

194
00:31:16.350 --> 00:31:39.410
Lukas Gentele: you do, wanna you know, provide these golden paths for folks that don't want to be going as deep? I don't think the requirement should be. You know everything about Kubernetes before you can. You know, ship any kind of code, right, or contribute any kind of code in in a in a company. But you know there needs to be, for I think it's a fine line between

195
00:31:39.510 --> 00:31:55.170
Lukas Gentele: putting guardrails and golden paths in place versus totally locking you into, you know. Hey? We build it. We built this internal pass. Lay on top, and you can't even get the pod locks anymore. Right? I think that's a fine line. I believe in these.

196
00:31:55.360 --> 00:32:01.640
Lukas Gentele: you know more transparent type abstractions where you can look under the hood, and you can dig in

197
00:32:02.030 --> 00:32:11.271
Lukas Gentele: if you want to, and if it's helpful to you, and if you have the expertise, but you have a easy starting point for a lot of things right?

198
00:32:11.930 --> 00:32:18.130
Lukas Gentele: you know, and that. And that starts with with having, you know, just like environments that you can play around with.

199
00:32:18.410 --> 00:32:31.550
Lukas Gentele: So one of the things I've seen people do as well as you know they run certain things in their ci pipeline in a V cluster, and when a test fails like one of your end to end, test fails, etc. They keep the V cluster around.

200
00:32:31.790 --> 00:32:35.199
Lukas Gentele: So instead of doing the total cleanup, they do the cleanup.

201
00:32:35.537 --> 00:32:53.389
Lukas Gentele: you know, on a commit or on a comment, or you know, you have to actually, explicitly get rid of the environment. But you put it in. You know we have this feature in the commercial product called sleep mode, for example, that puts your V cost in a hibernation type state right where its state is still completely there

202
00:32:53.390 --> 00:33:11.610
Lukas Gentele: all the logs, everything's still there, but it's not actually running, and you can wake it up at any point in time. And that's really nice for these for these testing environments, because you can put it to sleep. And then somebody is going to debug that real Ci environment right? Retrieve it. Debug right in there, right?

203
00:33:11.740 --> 00:33:26.430
Lukas Gentele: And that's what I mean with like, you see, I shouldn't require you to, you know. Dig in Kubernetes and do any of these things manually. It should streamline things for you. But in a case you actually want to dig in. And you you need that level of information. You want to troubleshoot. Something

204
00:33:26.690 --> 00:33:30.089
Lukas Gentele: should be as easily accessible for you as possible. Right?

205
00:33:30.590 --> 00:33:41.620
Lukas Gentele: Same for deaf environments where you you should be able to spin up. You know, a cluster, you know. Obviously, you can have, like mini cube on the local machine, or kind, or something like that. But that's gonna be very different.

206
00:33:42.150 --> 00:33:55.569
Lukas Gentele: And like eks cluster right? And if you want to connect to like aws Apis or hook up an Rds. You know these kind of things are very, very different in in a local cluster than they would be an eks

207
00:33:55.570 --> 00:34:13.554
Lukas Gentele: if you give somebody a V cluster, though they're still running an eks, and their pods are still running in eks, so they can still bind to Iem Bros. They can still connect to that. You know, Rds, that you want to talk to or use those aws authentication mechanisms to do something with their Apis, where

208
00:34:14.110 --> 00:34:40.400
Lukas Gentele: but it is much cheaper than handing out completely separate eks clusters right? And you can even go to the extent that a developer, you know, like each individual developer, can have a cluster, or they can even have 3 of them. If you have the sleep mode that turns 2 of them off, and only the one that they're actually working on is is running and consume CPU memory resources, or even a Gpu for that sake to name a really expensive resource right?

209
00:34:40.980 --> 00:34:49.959
Lukas Gentele: I think that that's important to give people that kind of freedom to go in and and debug and troubleshoot. It's gonna make them so much faster

210
00:34:50.909 --> 00:34:54.159
Eric Minick: Yeah, I mean, giving developers an environment that's

211
00:34:54.479 --> 00:35:07.329
Eric Minick: vaguely realistic to actually work in is really important. I, I think we definitely agree on that, and then on the those kind of golden paths or guardrails, you know, I I think

212
00:35:07.539 --> 00:35:13.039
Eric Minick: you can give people a degree of freedom, but if you make it really easy to do things in the standard way

213
00:35:13.989 --> 00:35:20.249
Eric Minick: most people are. Gonna do it in the standard way until they have a strong need not to. And

214
00:35:20.849 --> 00:35:24.149
Eric Minick: you're gonna get the outcome you want pretty much

215
00:35:25.000 --> 00:35:25.500
Lukas Gentele: Yep.

216
00:35:25.500 --> 00:35:29.584
Eric Minick: So I think you're gonna be a good place. Give people a little bit of freedom.

217
00:35:30.160 --> 00:35:34.720
Eric Minick: maybe just ask them to let you know alright well that that was

218
00:35:34.990 --> 00:35:39.512
Eric Minick: so good. And I I know you got places to be so

219
00:35:40.590 --> 00:35:43.349
Eric Minick: won't take up too too much of your time. My friend.

220
00:35:44.025 --> 00:35:51.785
Eric Minick: So yeah, this this was so interesting. I I appreciate learning about kind of your journey.

221
00:35:52.580 --> 00:35:56.811
Eric Minick: started at 16, founding a couple of companies.

222
00:35:57.480 --> 00:36:02.079
Eric Minick: making this kind of massive pivot that they made recently from

223
00:36:02.970 --> 00:36:19.739
Eric Minick: kind of straight dev experience to that that lower layer and then in this conversation about, you know, how do we use kubernetes to really optimize the developer experience? So fascinating. So I wanna thank you for that. So Lucas.

224
00:36:19.840 --> 00:36:20.570
Eric Minick: like.

225
00:36:21.778 --> 00:36:30.260
Eric Minick: Where can our listeners find you? If they wanna learn more about you. And what you guys are up to

226
00:36:31.510 --> 00:36:37.080
Lukas Gentele: Yeah. Obviously, you can, you know, join our slack community. You can go to slack.vcast.com

227
00:36:37.417 --> 00:37:05.609
Lukas Gentele: just hit me up. Send me a DM. Right? Pretty pretty accessible there. You can find me on Linkedin and all the regular social media channels as well. And yeah, if you want to learn more about vcluster and understand how it works. It's Open source project. So best way to take a look is on Github, right? You'll find the project. There you find a lot of our other work there. We also have Dev Pod as a developer experience tool on top of Vcluster.

228
00:37:05.620 --> 00:37:15.800
Lukas Gentele: And we recently started this new product called Vnode. You just mentioned like going a layer deeper with Vnode. We're going on the node level, because, you know.

229
00:37:15.830 --> 00:37:29.670
Lukas Gentele: one thing you may notice if you spin up all of these, you know virtual clusters and share the nodes. Have parts on the shared nodes on one Kubernetes cluster. How do you keep things really separate on these shared, you know, vms, or bare metal nodes.

230
00:37:29.730 --> 00:37:48.480
Lukas Gentele: That's what we know this for. So expanding both in the lower stack and in the high level of the stack below and and on top of the cluster. So there's lots of more work to do in the future. But yeah, if anybody's interested in any of this, you know, you find me on slack or on Linkedin. That's the easiest way to get a hold of me.

231
00:37:49.240 --> 00:37:54.905
Eric Minick: Awesome. Well, congratulations on the the new product. There, that that sounds super exciting.

232
00:37:56.150 --> 00:38:09.769
Eric Minick: And yeah, with that I want to thank you so much for joining us. And I want to thank all of our listeners for joining us for another episode of the ship talk podcast

233
00:38:10.990 --> 00:38:11.750
Lukas Gentele: Thank you.

234
00:38:13.240 --> 00:38:13.770
Eric Minick: Right.


People on this episode