WEBVTT

00:00.000 --> 00:09.000
This is everyone, be quiet. Next talk is up.

00:09.000 --> 00:18.000
Cool. Is this good?

00:18.000 --> 00:25.000
Good. Awesome. Hello everybody. Welcome to this talk.

00:25.000 --> 00:30.000
This talk. My name is Nadia. I'm a Senior Software Engineer at Grafana Labs.

00:30.000 --> 00:35.000
My goal for today is to convince you to run your city painter in Kubernetes.

00:35.000 --> 00:41.000
If I'm not, if other man has to do that, at least I hope I can show you how to run your

00:41.000 --> 00:47.000
Vibrinder on Kubernetes. So this is like a very quick talk. I have very few time.

00:47.000 --> 00:54.000
So let's start maybe getting something to print and then we can see if that works.

00:54.000 --> 01:01.000
Hopefully it is moving, so hopefully it won't set itself on fire.

01:01.000 --> 01:06.000
Okay. Let's start. Again, quiet. Not interesting. What are we going to talk today?

01:06.000 --> 01:12.000
So I'm going to try to explain you why. I think you should do this. Why did I do this?

01:12.000 --> 01:15.000
This is like again the main focus and I'm here to convince you.

01:15.000 --> 01:18.000
Then maybe how if you are still interested after that.

01:18.000 --> 01:25.000
And then I like to talk briefly about the future of this if there is there is even one.

01:25.000 --> 01:29.000
Okay. So again, why should I do this? Why should you do this?

01:29.000 --> 01:33.000
So do you know what this is? Raise your hand. Hands up.

01:33.000 --> 01:39.000
Okay. You're thinking this is a Raspberry Pi. I mean you're not wrong, but this is not my point.

01:39.000 --> 01:43.000
This is a pet. This is buff. Pets are buff.

01:43.000 --> 01:49.000
Well, maybe I mean robot pets are buff. Well, maybe I know pet of you and they are they are not.

01:49.000 --> 01:53.000
So maybe maybe I guess my point is that the Raspberry Pi is buff after all.

01:53.000 --> 02:01.000
So if I haven't convinced you by this terminally online joke, I have a very nice table to show you.

02:01.000 --> 02:09.000
But the point I want to convey is that your 3D printer, it can be as no flick, but it doesn't have to be as no flick.

02:09.000 --> 02:16.000
So this is the table I want to show you. If you are corporate minded, this will for sure change your mind.

02:16.000 --> 02:24.000
So what do you get from Ranger's 3D printer in Kubernetes versus in that Raspberry Pi that you have had in a drawer for 3 years?

02:24.000 --> 02:32.000
Okay. If you want to run your 3D printer in, if you're running a modern 3D printer, you may actually need quite a lot of stuff, right?

02:32.000 --> 02:39.000
You probably want an HDP server to connect to the printer. So who is going to be doing that HDP serving?

02:39.000 --> 02:44.000
If you use Kubernetes, that's your English controller. You know that it works fantastically.

02:44.000 --> 02:50.000
It integrates, it does TLS for you. It integrates with less in-create. It integrates with DNS, if you are fancy.

02:50.000 --> 02:57.000
Without buying a drawer that's, you know, some server in there, you probably didn't install because you flash this from somewhere.

02:57.000 --> 03:02.000
And that's a comfortable rhythm by somebody in a forum that you copied because you wanted some feature.

03:02.000 --> 03:11.000
So it's not very maintainable. What about the OS? So if you run your 3D printer in Kubernetes, you get the same OS that you have for any scenarios.

03:11.000 --> 03:14.000
Do you know how to maintain that? Do you know how to troubleshoot that?

03:14.000 --> 03:24.000
In the Raspberry Pi, you probably have some sort of deviant in there with very special snowflakes settings that if you break, you're going to have a tough time.

03:25.000 --> 03:32.000
Okay, backups. Not super interesting for three printers because, as we're going to talk, the important thing which is the config file is going to be somewhere else.

03:32.000 --> 03:39.000
But if you wanted to backup your gcode files for, I don't know whatever reason, you hopefully have a backup controller that will take care for you.

03:39.000 --> 03:51.000
With that, with the Raspberry Pi, you probably took an image of that sticker, like two years ago, or something, and I don't know who, how the setup has diverged from that from that image.

03:51.000 --> 03:57.000
Versioning. I think this is like the biggest selling point. If I haven't commissioned by now, this will happen to me.

03:57.000 --> 04:05.000
3D printer configs are finicky. You try a lot of stuff, you know, increase this parameter, enable this experimental feature, whatever.

04:05.000 --> 04:17.000
That is tricky and error prone. So if you run this on Kubernetes, and you have a same Kubernetes data set up with gdops and whatnot, your 3D printer configuration is on Kubernetes.

04:18.000 --> 04:24.000
That means that you get it, get versions for free, and you don't have to do anything weird, you don't have to set that adok.

04:24.000 --> 04:29.000
As opposed to, you know, files that you copy over, or now we're adding more and more suffocates to it.

04:29.000 --> 04:33.000
Roll out automatic, no WCP, no nothing, Kubernetes take care.

04:33.000 --> 04:41.000
Upgrades, my big other selling point. You upgrade the 3D printer software that you're using, octoprient, clipper, this will be able to clipper.

04:41.000 --> 04:50.000
Something breaks, oh no, what do I do? You pray, you pray, you pray, you raim it, and probably lose whatever conflicts that you have done.

04:50.000 --> 04:57.000
With Kubernetes, you have, you have it in there, you just roll back to the previous container version, so that's, that's kind of nice.

04:57.000 --> 05:02.000
Okay, who has acidity printer? Probably, you have acidity time.

05:02.000 --> 05:10.000
Okay, then, do you know how this works? You get a model, you slice the model, and you get something that looks like on your left.

05:10.000 --> 05:17.000
That's called Gico, that tells the printer move here, then here, and extrude this amount of plastic, and on the way.

05:17.000 --> 05:26.000
Something in your printer will translate that to, like, pulses, electricity pulses, up and down, up and down, that will write the steppers.

05:26.000 --> 05:35.000
And, uh, turns out that, that is pretty hard to do. There is a lot of things that you can do between left and right to make your printer print better.

05:35.000 --> 05:42.000
So, at some point, somebody clever people figure out, okay, what if we don't do this inside the printer?

05:42.000 --> 05:46.000
Because that's, like, quite a lot of number crunching, and those things, like, under power.

05:46.000 --> 05:52.000
What if we put a computer in the middle? What if we have all this translation, don't buy a computer?

05:52.000 --> 06:00.000
And at this point, it's like, okay, we got it. This, this is a container. Let's, let's put it inside the container.

06:00.000 --> 06:05.000
So, how does this set up work? So, we'll have our Kubernetes cluster.

06:05.000 --> 06:11.000
We have this, on the top, this, I mean, if you have a theory printer, you probably want a webcam.

06:11.000 --> 06:17.000
So, we have a very nice application that's called go to RTC for that. So, let's put that on Kubernetes.

06:17.000 --> 06:23.000
We have, we probably want a fancy UI for your printer, that's what you saw at the beginning.

06:23.000 --> 06:30.000
And you see mainsail, there are others, that doesn't matter, that's like a completely static web application, obviously a container.

06:30.000 --> 06:36.000
Then, you got your 3D printer, like this, this server, we put in the middle.

06:36.000 --> 06:43.000
That's called, for, for what I like to use, is, is Clipper, and especially the host parties for Clippy.

06:43.000 --> 06:48.000
And there is, an oven for Clippy, that is called Moon Regal, I don't know what's called like that.

06:48.000 --> 06:51.000
But it's like puts, and rest API on top of Clipper.

06:51.000 --> 06:54.000
And that's, like, probably another container, we can container is that.

06:54.000 --> 07:01.000
We need to do, we need to give that USB access to the printer, but, okay, that's somewhat easy, right?

07:01.000 --> 07:07.000
And then, the decode files that we want to preserve for historical reasons for one of that.

07:07.000 --> 07:10.000
That can go into a volume, that's EC, Kubernetes, that's for you.

07:10.000 --> 07:16.000
And the printer config, in Clipper, that's called, the printer does CFG file.

07:16.000 --> 07:23.000
That is going to be, obviously, in a config map, that way it is version, and we can track it from, from Git and one of them.

07:23.000 --> 07:26.000
So, how can you try it?

07:26.000 --> 07:31.000
If I have, hopefully, convinced you, I have created this thing, it's called Cube Clipper.

07:31.000 --> 07:34.000
It's just a hunter, it's nothing fancy.

07:34.000 --> 07:42.000
And it is powered by the images created by this fella named Markus, who created most of the images and using,

07:42.000 --> 07:45.000
that is in that, on that second repo.

07:46.000 --> 07:52.000
So, before we jump to see if the printer has got fire or not, this is cool.

07:52.000 --> 07:54.000
I've been running this for three years.

07:54.000 --> 07:57.000
Like at this point, it has worked extremely well for me.

07:57.000 --> 08:00.000
We can show some, some manifest and some conflicts and whatnot.

08:00.000 --> 08:04.000
But I would like to pitch you an idea, maybe, if you are interested.

08:04.000 --> 08:07.000
I will, I think it will be nice to take this to the next level.

08:07.000 --> 08:12.000
I think it will be cool if we move from the hunter thingy, we make this an operator.

08:12.000 --> 08:15.000
I think it will be cool to have a custom resource that is a printer.

08:15.000 --> 08:17.000
And we can't have status in it, right?

08:17.000 --> 08:18.000
Is the thing printing?

08:18.000 --> 08:19.000
Is it not printing?

08:19.000 --> 08:20.000
Is it island?

08:20.000 --> 08:21.000
Is it skating?

08:21.000 --> 08:22.000
Like, why not?

08:22.000 --> 08:23.000
I think that will be quite cool.

08:23.000 --> 08:28.000
Because, for example, we call the use that to simply, seamlessly upgrade the printer.

08:28.000 --> 08:32.000
If you try to do that while the printer is printing, it's not going to end up great.

08:32.000 --> 08:34.000
For your printer, we'll be fine.

08:34.000 --> 08:35.000
Your print will not.

08:35.000 --> 08:37.000
So, Kubernetes to provision some of several of it as well.

08:37.000 --> 08:39.000
Maybe it is, well, maybe toss on the fan of passwords.

08:39.000 --> 08:43.000
Maybe some promissues, scripts, conflicts, or whatnot.

08:43.000 --> 08:48.000
And, I don't know, if this kind of works and people feel very, very bold about it.

08:48.000 --> 08:51.000
Maybe we can make the thing flash the printer.

08:51.000 --> 08:53.000
I think that will be nice.

08:53.000 --> 08:55.000
And it will be extra nice.

08:55.000 --> 08:56.000
And I'm dreaming at this point.

08:56.000 --> 09:01.000
But we will move this slicer to a server and have the way you, I think that will be nice.

09:01.000 --> 09:04.000
But I'm probably, I'm probably going to help this.

09:04.000 --> 09:07.000
So, I don't think I have more slides.

09:07.000 --> 09:08.000
This is my mail address.

09:08.000 --> 09:10.000
If you want to chat about this, it's very interesting.

09:10.000 --> 09:12.000
I do not try to join me.

09:12.000 --> 09:13.000
I make this a reality.

09:13.000 --> 09:15.000
Please, please get in touch.

09:15.000 --> 09:17.000
The email address is also on my website.

09:17.000 --> 09:19.000
And that's all.

09:19.000 --> 09:20.000
Thank you.

09:20.000 --> 09:30.000
I think we'd have, like, 40 seconds for questions.

09:30.000 --> 09:36.000
No, I think questions can take them outside.

09:36.000 --> 09:37.000
It's cool.

09:37.000 --> 09:38.000
Okay.

09:38.000 --> 09:39.000
Thank you very much again.

09:50.000 --> 09:51.000
Thank you.

