Kubernetes 安装 Nginx Ingress Controller (v0.34.1) 并配置默认服务器
要为 Kubernetes 安装 Nginx Ingress Controller(版本 v0.34.1),并带有默认服务器以监听所有命名空间下 extensions/v1beta1 的 Ingress 配置,可以按照以下步骤进行操作:
-
首先,确保已经安装了 Kubernetes 集群和 kubectl 命令行工具,并且具有管理员权限。
-
创建一个命名空间用于安装 Ingress Controller:
kubectl create namespace ingress-nginx
- 添加 Ingress Controller 的 Helm chart 存储库:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
- 更新 Helm chart 存储库:
helm repo update
- 安装 Ingress Controller:
helm install nginx-ingress ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.version='v0.34.1' \
--set controller.admissionWebhooks.enabled=false \
--set defaultBackend.enabled=true \
--set defaultBackend.image.repository='nginx' \
--set defaultBackend.image.tag='1.19'
这将使用 Helm 安装名为 nginx-ingress 的 Ingress Controller,设置版本为 v0.34.1。controller.admissionWebhooks.enabled 设置为 false 以禁用准入 Webhook,defaultBackend.enabled 设置为 true 以启用默认服务器。defaultBackend.image.repository 和 defaultBackend.image.tag 设置了默认服务器镜像的仓库和标签。
- 等待 Ingress Controller 部署完成,可以使用以下命令检查其状态:
kubectl get pods -n ingress-nginx
确保所有的 Pod 都处于 Running 状态。
- 配置 Ingress Controller 以监听所有命名空间下 extensions/v1beta1 的 Ingress 配置。创建一个名为
nginx-ingress-config的 ConfigMap,并将以下内容保存为config.yaml文件:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-config
namespace: ingress-nginx
data:
enable-vts-status: 'true'
ingress-class: 'nginx'
use-regex: 'true'
client-body-buffer-size: '512K'
config.yaml: |
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-configmap
namespace: ingress-nginx
data:
9000: 'default/example-service:9000'
然后使用以下命令创建 ConfigMap:
kubectl apply -f config.yaml
这将创建一个名为 nginx-ingress-config 的 ConfigMap,在其中定义了一些配置选项。
- 更新 Ingress Controller 以使用新的 ConfigMap:
kubectl patch deployment nginx-ingress-controller -n ingress-nginx -p '{"spec":{"template":{"metadata":{"annotations":{"prometheus.io/port":"10254","prometheus.io/scrape":"true","prometheus.io/scheme":"http"}}}}}'
kubectl delete pod -n ingress-nginx -l app=ingress-nginx
这将更新 Ingress Controller 的 Pod 模板以使用新的 ConfigMap,并删除现有的 Pod 以使更改生效。
现在,您已经成功安装了带有默认服务器的 Nginx Ingress Controller,并配置了它以监听所有命名空间下 extensions/v1beta1 的 Ingress 配置。
原文地址: https://www.cveoy.top/t/topic/qg6i 著作权归作者所有。请勿转载和采集!