94 lines
2.0 KiB
Markdown
94 lines
2.0 KiB
Markdown
> 本文作者:丁辉
|
|
>
|
|
|
|
# Helm 部署 Nginx-Ingress
|
|
|
|
## 介绍
|
|
|
|
**Nginx-Ingress 是一个基于 Nginx 的 Ingress 控制器,用于管理外部访问 Kubernetes 集群内部服务的路由规则**。它实现了一个配置有规则的反向代理负载均衡器,能够将入站 HTTP 和 HTTPS 请求路由到集群内的相应服务上。
|
|
|
|
## 开始部署
|
|
|
|
[官方文档](https://kubernetes.github.io/ingress-nginx/deploy/)
|
|
|
|
1. 添加仓库
|
|
|
|
```bash
|
|
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
|
helm repo update
|
|
```
|
|
|
|
2. 编写模版文件
|
|
|
|
```bash
|
|
vi ingress-values.yaml
|
|
```
|
|
|
|
内容如下
|
|
|
|
```yaml
|
|
controller:
|
|
# 开启监控
|
|
metrics:
|
|
enabled: true
|
|
serviceMonitor:
|
|
enabled: true
|
|
|
|
# 配置镜像加速
|
|
image:
|
|
registry: k8s.dockerproxy.com
|
|
|
|
# 使用主机网络时,利用 Kubernetes 集群内的 DNS 解析服务
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
|
|
# 使用本地网络
|
|
hostNetwork: true
|
|
|
|
# Pod 使用 DaemonSet 方式运行
|
|
kind: DaemonSet
|
|
|
|
# 只允许调度到具有 ingress="true" 的节点上,[ kubectl label node xxx ingress="true" ]
|
|
nodeSelector:
|
|
kubernetes.io/os: linux
|
|
ingress: "true"
|
|
|
|
# 禁用后状态字段会报告 Ingress 控制器 Pod 所在节点的 IP 地址或节点列表的 IP 地址
|
|
publishService:
|
|
enabled: false
|
|
|
|
# 启用 Kubernetes Service
|
|
service:
|
|
enabled: false
|
|
|
|
# 配置镜像加速
|
|
admissionWebhooks:
|
|
patch:
|
|
image:
|
|
registry: k8s.dockerproxy.com
|
|
|
|
# 设置为集群默认 ingress 控制器
|
|
ingressClassResource:
|
|
default: true
|
|
```
|
|
|
|
3. 配置节点标签
|
|
|
|
```bash
|
|
kubectl label node ${node} ingress="true"
|
|
```
|
|
|
|
4. 部署
|
|
|
|
```bash
|
|
helm install ingress-nginx \
|
|
ingress-nginx/ingress-nginx \
|
|
-f ingress-values.yaml
|
|
```
|
|
|
|
## 卸载
|
|
|
|
```bash
|
|
helm uninstall ingress-nginx
|
|
```
|
|
|