NGINX 安装和配置
NGINX Installation and Configuration
我是 Kubernetes 的新手,想为我目前正在进行的项目使用 NGINX Ingress Controller。我阅读了一些文档并观看了一些教程,但我还没有真正理解:
- 安装过程(我应该使用 Helm,git 存储库吗???)
- 如何正确配置 Ingress。例如,Kubernetes 文档说要使用 nginx.conf 文件 (https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/#creating-the-frontend),而实际的 NGINX 文档中从未提到过。他们说要使用 ConfigMaps 或注解
有没有人知道博客 post 或教程可以清楚地说明这些事情。到目前为止,我所学的一切(包括前端和后端)开发和部署到云环境让我迷路了。我被一个问题困了一个星期,想弄清楚 Ingress 可以帮助我。
谢谢!
安装 nginx 入口控制器(或任何其他与此相关)的最直接过程是使用 helm
。这需要对 helm
以及如何使用 helm charts
.
有基本的了解
这是回购协议:https://github.com/kubernetes/ingress-nginx/tree/master/charts/ingress-nginx
按照其中的说明进行操作 - 如果您使用默认值,则非常简单。对于配置,您也可以在安装前自定义图表。查看自述文件以了解如何获取所有可配置选项。
希望这有助于作为一个起点。
正在回答:
How should I install nginx-ingress
没有一种正确的安装方法nginx-ingress
。每种方式都有自己的 advantages/disadvantages,每个 Kubernetes 集群可能需要不同的处理方式(例如:云管理的 Kubernetes 和 minikube),您需要确定最适合您的选项。
您可以选择 运行:
$ kubectl apply -f ...
,
$ helm install ...
,
terraform apply ...
(掌舵提供者),
- 等等
How should I properly configure Ingress
?
引用官方文档:
An API object that manages external access to the services in a cluster, typically HTTP.
-- Kubernetes.io: Docs: Concepts: Services networking: Ingress
基本上 Ingress
是一种资源,可以告诉您 Ingress controller
它应该如何处理特定的 HTTP
/HTTPS
流量。
具体来说 nginx-ingress
,您的 HTTP
/HTTPS
流量应该发送到的入口点是 Service
类型 LoadBalancer
命名: ingress-nginx-controller
(在 ingress-nginx
命名空间中)。在 Docker Kubernetes 实现中,它将绑定到您机器的本地主机。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
spec:
ingressClassName: "nginx"
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
文档中的修改示例将告诉您的 Ingress
控制器将具有任何 Host
和 path: /
(每个 path
)的流量传递给名为nginx
在端口 80
.
以上配置应用后会在/etc/nginx/nginx.conf
文件中以ingress-nginx
体现。
A side note!
Take a look on how the part of nginx.conf
looks like when you apply above definition:
location / {
set $namespace "default";
set $ingress_name "minimal-ingress";
set $service_name "nginx";
set $service_port "80";
set $location_path "/";
set $global_rate_limit_exceeding n;
关于您的特定 Ingress
清单应该是什么样子,您需要查阅您尝试将流量发送到的软件的文档和 ingress-nginx docs。
寻址部分:
how to properly configure the Ingress. For example, the Kubernetes docs say to use a nginx.conf file (https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/#creating-the-frontend) which is never mentioned in the actual NGINX docs. They say to use ConfigMaps or annotations.
您通常不会修改 Ingress controller
正在自己使用的 nginx.conf
。你写了一份 Ingress
清单,其余的由 Ingress controller
和 Kubernetes
占用。 nginx.conf
中的 Pod
负责路由(您的 Ingress controller
)将反映您的 Ingress
清单。
Configmaps
和 Annotations
可用于 modify/alter 您的 Ingress controller
配置。使用 Configmap
可以说启用 gzip2
压缩,使用注释可以说使用特定的 rewrite
.
为了让事情更清楚。此处引用的指南是安装了 nginx
的前端 Pod
,它将请求传递给 backend
。这个例子除了使用nginx
和转发流量外并没有连接到实际的Ingress
。它不会承认 Ingress
资源,也不会根据您传递的清单采取行动。
A side note!
Your traffic would be directed in a following manner (simplified):
Ingress controller
-> frontend
-> backend
这个例子从个人角度来说更多的是指导如何连接frontend
和backend
而不是关于Ingress
。
其他资源:
我前段时间写的指南应该可以帮助您了解如何配置基本 Ingress
(可能有点过时):
我是 Kubernetes 的新手,想为我目前正在进行的项目使用 NGINX Ingress Controller。我阅读了一些文档并观看了一些教程,但我还没有真正理解:
- 安装过程(我应该使用 Helm,git 存储库吗???)
- 如何正确配置 Ingress。例如,Kubernetes 文档说要使用 nginx.conf 文件 (https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/#creating-the-frontend),而实际的 NGINX 文档中从未提到过。他们说要使用 ConfigMaps 或注解
有没有人知道博客 post 或教程可以清楚地说明这些事情。到目前为止,我所学的一切(包括前端和后端)开发和部署到云环境让我迷路了。我被一个问题困了一个星期,想弄清楚 Ingress 可以帮助我。 谢谢!
安装 nginx 入口控制器(或任何其他与此相关)的最直接过程是使用 helm
。这需要对 helm
以及如何使用 helm charts
.
这是回购协议:https://github.com/kubernetes/ingress-nginx/tree/master/charts/ingress-nginx
按照其中的说明进行操作 - 如果您使用默认值,则非常简单。对于配置,您也可以在安装前自定义图表。查看自述文件以了解如何获取所有可配置选项。
希望这有助于作为一个起点。
正在回答:
How should I install
nginx-ingress
没有一种正确的安装方法nginx-ingress
。每种方式都有自己的 advantages/disadvantages,每个 Kubernetes 集群可能需要不同的处理方式(例如:云管理的 Kubernetes 和 minikube),您需要确定最适合您的选项。
您可以选择 运行:
$ kubectl apply -f ...
,$ helm install ...
,terraform apply ...
(掌舵提供者),- 等等
How should I properly configure
Ingress
?
引用官方文档:
An API object that manages external access to the services in a cluster, typically HTTP.
-- Kubernetes.io: Docs: Concepts: Services networking: Ingress
基本上 Ingress
是一种资源,可以告诉您 Ingress controller
它应该如何处理特定的 HTTP
/HTTPS
流量。
具体来说 nginx-ingress
,您的 HTTP
/HTTPS
流量应该发送到的入口点是 Service
类型 LoadBalancer
命名: ingress-nginx-controller
(在 ingress-nginx
命名空间中)。在 Docker Kubernetes 实现中,它将绑定到您机器的本地主机。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
spec:
ingressClassName: "nginx"
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
文档中的修改示例将告诉您的 Ingress
控制器将具有任何 Host
和 path: /
(每个 path
)的流量传递给名为nginx
在端口 80
.
以上配置应用后会在/etc/nginx/nginx.conf
文件中以ingress-nginx
体现。
A side note!
Take a look on how the part of
nginx.conf
looks like when you apply above definition:location / { set $namespace "default"; set $ingress_name "minimal-ingress"; set $service_name "nginx"; set $service_port "80"; set $location_path "/"; set $global_rate_limit_exceeding n;
关于您的特定 Ingress
清单应该是什么样子,您需要查阅您尝试将流量发送到的软件的文档和 ingress-nginx docs。
寻址部分:
how to properly configure the Ingress. For example, the Kubernetes docs say to use a nginx.conf file (https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/#creating-the-frontend) which is never mentioned in the actual NGINX docs. They say to use ConfigMaps or annotations.
您通常不会修改 Ingress controller
正在自己使用的 nginx.conf
。你写了一份 Ingress
清单,其余的由 Ingress controller
和 Kubernetes
占用。 nginx.conf
中的 Pod
负责路由(您的 Ingress controller
)将反映您的 Ingress
清单。
Configmaps
和 Annotations
可用于 modify/alter 您的 Ingress controller
配置。使用 Configmap
可以说启用 gzip2
压缩,使用注释可以说使用特定的 rewrite
.
为了让事情更清楚。此处引用的指南是安装了 nginx
的前端 Pod
,它将请求传递给 backend
。这个例子除了使用nginx
和转发流量外并没有连接到实际的Ingress
。它不会承认 Ingress
资源,也不会根据您传递的清单采取行动。
A side note!
Your traffic would be directed in a following manner (simplified):
Ingress controller
->frontend
->backend
这个例子从个人角度来说更多的是指导如何连接frontend
和backend
而不是关于Ingress
。
其他资源:
我前段时间写的指南应该可以帮助您了解如何配置基本 Ingress
(可能有点过时):