Ingress-nginx 国内安装

内容纲要

Ingress-Nginx安装

1. 简介

Ingress-nginx 是一个 Kubernetes 入口控制器,为集群提供了 HTTP 和 HTTPS 路由。 Ingress-nginx 使用 Nginx 作为反向代理,支持的特性包括 URL 重写、传递 HTTP 头部和负载均衡。

2. 安装流程

一般安装有两种方式,使用kubectl安装和使用Helm安装,我一般推荐使用Helm安装。

2.1 使用 Helm 安装

  1. Helm 是 Kubernetes 的一个包管理工具,类似于 Ubuntu 的 apt-get。沿用 Ubuntu 的比喻,Helm charts 就可以看作是包。

  2. 在执行任何 Helm 命令之前,首先确保 Helm 已经在你的机器上安装,并且已经配置在对应的 Kubernetes 集群上。

  3. 使用 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
  4. 创建一个 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.cn

    controller:
    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
  5. 使用新的配置文件安装 Ingress-nginx

    helm install ingress-nginx-release ingress-nginx/ingress-nginx --values values.yaml

    2.2 使用 kubectl 安装

  6. 在安装 Ingress-nginx 之前,首先要确保你的 Kubernetes 集群已经安装并运行。

  7. 由于在中国网络环境下,直接从官方库拉取镜像可能会有问题,因此需要替换为国内的镜像地址。我们以 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 镜像。

参考链接

  1. ingress-nginx installation guide

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部