Kubernetes Ingress 控制器(Nginx)安装与使用教程

Kubernetes Ingress 控制器(Nginx)安装与使用教程

kubernetes-ingressNGINX and NGINX Plus Ingress Controllers for Kubernetes项目地址:https://gitcode.com/gh_mirrors/ku/kubernetes-ingress

1. 项目目录结构及介绍

nginxinc/kubernetes-ingress 仓库中,主要的目录结构如下:

.
├── charts           # Helm 图表,用于部署 Nginx Ingress Controller
├── examples         # 示例配置和用例
├── docs              # 官方文档源码
└── deploy            # 非Helm方式的部署脚本和配置
   ├── bare-metal     # 在裸金属环境中部署的示例
   ├── gce             # Google Cloud Engine上的部署示例
   └── ...             # 其他云提供商或环境的部署示例

其中,charts 目录包含了通过 Helm 进行部署的配置,examples 包含了各种配置示例,而 deploy 目录则提供了不同平台上的部署脚本。

2. 项目的启动文件介绍

在非Helm部署的情况下,通常使用 YAML 文件来部署 Nginx Ingress Controller。在 deploy 目录下,每个子目录都有一个或多个 example.yaml 文件,这些是启动文件的例子。它们通常包括以下组件:

  • nginx-ingress-controller-deployment.yaml: 部署 Nginx Ingress Controller 的 Deployment 对象。
  • nginx-ingress-service.yaml: 创建服务(Service)对象,用于暴露 Ingress 控制器。
  • nginx-ingress-configmap.yaml: 配置 ConfigMap,提供 Ingress Controller 的参数设置。

在 Helm 情况下,可以使用 helm install nginxinc/kong --generate-name 来部署,其中 --generate-name 会自动生成释放名称,Helm将在其内部处理启动文件。

3. 项目的配置文件介绍

3.1 ConfigMap

nginx-ingress-configmap.yaml 是配置 Nginx Ingress Controller 的关键文件。它创建一个 ConfigMap,用于传递配置变量给控制器。部分常见的配置键值对包括:

  • controller.service.loadBalancerIP: 设置 Service 的负载均衡 IP。
  • controller.replicaCount: 控制器副本的数量以保证高可用性。
  • controller.service.annotations: 用于添加到 Service 的元数据注解,例如设置外部访问策略。

3.2 Ingress 资源

Ingress 资源定义了如何路由进入集群的网络请求。一个简单的例子:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-app
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        pathBackend:
          service:
            name: my-service
            port:
              number: 80

这段配置会将所有指向 example.com 的流量转发至名为 my-service 的服务的 80 端口。

要了解更多关于 Ingress 资源的详细配置,请参考 Kubernetes 文档中的 Ingress 和这个项目提供的示例。

完成以上步骤后,你就可以在你的 Kubernetes 集群中运行并管理 Nginx Ingress Controller 了。记得根据实际需求调整配置,并利用 Ingress 规则控制对应用程序的外部访问。

kubernetes-ingressNGINX and NGINX Plus Ingress Controllers for Kubernetes项目地址:https://gitcode.com/gh_mirrors/ku/kubernetes-ingress

你可能感兴趣的:(Kubernetes Ingress 控制器(Nginx)安装与使用教程)