使用 Podman Desktop 构建您的 Kubernetes 应用程序
Podman Desktop 与 Kubernetes 的集成分可帮助您在 Kubernetes 集群(例如 Kind 或 Minikube)上运行您的应用程序。
本博客涵盖以下几个方面
- 从镜像仓库中的镜像构建容器化应用程序
- 创建 pod
- 设置本地 Kubernetes 集群
- 将应用程序部署到 Kubernetes
- 验证正在运行的服务
构建容器化应用程序
通过本博客,您将构建一个使用以下组件的容器化应用程序
- 一个后端 Redis 服务器容器
- 一个前端 Python 应用程序容器
为此,您可以从 quay.io
镜像仓库拉取相关镜像。
-
前往 Images (镜像) 组件页面。
-
点击 Pull (拉取)。
-
启动第一个容器
- 输入要从镜像仓库中拉取的镜像名称。例如,
quay.io/podman-desktop-demo/podify-demo-backend
。 - 点击 Pull image (拉取镜像)。此时会打开一个下载完成的通知。
- 点击 完成。
- 点击新添加镜像对应的 Run Image (运行镜像) 图标。
- 输入容器名称
redis-server
。 - 点击 Start Container (启动容器)。
- 点击 Logs (日志) 选项卡,查看 Redis 服务器正在以独立模式运行。
- 输入要从镜像仓库中拉取的镜像名称。例如,
-
启动第二个容器
-
输入要从镜像仓库中拉取的镜像名称。例如,
quay.io/podman-desktop-demo/podify-demo-frontend
。 -
点击 Pull image (拉取镜像),然后点击 Done (完成)。
-
点击新添加镜像对应的
Run Image
(运行镜像) 图标。 -
输入容器名称
python-app
。注意如果默认端口已被占用,您可以在
Port mapping
(端口映射) 字段中指定一个不同的端口。 -
选择 Networking (网络) 选项卡,输入主机名
redis-server
和 IP 地址10.88.0.2
以启用与 Redis 服务器的通信。注意您可以在
redis-server
容器详情页面的 Inspect (检查) 选项卡中找到 IP 地址。 -
点击 Start Container (启动容器)。
-
点击 Logs (日志) 选项卡,查看应用程序正在端口
5000
上运行。 -
点击页面右侧的 Open browser (打开浏览器) 图标。
-
查看正在运行的前端应用程序。
-
创建 Pod
您可以使用这两个容器来创建一个 Pod。这样,前端和后端容器应用可以共享资源,例如存储和网络。
使用现有容器创建 Pod
- 前往 Containers (容器) 页面。
- 同时选择前端和后端容器。
- 点击 Create Pod (创建 Pod) 按钮。
- 点击 Create Pod (创建 Pod)。
- 在 Pods 页面上查看新创建的 Pod。
- 点击 Pod 的名称,然后点击 Summary (摘要) 选项卡以查看其摘要。
替代方案:使用 Kubernetes YAML 创建 Pod
您可以为任何现有的 Pod 或容器生成 Kubernetes 清单,并用它来创建本地 Kubernetes YAML 文件。然后,您可以自定义该文件并从中创建一个 Pod。
在创建 Pod 时,您可以选择一个运行时来指示您希望在 Podman 引擎还是 Kubernetes 集群上运行该 Pod。根据选择,您将在 Pods 组件页面上看到新创建的 Pod 在该环境中运行。
以下过程将创建一个在 Podman 引擎上运行的 Pod。
- 前往 Pods 页面。
- 点击 Pod 对应的溢出菜单图标。
- 从下拉列表中选择 Generate Kube (生成 Kube) 选项。
- 在 Kube 选项卡中查看 Kubernetes YAML 配置。
- 复制配置并将其粘贴到您机器上的一个 YAML 文件中。
- 编辑 YAML 配置并保存。
- 前往 Pods 组件页面。
- 点击 Play Kubernetes YAML (运行 Kubernetes YAML)。
- 从您的机器中选择该 YAML 文件。
- 检查 Runtime (运行时) 字段是否设置为
Podman container engine
(Podman 容器引擎)。 - 点击 Play (运行),然后点击 Done (完成)。
- 在同一页面上查看新创建的 Pod。
创建 Pod 后,设置一个本地 Kubernetes 集群来部署该 Pod。
设置本地 Kubernetes 集群
您可以设置一个本地 Kubernetes 集群。一旦集群连接并运行,您就可以在上面部署您的应用程序。
根据您的偏好,使用 Kind 或 Minikube 扩展
- 从扩展目录中安装扩展。
- 创建一个 Kubernetes 集群。请参阅创建 Kind 集群或创建 Minikube 集群。
一旦创建了 Kubernetes 集群,您可以在 Kubernetes 组件页面上看到一个正在运行的控制平面节点和一个正在运行的 Kubernetes 服务。该页面还会显示集群已连接。
将应用程序部署到 Kubernetes
您可以将应用程序 Pod 部署到具有活动连接的 Kubernetes 集群,并通过服务访问它。此外,作为 Pod 一部分的任何容器都可以部署到 Kubernetes 集群。
-
选择您的 Kubernetes 上下文。
-
前往 Pods 组件页面。
-
点击 Pod 对应的溢出菜单图标。
-
从下拉列表中选择 Deploy to Kubernetes 选项。
-
选中该复选框以使用 Ingress 控制器在本地暴露服务。
注意当您在运行镜像时配置自定义端口映射,您可以从下拉列表中选择一个 Ingress 主机端口。
否则,您将看不到该选项。
-
点击 Deploy,然后点击 Done。
验证正在运行的服务
-
前往 Kubernetes 组件页面。
-
执行以下步骤
- 点击 Services (服务) 选项以查看新创建的服务
my-pod-5000
。 - 点击 Ingresses and Routes (Ingress 和路由) 选项以查看新创建的 Ingress
my-pod
。
注意使用 Apply YAML (应用 YAML) 按钮直接应用 Kubernetes YAML 文件来创建资源。
- 点击 Services (服务) 选项以查看新创建的服务