使用 Podman 桌面构建你的 Kubernetes 应用程序
Podman 桌面与 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 组件页面上看到新创建的 Pod 在该环境中运行。
以下过程创建了一个在 Podman 引擎上运行的 Pod。
- 转到 **Pod** 页面。
- 点击与 Pod 相对应的溢出菜单图标。
- 从下拉列表中选择 **生成 Kube** 选项。
- 在 **Kube** 选项卡中查看 Kubernetes YAML 配置。
- 复制配置并将其粘贴到机器上的 YAML 文件中。
- 编辑 YAML 配置并保存。
- 转到 **Pod** 组件页面。
- 点击 **播放 Kubernetes YAML**。
- 从机器上选择 YAML 文件。
- 检查 **运行时** 字段是否设置为
Podman 容器引擎
。 - 点击 **播放**,然后点击 **完成**。
- 在同一页面上查看新创建的 Pod。
创建 Pod 后,设置本地 Kubernetes 集群以部署 Pod。
设置本地 Kubernetes 集群
你可以设置一个本地 Kubernetes 集群。一旦集群连接并运行,你就可以将你的应用程序部署到它。
根据你的喜好,使用 Kind 或 Minikube 扩展
- 从扩展目录中安装扩展。
- 创建 Kubernetes 集群。参见 Kind 集群创建 或 Minikube 集群创建。
创建 Kubernetes 集群后,你可以在 Kubernetes 组件页面上查看正在运行的控制平面节点和正在运行的 Kubernetes 服务。该页面还显示集群已连接。
将应用程序部署到 Kubernetes
你可以将应用程序 Pod 部署到具有活动连接的 Kubernetes 集群,并通过服务访问它。此外,任何作为 Pod 部署的容器都可以部署到 Kubernetes 集群。
-
选择你的Kubernetes 上下文。
-
转到 **Pod** 组件页面。
-
点击与 Pod 相对应的溢出菜单图标。
-
从下拉列表中选择 **部署到 Kubernetes** 选项。
-
选中复选框以使用 Ingress 控制器在本地公开服务。
注意当你在运行镜像时配置自定义端口映射时,你将获得从下拉列表中选择 Ingress 主机端口的选项。 否则,你将看不到该选项。
-
点击 **部署**,然后点击 **完成**。
验证正在运行的服务
-
转到 **Kubernetes** 组件页面。
-
执行以下步骤
- 点击 **服务** 选项以查看新创建的服务
my-pod-5000
。 - 点击 **Ingress 和路由** 选项以查看新创建的 Ingress
my-pod
。
注意使用 **应用 YAML** 按钮可以直接应用 Kubernetes YAML 文件以创建资源。
- 点击 **服务** 选项以查看新创建的服务