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