跳转到主内容

使用 Podman Desktop 进行容器和 Kubernetes 开发

·阅读时间 6 分钟
Matt Demyttenaere
产品经理

在现代软件开发领域,容器和 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` 镜像。这有助于避免 root 权限访问,而像 OpenShift 这样的一些 Kubernetes 发行版默认会强制执行此策略。默认的 NGINX 镜像使用 80 端口,这在 rootless 模式下是被禁止的。

一旦您的应用程序和 Containerfile 准备就绪,Podman Desktop 就能让构建过程变得非常简单: 构建镜像

  1. 导航到“镜像”部分
  2. 选择您的 Containerfile
  3. 为您的镜像提供一个名称(例如 webserver)
  4. 点击“构建”

构建镜像后,您可以立即单击运行它,您的容器将出现在“容器”列表中。

Start container

  1. 在“镜像”列表中找到您的容器
  2. 点击“运行镜像 ▶️”按钮
  3. 给您的容器起个名字,我们称之为:“webserver”

容器管理和日志分析

现在我们的 webserver 容器正在运行,我们可以在 UI 中查看它 查看容器详情

我们可以点击“打开浏览器”按钮,在浏览器中查看 webserver:在浏览器中打开 Webserver

监控容器日志对于调试和理解应用程序行为至关重要。让我们使用 Podman Desktop 查看新创建容器的日志。

  1. 从“容器”列表中选择您正在运行的容器
  2. 点击“日志”选项卡查看容器的日志
  3. 在最新版本的 Podman Desktop 中,您还可以在日志中进行搜索!

View container logs

这样,我们就可以继续开发过程了。当代码更新后,我们能够重新构建容器。此外,我们还可以与团队共享 Containerfile,他们将能够复现与我们完全相同的环境来构建和测试他们的代码。

使用 Kubernetes 和 OpenShift

现在我们已经建立并运行了开发环境,是时候为生产环境做准备了。在当今世界,迁移到 Kubernetes 是很自然的选择。通过拥有一个本地运行的集群,我们能够快速迭代,同时保持一个尽可能接近生产的环境。这有助于将来更平稳地进行迁移。Podman Desktop 在此可以帮助您测试和执行迁移。

通过 kindminikube,我们可以在几分钟内拥有一个本地运行的 Kubernetes 集群。这将使我们能够在 Kubernetes 环境中测试我们的应用程序。Kind 与 Podman Desktop 一同安装,因此您可以立即上手。

  1. 首先导航到“Kubernetes”页面
  2. 点击“创建新的 Kind 集群”按钮

Create kind cluster

  1. 点击“创建”
  2. 等待 kind 集群创建完成
  3. 集群创建后,Podman Desktop 会自动将您的 Kubernetes 上下文切换到新的 kind 集群。如果您想更改集群,可以在状态栏中切换上下文。

我们现在有一个本地运行的 Kubernetes 集群,我们可以在 Kubernetes 仪表板上进行探索。

Kubernetes dashboard

这个仪表板不仅为您提供了集群的概览,还提供了对集群中存在的不同 Kubernetes 对象的快速访问。

在您的本地 Kubernetes 集群上创建 Pod

有了一个正在运行的 Kubernetes 集群,我们现在可以在 Kubernetes 集群中创建我们的 Pod。使用 Podman Desktop,我们可以将之前创建的容器转换为我们 kind 集群中的一个 Pod。

首先,我们必须将我们的镜像推送到我们的 kind 集群。 推送镜像到 kind

现在镜像已经可用,我们可以使用 Podman Desktop UI 将我们的容器部署到一个 Pod 中 部署到 Kubernetes

  1. 导航到“容器”部分
  2. 在 webserver 容器上,点击“部署到 Kubernetes”按钮
  3. 选择您的 kind 集群

将容器转换为 Kubernetes manifest 的功能特别有价值,它免去了为简单部署手动编写 YAML 文件的麻烦。Podman Desktop 会在生成的 Kubernetes YAML 中添加 `imagePullPolicy: IfNotPresent`。这确保了我们使用的镜像是我们刚刚推送到集群中的那一个。请确保将此添加到您的 Kubernetes YAML 中,或者在您的镜像上使用特定的标签,以避免采用默认的拉取策略(`Always`)。

监控 Kubernetes 事件和资源

了解 Kubernetes 集群中发生的事情对于有效开发至关重要。在最新版本的 Podman Desktop 中,您现在可以在 UI 中检查 Kubernetes Pod 的事件。

让我们检查一下我们的 Pod 是否已成功创建并正在运行。

  1. 导航到左侧导航栏中的“Kubernetes”
  2. 点击“Pods”子导航
  3. 点击您刚刚创建的 Pods
  4. 滚动到底部并检查“事件”
  5. 我们可以看到我们的 Pod 已经启动并正在运行

View pod events

我们还可以查看“日志”选项卡以查看正在运行的 Pod 的日志。 查看 pod 日志

视频演示

结论

Podman Desktop 通过提供以下功能,显著简化了容器和 Kubernetes 的开发体验:

  • 一个用于构建和管理容器的统一界面
  • 与 Kubernetes 和 OpenShift 的无缝集成
  • 强大的日志记录和调试工具
  • 连接本地开发和生产 Kubernetes 环境的桥梁

无论您是刚开始接触容器,还是在管理复杂的 Kubernetes 部署,Podman Desktop 都能提供简化工作流程、提高生产力的工具。作为一个 CNCF 项目,它随着云原生社区的需求不断发展,使其成为任何开发者工具箱中越来越有价值的工具。

立即试用 Podman Desktop,体验它如何改变您的容器、Kubernetes 和 OpenShift 工作流!