返回

弹指一挥间,Helm助你玩转Ingress部署

见解分享

在 Kubernetes 集群中,Ingress 是一种资源,它可以将集群内的服务暴露到外部。Helm 是 Kubernetes 的包管理器,它可以帮助你轻松地在集群中部署应用程序。本文将介绍如何使用 Helm 在 Kubernetes 集群中部署 Ingress。同时,我们还将部署两个应用程序来演示 Ingress 的具体使用。

Helm 简介

Helm 是 Kubernetes 的包管理器。它可以帮助你轻松地在集群中部署应用程序。Helm 使用清单文件来应用程序的部署信息。清单文件是一个 YAML 文件,它包含了应用程序的名称、版本、依赖关系等信息。

Ingress 简介

Ingress 是一种 Kubernetes 资源。它可以将集群内的服务暴露到外部。Ingress 可以使用多种方式来实现,例如 NGINX、Traefik 等。

使用 Helm 部署 Ingress

现在,我们开始使用 Helm 在 Kubernetes 集群中部署 Ingress。首先,我们需要安装 Helm。安装方法如下:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

安装完成后,我们就可以使用 Helm 来部署 Ingress 了。部署命令如下:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx

部署完成后,我们可以通过以下命令来查看 Ingress 的状态:

kubectl get ingress

部署应用程序

现在,我们已经部署了 Ingress。接下来,我们部署两个应用程序来演示 Ingress 的具体使用。

部署第一个应用程序

第一个应用程序是一个简单的 Nginx 应用程序。部署命令如下:

kubectl create deployment nginx --image=nginx:1.19.2
kubectl expose deployment nginx --type=NodePort --port=80

部署完成后,我们可以通过以下命令来查看应用程序的 NodePort:

kubectl get service nginx

部署第二个应用程序

第二个应用程序是一个简单的 Traefik 应用程序。部署命令如下:

kubectl create deployment traefik --image=traefik:v2.5.6
kubectl expose deployment traefik --type=NodePort --port=80

部署完成后,我们可以通过以下命令来查看应用程序的 NodePort:

kubectl get service traefik

使用 Ingress 暴露应用程序

现在,我们已经部署了两个应用程序。接下来,我们使用 Ingress 来暴露这两个应用程序。

创建 Ingress 资源

首先,我们需要创建一个 Ingress 资源。创建命令如下:

kubectl create ingress my-ingress --class=nginx --annotation=kubernetes.io/ingress.global-static-ip-name=my-static-ip

配置 Ingress 资源

接下来,我们需要配置 Ingress 资源。配置命令如下:

kubectl annotate ingress my-ingress nginx.ingress.kubernetes.io/rewrite-target=/ --ingress-class=nginx

测试应用程序

现在,我们已经配置好了 Ingress 资源。接下来,我们可以测试一下两个应用程序是否可以通过 Ingress 访问。

访问第一个应用程序

我们可以通过以下 URL 来访问第一个应用程序:

http://<Ingress IP>/nginx

访问第二个应用程序

我们可以通过以下 URL 来访问第二个应用程序:

http://<Ingress IP>/traefik

如果我们可以成功访问到这两个应用程序,那么就说明 Ingress 已经成功地将这两个应用程序暴露到外部了。

总结

本文介绍了如何使用 Helm 在 Kubernetes 集群中部署 Ingress。同时,我们还部署了两个应用程序来演示 Ingress 的具体使用。希望本文对你有所帮助。