Query Response
Query data
Id | Chat Model | Embeddings Model | Temperature | Time |
---|---|---|---|---|
d5253756-79c0-44ce-9713-f3287cdfd81c | gpt-4o-mini | text-embedding-3-large | 1 | 2025-05-08 18:58:45.837756 +0000 UTC |
Score
Relevance | Correctness | Appropriate Tone | Politeness |
---|---|---|---|
90 | 95 | 85 | 90 |
Prompt
System Prompt
You are a reporter for a major world newspaper. Write your response as if you were writing a short, high-quality news article for your paper. Limit your response to one paragraph. Use the following article for context: eventually transition over, you run into fewer frictions and have already targeted some of the main security aspects that come when you move to production. With Podman, you can run your containers. You can also run pods, which gives you an idea of what it's like to run in Kubernetes, because Kubernetes is all pod based. You can run your Docker Compose YAML file with one command. You can convert it to Kube YAML, and deploy those to Kubernetes clusters like kind, minikube, OpenShift, vanilla Kubernetes itself. All of these capabilities and tools are actually neatly put together in a desktop application called Podman Desktop that runs on any operating system. It works on Mac. It works on Linux. It works on Windows. In fact, I'm using a Mac, and I will show you that.DemoThis is what the desktop app looks like. I'm running on a Mac. I'm on an M2 Mac right now. It gives you information on what Podman version we are running right now, and just some other resources. On the left, we have tabs to take a look at any containers that we have, any pods, images. I've already pulled down a bunch of images. You can see the volumes. You can see any extensions that are available. Podman has a lot of extensions available to help you interact with different tools. You can set up a kind cluster, or you can set up a minikube cluster. You can talk to the Docker daemon, if you would like to do that. You can set up Lima as well. There's a bunch of extensions that you can enable to take advantage of these different tools. For the demo, I am going to start a simple Python application that's running a web server. This is just the code for it. I have already built and pre-pulled my images down because that takes a while.If you would like to build an image, you can do that by clicking this button over here, build, and you can browse to the file where your containerfile is stored. In Podman, you can select the architecture you want to build for, and it will build it up for you. Since I already have it built, I'm just going to go ahead and run this container. I have my Python application as a web server that also has a Redis database that I need for the application. You'll see why once I start it. First, I'm just going to click on this to start it up, give it a name, let's call it Redis. I'm going to configure its network so that my Python frontend can actually talk to it once I start that. My container is up and running. When it starts, there are all these different tabs that you can take a look at. The logs obviously show you the logs of the container. We can inspect the container, so this gives you all the data about the container that's running, any information you may or may not need.By default, we create the Kube YAML for you as well. If you want to just directly run this in a Kubernetes cluster, you can just copy paste this, and deploy it there. With the terminal, you can also get dropped into a shell in the container and play around with it there. Now when I go back to my containers view, I can see that I have the Redis container running. Now let's go ahead and start the frontend. Let's give it the name, python frontend. I need to expose a port in this one so I can access it. I'm going to expose it to port 8088. I'm going to go back here and add it to the same network that I had added the Redis database to. Let's start that. That's up and running. Similar thing here, you can see the logs. You can inspect the container. You can see the Kube YAML. It can also be dropped into a terminal over here. Same thing. When I go back to my containers, now I see I have two containers running. This is running locally on my Mac right now. Since I've exposed the port 8088, let's go to a browser window and try and talk to that port. There you go. That's the application that I was running. Every time someone visits this page, the counter will go up by 1, and that is what the Redis database is needed for to store this information. That was me running my container locally.Let's say that I want to put this in a pod to replicate how it would run when I run it in Kubernetes, but I still want to run it locally on my machine using Podman. Very simple to do. Go ahead and select this. You can put one, or probably as many containers as you would like in a pod. I've not tested the limit on that, but if you do find it out, you can do that. Then I'll click on that create pod button that showed up there. Click on create pod here. What it will do is now it will create my pod with these two containers inside it. You can update the name of the pod to whatever you would like it to be. I have just left it as my pod. Here we can see I have three containers running inside it, one is the infra container. Then I have the Redis and the Python frontend containers.Yes, when I click on that, I can actually see the containers running inside it. Same thing with the pod here, when you go you can see the logs in there. I can see the logs for both the containers. You can inspect the container, and you can also get the Kube YAML for the whole pod with both the containers inside. When I go back to containers here, we can see that the first two containers that I had started have been stopped in favor of this new pod with these containers inside it. It's still exposed at port 8088, so let's go ahead and refresh. As you can see, the counter started back by 1 because a new container was created, but every time I refresh, it's going to go up. I successfully run my container and I podified it. That's what we call it. This is all local on Podman.Now I have this pod. Let's say that I want to now actually deploy it in the Kubernetes cluster, but I'm not ready to deploy it in a prod remote Kubernetes cluster yet. I want to test it out still locally using something like kind or minikube. As I mentioned earlier, Podman has those extensions. If you go to resources, you can actually set those up with the click of a button. I have already set up minikube on my laptop right now. We can, in fact, see the minikube container running inside Podman over here. If I go to my terminal and I do minikube status, you can see that my miniKube cluster is up and running. Podman also has this tree icon over here where you can see the status of Podman machine and get to the dashboard. It has this Kubernetes context thing as well. In the kubeconfig file that's on your laptop, you can sign into multiple different Kubernetes clusters, as long as you have the credentials for it. It can see the context of those different clusters available to you, and you can switch between them.You can decide which one you want to deploy to, which one you want to access, which one you want to see which pods are running in. Right now, I want to do it on minikube, which is running locally on my computer. That's what I have selected. Now all I do is I go to this icon over here, I click on deploy to Kubernetes. It will generate the Kube YAML file for me. You can tell it which namespace you want to deploy it into. I just wanted a default namespace, and I'll click on deploy. When we do that, we can see that pod was created successfully and the containers are running successfully. When we go to my terminal and we do kubectl get pods, we can see my pod is up and running over there. We can also actually see this on the Podman Desktop interface, when we go to pods.Podman Desktop is able to see which pods and deployments are running in the Kubernetes cluster you're currently pointing at, and it will tell you that this is the pod. You can see that the environment is set to Kubernetes, so you know it's the Kubernetes cluster and not your local Podman. Now, same thing here. Let's get the service so we can see my-pod-8088 services there. I want to expose this so I can actually access the web server running inside it. I'm just going to do minikube service on that, and run that. There you go. It opened a browser for me with that new container and minikube cluster. Every time I refresh, the counter goes up by 1. I was able to, with a click of a button, deploy my container that I had running locally on Podman into a minikube cluster.What's the next step? Pretty obvious. You want to deploy it remotely into a cluster that's probably a production cluster, or a cluster that you test on right before you send it out to production. The really easy way of doing that is basically the same steps again. I'm going to go over here and switch out my context to point to a remote OpenShift cluster that I have running on AWS right now. I'm going to click that. When we do that, we'll see that you no longer see the pod that's running in minikube, because now it's pointing to my OpenShift cluster. I can just go ahead here and do the same thing, deploy to Kubernetes. It would have been deployed on the OpenShift cluster. You would have just switched the context and it would have done the same thing it did with minikube, and launched it over there. It was pretty cool, since we would expose the port that we had the application running on, it was running in an AWS environment.This was just demoing, moving from local to prod. I did all of this using the Podman Desktop UI. If you're someone like me who really prefers to use the terminal and type instead of clicking on a bunch of buttons, all of this can be done using the Podman command line interface as well. You can do podman images, it will show you a list of all your images. You can do podman ps, it will show you a list of all your containers running. You can do podman pod ps, and it will show you your pods running. I mentioned that you can also go from prod back to local or to Podman. You can also do that by going back to the Podman Desktop app and clicking on this play Kubernetes YAML button over here. You can browse and point it to the Kube YAML that you wanted to play. You can select whether you wanted to run with Podman or run in the Kubernetes cluster that you're currently pointing at. That's something you can do. I'm not going to do that from here. I want to show you how it works with the command line, so I'll do it from there. This is basically the Kube YAML that I'm going to play.Very simple. It's there. It's a very simple nginx server that I have defined over here. I'm going to go back into my terminal, and let's do podman kube play. I'm going to set the publish-all flag, just because I want to expose the port that I have defined in there, and pass it the kube.yaml. There you go, the pod was created. When we do podman pod ps, we can see the nginx pod was created. When we do podman ps, we can see the nginx container was also created over here. We can see that it's exposed at localhost port 80. We can go back to our browser and we can go to localhost 80, and nginx server is up and running. With the Kube YAML file, I was able to just do podman kube play, and get that running locally with Podman. That is basically the demo I had for you, that highlighted that path of moving from Podman to Kubernetes, Kubernetes back, and all the different stuff that you can do with the different ways you can test, play, and deploy eventually to your production cluster.Podman DesktopPodman, you can use to run, build container images. You can run your containers and pods. It integrates really well with Kubernetes. As we saw, it has all those features to be able to easily deploy to Kubernetes and pull it back from there. It has a concept of pods to help you replicate what a Kubernetes environment would look like when you do run your workloads in Kubernetes after containerizing them. You can do image builds, set up the registries you would like to pull images from, load images for testing, and all of that. With the click of a few buttons, you can set up a kind cluster locally with Podman, a minikube cluster locally, and can connect to various Kubernetes contexts. One thing I'd like to highlight again is the extensions that Podman supports. We have support for kind, minikube, Docker daemon, OpenShift local, Lima, and many more. It's just a way of giving all of these tools to the developers so that they can play around with it and have access to everything and anything they might need when developing their containerized workloads.K8s and BeyondI know this talk focuses on Kubernetes, but there's a lot more the developer might need, and there are a bunch of cool features that have been added recently to Podman and Podman Desktop. One thing is AI Lab. AI is really big right now. We're all super excited about it, and so is Podman Desktop. They added a new extension called AI Lab, where you can run your AI models locally, so that you can then create your container applications, using that as an inference point, basically. The next one is Bootc, where you can create and build bootable container images. The idea here is that, in future, your operating systems will be installed and upgraded using container images. I think it's pretty cool. It's still pretty much under development, but you have the ability to start playing around with that right now.The final one is farm build, which is actually a feature I worked on personally, where you can build multi-arch images from one system. Given that Silicon Macs are so popular nowadays, having the ability to have different architecture images is very important now. In fact, I actually used this command when I was creating the demo for this talk, because my Mac is an M1 architecture, so I was doing all of that with Podman Desktop on my Mac. If OpenShift AWS had worked, that was on an x86 architecture, so I would have needed that architecture image for that part of the demo. If you're excited by all of this, one of my colleagues has put together a bunch of demos and info on all of this. You can find that at thislink.AI LabI can show you the AI Lab extension in Podman Desktop, just because I think it's very cool. Back to the Podman Desktop, I've already enabled it. I just click on AI Lab over here, and it gives me this view. I can take a look at the recipes catalog. These are some things that it gives you out of the box. You can set up a chatbot, or summarize code generation. I'm going to set up a quick chatbot. I'll click on Start AI app. What it does, it checks out the repository, it pulls down the model. I chose to pull down the granite model, but there are different bunch of models you can pull down from InstructLab. It sets up the llamacpp-server and Streamlit chat app. When I go to this running tab, I can see that app is up and running, and I can just go to the interface that they provide me by default. Let's ask it a question.Let's ask it, what is InfoQ Dev Summit? It's going to do its thinking and give us an answer. I'm just using the interface that they gave me, but while you're developing your applications, you can also just connect to it for your use case. I haven't really given it much resources right now to run. That's why it's pretty slow. The more powerful machine you have, the better your performance would be. I think it gave us a pretty accurate answer on what InfoQ Dev Summit is. With the click of a few buttons, I have a personal chatbot running on my machine with Podman Desktop. Then there's also the Bootc extension over here. This helps you create those bootable OS container images. You click on this, it gives you the ability to be able to switch between disk images and all of that. That's something you can also play around with.Get Started with Podman and Podman DesktopPodman is open source, completely free to use. Same for Podman Desktop. There's a pretty big community around it, discussions, PRs, issues, contributions, everything are welcome. You can check out our podman.io document page to get started.See morepresentations with transcriptsRecorded at:Nov 20, 2024byUrvashi MohnaniRelated Sponsored ContentThis content is in theDevOpstopicRelated Topics:DevelopmentDevOpsInfoQ Dev Summit Boston 2024InfoQ Dev SummitKubernetesDeveloper ExperienceTranscriptsContainersQCon Software Development ConferenceCloud ComputingInfoQCloudAgileRelated EditorialPopular across InfoQAWS Amplify and Amazon S3 Integration Simplifies Static Website HostingAnthropic Releases New Claude Models and Computer Use FeatureMeta Releases NotebookLlama: Open-Source PDF to Podcast ToolkitCrossing the Feedback Chasm - a Conversation with Ken FinniganThoughtworks Technology Radar Oct 2024 - From Coding Assistance to AI EvolutionMonorepos: beyond the TechnicalitiesDevelopmentCarle Lerche Talking at Qcon SF About Rust: A Productive Language for Writing Database ApplicationsGoogle Introduces Gemini AI Features to Android StudioGitHub Universe 2024 Unveils AI Innovations and Developer-Centric ToolsArchitecture & DesignTransforming Legacy Healthcare Systems: A Journey to Cloud-Native ArchitectureNew "Laws" Announced at iSAQB Software Architecture GatheringImproving Developer Experience Using Automated Data CI/CD PipelinesCulture & MethodsTrends in Engineering Leadership: Observability, Agile Backlash, and Building Autonomous TeamsUsing DORA for Sustainable Engineering Performance ImprovementMonorepos: beyond the TechnicalitiesAI, ML & Data EngineeringQCon SF: Large Scale Search and Ranking Systems at NetflixNavigating LLM Deployment: Tips, Tricks, and TechniquesQCon SF: Using Metaflow to Support Diverse ML Systems at NetflixDevOpsFrom Local to Production: A Modern Developer’s Journey Towards KubernetesTimescale Bolsters AI-Ready PostgreSQL with pgai VectorizerKubeCon + CloudNativeCon NA 2024: Key Announcements and Project UpdatesThe InfoQNewsletterA round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers.View an exampleGet a quick overview of content published on a variety of innovator and early adopter technologiesLearn what you don’t know that you don’t knowStay up to date with the latest information from the topics you are interested inEnter your e-mail addressSelect your countrySelect a countryI consent to InfoQ.com handling my data as explained in thisPrivacy Notice.We protect your privacy.QCon San FranciscoNovember 18-22, 2024.QCon San Francisco International Software Conference returns on November 18-24. More than 1000 software professionals will join together and learn about the emerging trends they should pay attention to in 2024, how to adopt them, how to avoid pitfalls, and how to embrace the best practices.Join the experience and get implementable ideas to shape your projects that last beyond the conference.Register NowHomeCreate accountLoginQCon ConferencesEventsWrite for InfoQInfoQ EditorsAbout InfoQAbout C4MediaMedia KitInfoQ Developer Marketing BlogDiversityEventsQCon San FranciscoNOVEMBER 18-22, 2024QCon LondonAPRIL 7-9, 2025InfoQ Dev Summit BostonJune 9-10, 2025Follow us onYoutube223K FollowersLinkedin21K FollowersRSS19K ReadersX53.4k FollowersFacebook21K LikesAlexaNewStay in the knowThe InfoQ PodcastEngineering Culture PodcastThe Software Architects' NewsletterGeneral Feedbackfeedback@infoq.comAdvertisingsales@infoq.comEditorialeditors@infoq.comMarketingmarketing@infoq.comInfoQ.com and all content copyright © 2006-2024 C4Media Inc.Privacy Notice,Terms And Conditions,Cookie PolicyBT<img height="1" width="1" src="https://www.facebook.com/tr?id=842388869148196&ev=PageView&noscript=1"/>
User Query
Result
Source
Response
Podman Desktop, a versatile container management tool, has unveiled features that streamline the development and deployment process for containerized applications, making it compatible across major operating systems such as Mac, Linux, and Windows. With the ability to run containers and pods, as well as seamlessly integrate with Kubernetes, Podman Desktop simplifies the transition from local development to production environments through features like one-click deployments to Kubernetes clusters, automatic generation of Kube YAML files, and support for various extensions. Notably, new tools such as the AI Lab extension allow developers to harness AI models locally, further enhancing Podman's capabilities and encouraging innovation within the containerization space. This open-source platform, now with added resources for building multi-architecture images and creating bootable container images, positions itself as a vital asset for developers navigating the complexities of modern software deployment.