部署 Kubernetes 应用程序
本教程涵盖在 Kubernetes 集群中部署应用程序所需的以下端到端任务
- 设置 Kubernetes 上下文
- 创建部署
- 创建服务
- 验证服务:端口转发
如果您有多个 Kubernetes 上下文,则必须设置要在其中创建应用程序资源的正确上下文。在 Kubernetes 集群中,您可以通过其内部 IP 地址访问应用程序。但是,如果要使应用程序可以从外部网络访问,则必须将包含应用程序的 Pod 暴露为 Kubernetes 服务。要访问 Kubernetes 集群上运行的服务,您可以使用以下选项之一
- 使用 CLI 进行端口转发(本教程涵盖)
- 使用 UI 创建 Ingress 控制器
准备工作
确保您已
- 安装 Podman Desktop.
- 运行 Podman 虚拟机.
- 运行 Kubernetes 集群.
- 拥有开发者角色。
- 如果您计算机上没有`Deployment`文件,请使用以下代码创建一个:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 2
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
此 YAML 配置创建了一个运行两个 Nginx Pod 的`my-nginx`部署。
- 如果您计算机上没有`Service`文件,请使用以下代码创建一个:
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: my-nginx
此 YAML 配置创建一个名为`my-nginx`的服务,以将 Nginx 部署暴露到 Kubernetes 集群外部。该服务侦听端口`80`上的客户端请求,然后将其转发到容器上的目标端口`80`。
设置 Kubernetes 上下文
- 转到**设置 > Kubernetes**。
- 设置当前 Kubernetes 上下文。例如,如果要使用 Kind 集群,请使用 UI 中的**设为当前上下文**图标:
创建部署
- 从左侧导航窗格转到 Kubernetes 资源管理器。
- 转到**部署**并单击**应用 YAML**。
- 选择 YAML 配置文件,然后单击**打开**。操作成功通知将打开。
- 单击**确定**。
- 在同一页面上查看新创建的 `my-nginx` 部署。
- 重新启动 Podman Desktop 应用程序。
- 从左侧导航窗格转到**Pod**。
- 查看两个新创建的 `my-nginx` pod。
创建服务
- 在 Kubernetes 资源管理器中,转到**服务**。
- 单击**应用 YAML**。
- 选择 YAML 配置文件,然后单击**打开**。操作成功通知将打开。
- 单击**确定**。
- 在同一页面上查看新创建的服务。
验证服务:端口转发
- 使用 `kubectl port-forward` 命令将本地端口转发到服务。以下示例使用本地端口 `20000`。
$ kubectl port-forward service/my-nginx 20000:80
- 打开 Web 浏览器。
- 输入本地主机地址,例如, *https://127.0.0.1:20000*。
- 查看 Nginx 欢迎页面。