Kubernetes 上安装 Nginx Ingress (版本 0.34.1) 并配置默认服务器
要为 Kubernetes 安装 Nginx Ingress,并使用版本 v0.34.1,并带有默认服务器,以监听所有命名空间下的 Ingress 配置,可以按照以下步骤进行操作:
- 创建一个命名空间:
kubectl create namespace ingress-nginx
- 添加 Nginx Ingress 的 Helm 仓库:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
- 安装 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 命名空间中。
- 验证安装是否成功:
kubectl get pods -n ingress-nginx
等待所有的 Pod 状态变为 Running。
- 创建默认服务器配置:
创建一个名为 '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
- 为每个命名空间配置 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 配置。
原文地址: https://www.cveoy.top/t/topic/qg6c 著作权归作者所有。请勿转载和采集!