Ingress-Nginx安装
1. 简介
Ingress-nginx 是一个 Kubernetes 入口控制器,为集群提供了 HTTP 和 HTTPS 路由。 Ingress-nginx 使用 Nginx 作为反向代理,支持的特性包括 URL 重写、传递 HTTP 头部和负载均衡。
2. 安装流程
一般安装有两种方式,使用kubectl安装和使用Helm安装,我一般推荐使用Helm安装。
2.1 使用 Helm 安装
-
Helm 是 Kubernetes 的一个包管理工具,类似于 Ubuntu 的 apt-get。沿用 Ubuntu 的比喻,Helm charts 就可以看作是包。
-
在执行任何 Helm 命令之前,首先确保 Helm 已经在你的机器上安装,并且已经配置在对应的 Kubernetes 集群上。
-
使用 Helm 安装 Ingress-nginx,并查看当前 Chart 的值:
helm add repo ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm show values ingress-nginx/ingress-nginx
-
创建一个
values.yaml
文件并更改返回值中的镜像仓库地址:# 将ingress-nginx的values dump到一个values.yaml文件中 helm show values ingress-nginx/ingress-nginx >values.yaml
然后使用你喜欢的文件编辑工具(vim/nano/…)打开values.yaml
首先,修改Controller的image registry为: registry.lank8s.cncontroller: name: controller enableAnnotationValidations: false image: registry: registry.lank8s.cn
其次,修改opentelemetry的image,
opentelemetry: enabled: false image: registry.lank8s.cn/ingress-nginx/opentelemetry:v20230721-....
最后,修改kube-webhook-certgen的registry,
patch: enabled: true image: registry: registry.lank8s.cn image: ingress-nginx/kube-webhook-certgen
-
使用新的配置文件安装 Ingress-nginx
helm install ingress-nginx-release ingress-nginx/ingress-nginx --values values.yaml
2.2 使用 kubectl 安装
-
在安装 Ingress-nginx 之前,首先要确保你的 Kubernetes 集群已经安装并运行。
-
由于在中国网络环境下,直接从官方库拉取镜像可能会有问题,因此需要替换为国内的镜像地址。我们以
registry.lank8s.cn
作为代理镜像库。
使用以下命令安装 Ingress-nginx:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.35.0/deploy/static/provider/baremetal/deploy.yaml
问题
在国内环境下,由于网络限制,可能无法直接从 Docker Hub 拉取镜像,这会导致 Pod 无法正确创建。这是在国内部署常见的问题之一。
解决方案是通过使用镜像代理。你可以将 registry.lank8s.cn
作为代理地址去拉取 Docker 镜像。