跳转到主内容

2 篇带有“development”标签的帖子

查看所有标签

使用 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 访问,一些 Kubernetes 发行版(如 OpenShift)默认强制执行此操作。默认的 NGINX 镜像使用端口 80,这在无根模式下是被禁止的。

一旦您的应用程序和 Containerfile 准备就绪,Podman Desktop 会使构建过程变得简单直接:构建镜像

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

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

Start container

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

容器管理和日志分析

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

我们可以点击“打开浏览器”按钮在浏览器中查看 Web 服务器:浏览器中打开的 Web 服务器

监控容器日志对于调试和理解应用程序行为至关重要。让我们使用 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 工作流!

使用 Podman 和 Podman Desktop 增强您在 VS Code 中的容器开发

·5 分钟阅读
Matt Demyttenaere
产品经理

开发容器化应用程序有时会感觉很复杂,但有了合适的工具,它可以是一个流畅高效的过程。在这篇博文中,我们将探讨如何利用 Visual Studio Code (VS Code) 与 Podman 和 Podman Desktop 的强大功能来简化您的容器开发工作流程。我们将介绍如何设置和使用两个与 Podman 集成的 VS Code 扩展。

VS Code:您的容器开发 IDE

VS Code 是一款流行且功能多样的代码编辑器,可以通过扩展来增强其功能。对于容器开发,有几个优秀的扩展可以与 Podman 无缝集成。

先决条件

在我们开始之前,请确保您已安装以下软件:

  • Podman:请遵循官方网站上的安装说明。
  • Podman Desktop:官方网站下载并安装 Podman Desktop。
  • Visual Studio Code:官方网站下载并安装 VS Code。

VS Code 扩展

为了将 VS Code 与 Podman 集成,我们有两种扩展可供选择:

  1. Microsoft 的容器工具扩展“容器工具”扩展为容器相关任务提供了出色的支持,包括构建镜像、管理容器以及使用 Containerfile 和 Dockerfile。微软最近宣布他们将把 Docker 扩展发展为容器工具扩展,以支持 Podman 等其他工具!
  2. Pod Manager:此扩展由我们社区的一名成员创建,并且完全开源。它旨在帮助您直接从 VS Code 界面管理 Podman 容器、镜像、卷和网络。

虽然您不太可能同时使用这两个扩展,但比较它们将帮助您了解各自的优缺点,最终更容易选择最适合您需求的扩展。因此,对于这篇博文,我们将逐个安装它们。

选项 1:Microsoft 的容器工具扩展

要安装此扩展:

  1. 打开 VS Code。
  2. 点击活动栏中的扩展图标(或按 Ctrl+Shift+XCmd+Shift+X)。
  3. 搜索“Container Tools”并安装微软发布的扩展。

为 Podman 配置 VS Code

如果 Docker 未运行,容器工具扩展通常通过查看 `DOCKER_HOST` 环境变量自动检测 Podman。在 Podman Desktop 中,导航到“设置”>“Docker 兼容性”>“第三方工具兼容性”,并确保该选项已启用。在我们的文档中了解更多关于Docker 兼容性的信息。

enabling docker compatibility in the settings

选项 2:Pod Manager

要安装此扩展:

  1. 打开 VS Code。
  2. 点击活动栏中的扩展图标(或按 Ctrl+Shift+XCmd+Shift+X)。
  3. 搜索“Pod Manager”并安装由 dreamcatcher45 发布的扩展。

使用 VS Code 扩展

既然我们已经安装并配置了扩展,让我们看看如何使用它们。

使用 Containerfiles 和 Dockerfiles

这两个扩展都为 Containerfile 和 Dockerfile 提供语法高亮、代码补全和语法检查功能。在 VS Code 中打开一个 Containerfile,您将立即从这些功能中受益。

您也可以直接从 VS Code 构建镜像:

  1. 在资源管理器视图中右键单击 Containerfile。
  2. 选择“构建镜像”。
  3. VS Code 将提示您输入镜像名称和标签。
  4. 然后,扩展将使用 Podman 构建镜像。
  5. 之后,您将在侧边栏中看到构建好的镜像。

如果您使用命令行来构建镜像,您也会在这里看到它们。

building a Containerfile in vs code using the microsoft extension

管理容器

这些扩展还允许您直接从 VS Code 管理容器。您可以启动、停止、重启和移除容器,以及查看它们的日志和检查它们的配置。

要查看容器日志:

  1. 点击活动栏中的容器图标。
  2. 您将看到您的容器、镜像和网络列表。
  3. 右键单击一个容器以执行操作。

using Container Tools extension to view the logs of the container

同样,使用 Pod Manager 扩展,我们可以直观地检查容器、镜像和卷。

  1. 点击活动栏中的 Pod Manager 图标。
  2. 您将看到您的容器、镜像和网络列表。

using podmanager to view all the running containers, images and volumes

并管理容器的生命周期。

using podmanager to manage the lifecycle of the container

当然,还可以通过可视化界面来解决问题。

using podmanager to enter the container

结论

相比之下,这两个扩展提供了几乎相同的功能集,因此选择哪种 UI 完全取决于您的个人喜好。我个人会选择 Pod Manager,因为它的标志是一个海豹 🦭。请记住,如果您在使用这些工具或 Podman Desktop 时遇到任何问题,请通过发起讨论创建问题告诉我们。

通过结合 VS Code、Podman 和 Podman Desktop 的强大功能,您可以创建一套精简高效的容器开发工作流程。VS Code 扩展提供了与 Podman 的出色集成,让您能够直接从代码编辑器管理容器、构建镜像以及处理 Containerfile。我们很高兴看到 Microsoft 正在拥抱 Podman,并将其支持集成到他们的生态系统中。Podman Desktop 通过可视化界面来管理您的容器环境,并帮助您从开发环境过渡到生产 Kubernetes 环境。拥抱这些工具,提升您的容器开发体验!