前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >K8S 集群创建多个 Ingress-Nginx 实例

K8S 集群创建多个 Ingress-Nginx 实例

作者头像
Jokey
修改于 2024-02-28 05:24:06
修改于 2024-02-28 05:24:06
7950
举报
文章被收录于专栏:云原生搬运工云原生搬运工

背景

如果想在集群中部署多个 Ingress-Nginx 实例,或者在一个命名空间下部署多个实例,需要对 ingress-controller 设置额外的启动参数,以免遇到创建的 ingress 资源的 status IP 被同步为空或者被抢占同步为其他实例的 Service IP 的异常行为。

操作步骤

1. 配置关键启动参数。

如多实例不在同一个命名空间,使用如下配置:

代码语言:yaml
AI代码解释
复制
...
  - args:
    - /nginx-ingress-controller
    - --controller-class=k8s.io/prod-internal # 控制器类, 必须唯一
    ...
    - --ingress-class=prod-internal # ingress 类, 必须唯一
    ...
...

如多实例在需要在同一个命名空间, 使用如下配置:

代码语言:yaml
AI代码解释
复制
...
  - args:
    - /nginx-ingress-controller
    - --election-id=ingress-controller-leader-prod-internal # 选举ID, 必须唯一
    - --controller-class=k8s.io/prod-internal # 控制器类, 必须唯一
    ...
    - --ingress-class=prod-internal # ingress 类, 必须唯一
    ...
...

2. 创建 ingressClass 资源:

代码语言:yaml
AI代码解释
复制
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: prod-internal
spec:
  controller: k8s.io/prod-internal

3. 创建 Ingress 资源时使用 ingressClass 字段指定相关实例类:

代码语言:yaml
AI代码解释
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test
  namespace: prod
spec:
  ingressClassName: prod-internal  
  rules:
  - host: "foo.bar.com"
    http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: xwd-social
            port:
              number: 80

参考相关 issues:

https://github.com/kubernetes/ingress-nginx/issues/7890

https://github.com/kubernetes/ingress-nginx/issues/8215

参考官文:https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ingress Nginx 常用规则使用
本文所讲的配置规则,都配置在 annotations(局部配置) 中,Ingress Nginx Deployment 必须配置 --annotations-prefix 参数,默认以 nginx.ingress.kubernetes.io 开头。
YP小站
2020/06/04
2.8K0
Ingress企业实战:部署多个Ingress控制器
在大规模集群场景中,部分服务需要通过公网Ingress对外提供服务访问,但是有部分服务只对内提供服务,不允许使用公网访问,仅支持内部服务间调用,此时可以通过部署两套独立的Ingress来实现,一套支持公网访问,一套仅支持内网访问。接下来,我们通过最佳实践进行实现喽!
用户1107783
2023/09/11
1.4K0
Ingress企业实战:部署多个Ingress控制器
ingress的用法与原理[通俗易懂]
我们知道真正提供服务的是后端的pod,但是为了负载均衡,为了使用域名,为了….,service诞生了,再后来ingress诞生了,那么为什么需要有Ingress呢?先看看官网怎么说的:
全栈程序员站长
2022/09/06
2.2K0
Ingress-Nginx 服务暴露基础学习与实践 (2)
更多学习笔记文章请关注 WeiyiGeek 公众账号,学习交流【邮箱联系: Master#weiyigeek.top】
全栈工程师修炼指南
2021/07/25
3.3K0
Ingress-Nginx 服务暴露基础学习与实践 (2)
Ingress-Nginx 服务暴露基础学习与实践
描述: 到目前为止我们了解kubernetes常用的三种暴露服务的方式:LoadBlancer Service、 NodePort Service、Ingress
全栈工程师修炼指南
2022/09/29
3.1K1
Ingress-Nginx 服务暴露基础学习与实践
ingress-nginx多实例类型
背景 在生产环境中,都需要将nginx分不同类型,比方说内网与外网等等,下面我来介绍下怎么区分类型。
院长技术
2020/06/11
1.1K0
Ingress API 的增强属性
我们知道在 Kubernetes 集群内部使用 kube-dns 实现服务发现的功能,那么我们部署在 Kubernetes 集群中的应用如何暴露给外部的用户使用呢?我们知道可以使用 NodePort 和 LoadBlancer 类型的 Service 可以把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可以用来暴露服务给外部用户,那就是 Ingress。对于小规模的应用我们使用 NodePort 或许能够满足我们的需求,但是当你的应用越来越多的时候,你就会发现对于 NodePort 的管理就非常麻烦了,这个时候使用 Ingress 就非常方便了,可以避免管理大量的端口。
我是阳明
2021/12/16
7510
Ingress API 的增强属性
五分钟k8s实战-使用Ingress
前两章中我们将应用部署到了 k8s 中,同时不同的服务之间也可以通过 service 进行调用,现在还有一个步骤就是将我们的应用暴露到公网,并提供域名的访问。
crossoverJie
2023/09/20
6500
五分钟k8s实战-使用Ingress
Kubernetes Ingresses (1)
在连接上一个 k8s cluster 后执行下面的命令可以看到系统中的ingressclasses。这篇文字用来帮助自己理解下面几行简单的输出。
dhyuan
2023/08/28
2520
Kubernetes Ingresses (1)
Kubernetes(k8s)-Ingress案例
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
运维小路
2025/01/16
1760
Kubernetes(k8s)-Ingress案例
kubernetes1.22安装使用ingress-nginx
我们已经了解了 Ingress 资源对象只是一个路由请求描述配置文件,要让其真正生效还需要对应的 Ingress 控制器才行,Ingress 控制器有很多,这里我们先介绍使用最多的 ingress-nginx,它是基于 Nginx 的 Ingress 控制器。
我是阳明
2021/12/27
3.3K0
kubernetes1.22安装使用ingress-nginx
更新NGINX-Ingress以使用稳定的Ingress API
对于所有 Kubernetes API,都有一个创建、维护和最终弃用它们的过程。networking.k8s.io API 组没有不同。即将发布的 Kubernetes 1.22 版本将删除几个与网络相关的弃用 API:
CNCF
2021/07/30
1.4K0
在k8s(kubernetes) 上安装 ingress V1.1.0
Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由。流量路由由 Ingress 资源上定义的规则控制。
小陈运维
2021/12/16
1.6K0
k8s中负载均衡器【ingress-nginx】部署
在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案:
我的小碗汤
2019/07/30
4.6K0
【K8s】Kubernetes 服务发现之 Ingress
Ingress 是 Kubernetes 提供的一种服务发现机制,主要作用是为集群外部访问集群内部服务提供访问入口,通过制定 Ingress 策略管理 HTTP 路由,将集群外部的访问请求反向代理到集群内部不同 Service 对应的 Endpoint(即 Pod)上。
行者Sun
2024/09/02
2640
【K8s】Kubernetes 服务发现之 Ingress
《做一个不背锅运维:一篇搞定K8s Ingress》
Ingress是一种Kubernetes资源,用于将外部流量路由到Kubernetes集群内的服务。与NodePort相比,它提供了更高级别的路由功能和负载平衡,可以根据HTTP请求的路径、主机名、HTTP方法等来路由流量。
不背锅运维
2023/03/30
1.8K0
《做一个不背锅运维:一篇搞定K8s Ingress》
ASP.NET Core on K8S深入学习(12)Ingress
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
Edison Zhou
2020/05/11
1K0
ASP.NET Core on K8S深入学习(12)Ingress
腾讯云TKE-Ingress案例: TKE-Ingress与Nginx-Ingress共存
用户场景: 既想使用腾讯云TKE Ingress的能力又想使用Nginx-Ingress的能力, 多个入口,不同的controller监听不同的带有kubernetes.io/ingress.class annotations 标签的资源. 架构图如下:
朱瑞卿
2020/10/24
2.1K0
腾讯云TKE-Ingress案例: TKE-Ingress与Nginx-Ingress共存
k8s 裸机安装 nginx1.19 ingrass
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100371.html原文链接:
全栈程序员站长
2021/05/19
5170
Ingress-Nginx 服务暴露基础学习与实践(1)
本章讲解通过服务发现的功能进行实现 , 由 Ingress controller 来提供路由信息的刷新, Ingress controller可以理解为一个监视器不断监听 kube-apiserver 实时感知service、Pod的变化
全栈工程师修炼指南
2021/07/25
3.2K0
相关推荐
Ingress Nginx 常用规则使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档