Ingress-nginx详解以及部署方案(二)

本文详细介绍了如何使用DaemonSet方式部署Ingress-nginx以提高其高可用性。通过设置`hostNetwork`为`true`暴露服务端口,并利用节点亲和性策略,确保多个节点运行nginx-ingress-controller pod,结合外部硬件负载均衡器,实现故障预防和负载分布。
摘要由CSDN通过智能技术生成

上一篇讲解deployment方式部署ingress。

使用DaemonSet方式部署ingress。

官方原始文件使用的是deployment,replicate 为 1,这样将会在某一台节点上启动对应的nginx-ingress-controller pod。外部流量访问至该节点,由该节点负载分担至内部的service。测试环境考虑防止单点故障,改为DaemonSet然后删掉replicate ,配合亲和性部署在制定节点上启动nginx-ingress-controller pod,确保有多个节点启动nginx-ingress-controller pod,后续将这些节点加入到外部硬件负载均衡组实现高可用性。

1. 添加hostNetwork

true:添加该字段,暴露nginx-ingress-controller pod的服务端口(80)

2. 添加亲和性属性

增加亲和性部署,有 isIngress 标签的节点才会部署该DaemonSet

3. 设置节点的label

[root@master01 ~]# kubectl label nodes node01 isIngress=true
node/node01 labeled
[root@master01 ~]# kubectl label nodes node02 isIngress=true
node/node02 labeled
[root@master01 ~]# kubectl label nodes node03 isIngress=true
node/node03 labeled

4. 执行并部署ingress

cat mandatory-ds.yaml

apiVersion: v1
kind: Namespace #新增空间命名ingress-nginx
metadata:
  name: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

---

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

---
kind: ConfigMap
apiVersion: v1
metadata:
  name: tcp-services
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

---
kind: ConfigMap
apiVersion: 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值