要为 Kubernetes 安装 Nginx Ingress,并使用版本 v0.34.1,并带有默认服务器,以监听所有命名空间下的 Ingress 配置,可以按照以下步骤进行操作:

  1. 创建一个命名空间:
kubectl create namespace ingress-nginx
  1. 添加 Nginx Ingress 的 Helm 仓库:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
  1. 安装 Nginx Ingress:
helm install nginx-ingress ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --set controller.replicaCount=2 \
  --set controller.nodeSelector.'beta.kubernetes.io/os'=linux \
  --set defaultBackend.nodeSelector.'beta.kubernetes.io/os'=linux \
  --set controller.admissionWebhooks.enabled=false \
  --set controller.service.type=NodePort \
  --version 0.34.1

这将安装一个具有两个副本的 Nginx Ingress 控制器,并将其部署到 ingress-nginx 命名空间中。

  1. 验证安装是否成功:
kubectl get pods -n ingress-nginx

等待所有的 Pod 状态变为 Running

  1. 创建默认服务器配置: 创建一个名为 'default-server' 的 ConfigMap,其中包含要应用于所有 Ingress 的默认服务器配置。创建一个名为 default-server.conf 的文件,内容如下:
server {
    listen       80 default_server;
    server_name  _;
    return       404;
}

然后创建 ConfigMap:

kubectl create configmap default-server --namespace ingress-nginx --from-file=default-server.conf
  1. 为每个命名空间配置 Ingress: 要使 Ingress 能够监听所有命名空间下的 Ingress 配置,需要为每个命名空间创建一个 Ingress,指向同一个 Service。例如,创建一个名为 ingress-default 的 Ingress,并将其指向 nginx-ingress-controller 的 Service:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-default
  namespace: default
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: nginx-ingress-controller
          servicePort: 80

然后为每个命名空间重复这个步骤。

现在,您已经安装了 Nginx Ingress,并设置了默认服务器,该 Ingress 控制器将监听所有命名空间下的 Ingress 配置。

Kubernetes 上安装 Nginx Ingress (版本 0.34.1) 并配置默认服务器

原文地址: https://www.cveoy.top/t/topic/qg6c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录