使用 Podman Desktop 进行容器和 Kubernetes 开发
在现代软件开发的世界中,容器和 Kubernetes 不再是可选项;它们是必不可少的。Podman Desktop 应运而生,它是您轻松自信地构建、管理和部署容器和 Kubernetes 集群的终极工具。在这篇博客文章中,我们将介绍一个典型的开发工作流程,创建和构建一个容器,然后在本地 Kubernetes 集群中对其进行测试。让我们深入了解一下。
使用 Podman Desktop 构建容器化应用程序
首先,让我们从使用 Podman Desktop 在容器中构建一个应用程序开始。我们需要我们的应用程序代码和一个 Containerfile。对于一个简单的应用程序,你的 Containerfile 可能看起来像这样:
FROM docker.io/nginxinc/nginx-unprivileged
COPY <<EOF /usr/share/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Simple NGINX Container</title>
</head>
<body>
<h1>Hello from my Podman NGINX Container!</h1>
<p>This content is being served by NGINX running in a Podman container.</p>
</body>
</html>
EOF
为了增强安全性,我们使用了 nginx-unprivileged
镜像。这有助于避免根访问,某些 Kubernetes 发行版(如 OpenShift)默认强制执行此操作。默认的 NGINX 镜像使用端口 80,这在无根模式下是禁止的。
一旦您的应用程序和 Containerfile 准备就绪,Podman Desktop 会使构建过程变得简单直接:
- 导航到“镜像”部分
- 选择您的 Containerfile
- 为您的镜像提供一个名称(例如 webserver)
- 点击“构建”
构建镜像后,您可以立即单击运行它,您的容器将出现在“容器”列表中。
- 在“镜像”列表中找到您的容器
- 点击“运行镜像 ▶️”按钮
- 给您的容器起个名字,我们称之为:“webserver”
容器管理和日志分析
现在我们的 Web 服务器容器正在运行,我们可以在 UI 中对其进行检查。
我们可以点击“打开浏览器”按钮在浏览器中查看 Web 服务器:
监控容器日志对于调试和理解应用程序行为至关重要。让我们使用 Podman Desktop 查看新创建容器的日志。
- 从“容器”列表中选择您正在运行的容器
- 点击“日志”选项卡查看容器的日志
- 在最新版本的 Podman Desktop 中,您还可以在日志中进行搜索!
这样,我们就可以继续开发过程了。当我们更新代码时,我们可以重新构建我们的容器。除此之外,我们可以与团队共享我们的 Containerfile,他们将能够重现与我们完全相同的环境来构建和测试他们的代码。
使用 Kubernetes 和 OpenShift
现在我们已经建立并运行了开发环境,是时候为生产环境做准备了。在当今世界,我们自然而然地会转向 Kubernetes。拥有一个本地运行的集群,我们能够快速迭代,但仍然拥有一个尽可能接近生产的环境。这有助于未来更顺利的迁移。Podman Desktop 在这里帮助您测试并执行该迁移。
通过 kind 或 minikube,我们可以在几分钟内拥有一个本地运行的 Kubernetes 集群。这将允许我们在 Kubernetes 环境中测试我们的应用程序。Kind 与 Podman Desktop 一起安装,因此您可以立即开始使用。
- 首先导航到“Kubernetes”页面
- 点击“创建新的 Kind 集群”按钮
- 点击“创建”
- 等待 kind 集群创建完成
- 集群创建后,Podman Desktop 会自动将您的 Kubernetes 上下文切换到新的 kind 集群。如果您想更改集群,可以在状态栏中切换上下文。
我们现在有一个本地运行的 Kubernetes 集群,我们可以在 Kubernetes 仪表板上进行探索。
这个仪表板不仅为您提供了集群的概览,还提供了对集群中存在的不同 Kubernetes 对象的快速访问。
在本地 Kubernetes 集群上创建 Pod
有了一个正在运行的 Kubernetes 集群,我们现在可以在 Kubernetes 集群中创建我们的 Pod。使用 Podman Desktop,我们可以将之前创建的容器转换为我们 kind 集群中的一个 Pod。
首先,我们必须将我们的镜像推送到我们的 kind 集群。
现在镜像已可用,我们可以使用 Podman Desktop UI 将容器部署到 Pod 中。
- 导航到“容器”部分
- 在 webserver 容器上,点击“部署到 Kubernetes”按钮
- 选择您的 kind 集群
从容器到 Kubernetes 清单的转换尤其有价值,消除了为简单部署手动编写 YAML 文件的需要。Podman Desktop 会将 imagePullPolicy: IfNotPresent
添加到生成的 Kubernetes YAML 中。这确保我们使用的是我们刚刚推送到集群的镜像。请务必将此添加到您的 Kubernetes YAML 中,或在您的镜像上使用特定的标签以避免 默认拉取策略 (Always
)。
监控 Kubernetes 事件和资源
了解 Kubernetes 集群中发生的事情对于有效开发至关重要。在最新版本的 Podman Desktop 中,您现在可以在 UI 中检查 Kubernetes Pod 的事件。
让我们检查一下我们的 Pod 是否已成功创建并正在运行。
- 导航到左侧导航栏中的“Kubernetes”
- 点击“Pods”子导航
- 点击您刚刚创建的 Pods
- 滚动到底部并检查“事件”
- 我们可以看到我们的 Pod 已经启动并正在运行
我们还可以查看“日志”选项卡以查看正在运行的 Pod 的日志。
视频演示
结论
Podman Desktop 通过提供以下功能,显著简化了容器和 Kubernetes 的开发体验:
- 一个用于构建和管理容器的统一界面
- 与 Kubernetes 和 OpenShift 的无缝集成
- 强大的日志记录和调试工具
- 连接本地开发和生产 Kubernetes 环境的桥梁
无论您是刚刚开始接触容器,还是管理复杂的 Kubernetes 部署,Podman Desktop 都提供简化您的工作流程并提高生产力的工具。作为CNCF 项目,它将继续随着云原生社区的需求而发展,使其成为任何开发人员工具包中越来越有价值的工具。
立即试用 Podman Desktop,体验它如何改变您的容器、Kubernetes 和 OpenShift 工作流!