跳转到主内容

使用 Podman Desktop 构建您的 Kubernetes 应用程序

·阅读时间 6 分钟
Shipra Singh
技术文档工程师

Podman Desktop 与 Kubernetes 的集成分可帮助您在 Kubernetes 集群(例如 Kind 或 Minikube)上运行您的应用程序。

本博客涵盖以下几个方面

  • 从镜像仓库中的镜像构建容器化应用程序
  • 创建 pod
  • 设置本地 Kubernetes 集群
  • 将应用程序部署到 Kubernetes
  • 验证正在运行的服务

构建容器化应用程序

通过本博客,您将构建一个使用以下组件的容器化应用程序

  • 一个后端 Redis 服务器容器
  • 一个前端 Python 应用程序容器

为此,您可以从 quay.io 镜像仓库拉取相关镜像。

  1. 前往 Images (镜像) 组件页面。

  2. 点击 Pull (拉取)。 pull from registry

  3. 启动第一个容器

    1. 输入要从镜像仓库中拉取的镜像名称。例如,quay.io/podman-desktop-demo/podify-demo-backendenter image name
    2. 点击 Pull image (拉取镜像)。此时会打开一个下载完成的通知。
    3. 点击 完成
    4. 点击新添加镜像对应的 Run Image (运行镜像) 图标。 running an image
    5. 输入容器名称 redis-server
    6. 点击 Start Container (启动容器)。 start a back-end container
    7. 点击 Logs (日志) 选项卡,查看 Redis 服务器正在以独立模式运行。 view Logs tab
  4. 启动第二个容器

    1. 输入要从镜像仓库中拉取的镜像名称。例如,quay.io/podman-desktop-demo/podify-demo-frontend

    2. 点击 Pull image (拉取镜像),然后点击 Done (完成)。

    3. 点击新添加镜像对应的 Run Image (运行镜像) 图标。

    4. 输入容器名称 python-appenter image name

      注意

      如果默认端口已被占用,您可以在 Port mapping (端口映射) 字段中指定一个不同的端口。

    5. 选择 Networking (网络) 选项卡,输入主机名 redis-server 和 IP 地址 10.88.0.2 以启用与 Redis 服务器的通信。

      注意

      您可以在 redis-server 容器详情页面的 Inspect (检查) 选项卡中找到 IP 地址。

    6. 点击 Start Container (启动容器)。 start a front-end container

    7. 点击 Logs (日志) 选项卡,查看应用程序正在端口 5000 上运行。 front-end app running

    8. 点击页面右侧的 Open browser (打开浏览器) 图标。

    9. 查看正在运行的前端应用程序。 running front-end application

创建 Pod

您可以使用这两个容器来创建一个 Pod。这样,前端和后端容器应用可以共享资源,例如存储和网络。

使用现有容器创建 Pod

  1. 前往 Containers (容器) 页面。
  2. 同时选择前端和后端容器。
  3. 点击 Create Pod (创建 Pod) 按钮。 create a pod from containers
  4. 点击 Create Pod (创建 Pod)。 copying containers to a pod
  5. 在 Pods 页面上查看新创建的 Pod。
  6. 点击 Pod 的名称,然后点击 Summary (摘要) 选项卡以查看其摘要。 viewing pod details

替代方案:使用 Kubernetes YAML 创建 Pod

您可以为任何现有的 Pod 或容器生成 Kubernetes 清单,并用它来创建本地 Kubernetes YAML 文件。然后,您可以自定义该文件并从中创建一个 Pod。

在创建 Pod 时,您可以选择一个运行时来指示您希望在 Podman 引擎还是 Kubernetes 集群上运行该 Pod。根据选择,您将在 Pods 组件页面上看到新创建的 Pod 在该环境中运行。

以下过程将创建一个在 Podman 引擎上运行的 Pod。

  1. 前往 Pods 页面。
  2. 点击 Pod 对应的溢出菜单图标。 overflow menu icon
  3. 从下拉列表中选择 Generate Kube (生成 Kube) 选项。
  4. Kube 选项卡中查看 Kubernetes YAML 配置。 kube manifest
  5. 复制配置并将其粘贴到您机器上的一个 YAML 文件中。
  6. 编辑 YAML 配置并保存。
  7. 前往 Pods 组件页面。
  8. 点击 Play Kubernetes YAML (运行 Kubernetes YAML)。 play kubernetes yaml
  9. 从您的机器中选择该 YAML 文件。
  10. 检查 Runtime (运行时) 字段是否设置为 Podman container engine (Podman 容器引擎)。
  11. 点击 Play (运行),然后点击 Done (完成)。
  12. 在同一页面上查看新创建的 Pod。

创建 Pod 后,设置一个本地 Kubernetes 集群来部署该 Pod。

设置本地 Kubernetes 集群

您可以设置一个本地 Kubernetes 集群。一旦集群连接并运行,您就可以在上面部署您的应用程序。

根据您的偏好,使用 Kind 或 Minikube 扩展

  1. 从扩展目录中安装扩展
  2. 创建一个 Kubernetes 集群。请参阅创建 Kind 集群创建 Minikube 集群

一旦创建了 Kubernetes 集群,您可以在 Kubernetes 组件页面上看到一个正在运行的控制平面节点和一个正在运行的 Kubernetes 服务。该页面还会显示集群已连接。

将应用程序部署到 Kubernetes

您可以将应用程序 Pod 部署到具有活动连接的 Kubernetes 集群,并通过服务访问它。此外,作为 Pod 一部分的任何容器都可以部署到 Kubernetes 集群。

  1. 选择您的 Kubernetes 上下文

  2. 前往 Pods 组件页面。

  3. 点击 Pod 对应的溢出菜单图标。 overflow menu icon

  4. 从下拉列表中选择 Deploy to Kubernetes 选项。

  5. 选中该复选框以使用 Ingress 控制器在本地暴露服务。 expose the service locally

    注意

    当您在运行镜像时配置自定义端口映射,您可以从下拉列表中选择一个 Ingress 主机端口。 ingress-host-port 否则,您将看不到该选项。

  6. 点击 Deploy,然后点击 Done

验证正在运行的服务

  1. 前往 Kubernetes 组件页面。

  2. 执行以下步骤

    1. 点击 Services (服务) 选项以查看新创建的服务 my-pod-5000service created
    2. 点击 Ingresses and Routes (Ingress 和路由) 选项以查看新创建的 Ingress my-podingress created
    注意

    使用 Apply YAML (应用 YAML) 按钮直接应用 Kubernetes YAML 文件来创建资源。