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

使用 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 镜像。这避免了 root 权限,在 OpenShift 等某些 Kubernetes 发行版中默认禁止 root 权限。默认的 NGINX 镜像使用 80 端口,rootless 模式下是不允许的。

应用和 Containerfile 准备好后,Podman Desktop 让构建过程非常简单:

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

  1. 进入“Images”页面
  2. 选择你的 Containerfile
  3. 给镜像命名(比如 webserver)
  4. 点击“Build”

镜像构建完成后,可以一键运行,容器会出现在“Containers”列表中:

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

  1. 在“Images”里找到你的镜像
  2. 点击“Run Image ▶️”按钮
  3. 给容器命名,比如“webserver”

容器管理与日志分析

webserver 容器运行后,可以在 UI 中查看详情:

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

点击“Open Browser”按钮,浏览器中就能访问你的 webserver:

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

监控容器日志对调试和理解应用行为很重要。使用 Podman Desktop,查看日志非常方便:

  1. 从“Containers”列表选择运行中的容器
  2. 点击“Logs”标签查看日志
  3. 最新版本的 Podman Desktop 还支持日志搜索功能!

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

这样,你可以持续开发,更新代码后重新构建容器。更好的是,可以把 Containerfile 分享给团队,大家都能复现完全一致的环境来构建和测试代码。

使用 Kubernetes 和 OpenShift

开发环境搭建好后,接下来就是准备生产环境了。如今,向 Kubernetes 迁移已成自然选择。有本地集群支持,我们能快速迭代,同时环境又尽可能接近生产环境,方便未来平滑迁移。Podman Desktop 助你测试和执行这一步。

借助 kind 或 minikube,几分钟内即可搭建本地 Kubernetes 集群。Podman Desktop 附带 kind,开箱即用。

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

  1. 进入“Kubernetes”页面
  2. 点击“Create new Kind cluster”按钮
  3. 点击“Create”
  4. 等待集群创建完成
  5. 创建完成后,Podman Desktop 会自动将 Kubernetes 上下文切换到新集群。需要切换集群时,可在状态栏手动调整。

现在你有了本地 Kubernetes 集群,可以通过 Kubernetes 仪表盘进行探索。

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

仪表盘不仅能概览集群状态,还能快速访问集群中的各种 Kubernetes 对象。

在本地 Kubernetes 集群中创建 Pod

有了 Kubernetes 集群,我们可以把容器转换成 Pod。使用 Podman Desktop,把之前构建的容器部署到 kind 集群。

先将镜像推送到 kind 集群。

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

镜像推送成功后,用 Podman Desktop UI 部署容器为 Pod:

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

  1. 进入“Containers”页面
  2. 在 webserver 容器上点击“Deploy to Kubernetes”按钮
  3. 选择你的 kind 集群

自动生成的 Kubernetes YAML 会包含 imagePullPolicy: IfNotPresent,确保使用刚推送的镜像。记得在自己的 Kubernetes YAML 中添加该策略,或给镜像打固定标签,避免默认的 Always 拉取策略。

监控 Kubernetes 事件和资源

了解集群动态对开发至关重要。最新版本 Podman Desktop 支持在 UI 中查看 Kubernetes Pod 事件。

检查我们的 Pod 是否成功创建并运行:

  1. 进入左侧导航的“Kubernetes”
  2. 点击“Pods”子菜单
  3. 选择刚创建的 Pod
  4. 滚动到最底部,查看“Events”
  5. 你会看到 Pod 已启动并正在运行。

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

还可以切换到“Logs”标签,查看 Pod 日志。

使用 Podman Desktop 进行容器和 Kubernetes 开发-每日运维

总结

Podman Desktop 极大简化了容器和 Kubernetes 的开发体验,提供:

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

无论是刚入门容器,还是管理复杂 Kubernetes 部署,Podman Desktop 都能简化工作流程,提高效率。作为 CNCF 项目,它不断发展,满足云原生社区需求,是开发者不可或缺的利器。

立即试用 Podman Desktop,体验它如何革新你的容器、Kubernetes 和 OpenShift 工作流程!