多个入口控制器(多入口部署)

背景:

1,业务有个性化需求,例如需要在nginx上面部署代理分析日志并做告警,但该业务不关注其他业务的日志

2,每次业务变更,nginx工人进程都得执行重载。随着业务体量增加,重新加载会越来越频繁,拆分入口可以有效避免业务互相影响


#为机器加上不同的标签,如月桂氮卓酮/bzone用来区分一个专区跟B专区

kubectl标签节点test-node-1.1.1.1 ingress-role=霸鹿鸬客?/p>

kubectl标签节点test-node-2.2.2.2 ingress-role=癰zone”


#创建入口

root@ubuntu:/home/测试# - f nginx-ingress-controller-ds-azone kubectl适用。yml

root@ubuntu:/home/测试# - f nginx-ingress-controller-ds-bzone kubectl适用。yml


#查看部署进入实例

root@ubuntu:/home/测试# kubectl得到pod - n kube-system - o宽| grep nginx

azone-nginx-ingress-controller-d92zq 1/1运行0 2 m 10.26.129.21 test-node-1.1.1.1

bzone-nginx-ingress-controller-dswv9 1/1运行0 2 m 10.26.129.22 test-node-2.2.2.2


# nginx-controller配置如下

apiVersion:扩展/v1beta1

: DaemonSet

元数据:

名称:azone-nginx-ingress-controller

标签:

应用:ingress-nginx

名称空间:kube-system

规范:模板:

元数据:

标签:

应用:ingress-nginx

注释:

普罗米修斯。io/刮:“true”

普罗米修斯。io/端口:“10254”

普罗米修斯。io/类型:“ingress-nginx”

规范:

hostNetwork:真正的

纵容:

-关键:“node-role.kubernetes。io/入口”

操作符:“平等”

价值:“真正的”

效应:“NoSchedule”

nodeSelector:

node-role.kubernetes。io/入口:"真正的"

serviceAccountName:集装箱管理

:

-名称:azone-nginx-ingress-controller

图片:registry.cn-hangzhou.aliyuncs.com/test/ingress-controller:0.15.0-10

参数:

——/nginx-ingress-controller

————default-backend-service=$ (POD_NAMESPACE)/default-http-backend

————configmap=$ (POD_NAMESPACE)/nginx配置

————tcp-services-configmap=$ (POD_NAMESPACE)/tcp服务

————udp-services-configmap=$ (POD_NAMESPACE)/udp-services

————发布服务=$ (POD_NAMESPACE)/ingress-nginx

————annotations-prefix=nginx.ingress.kubernetes。io

- --v=2

- --enable-dynamic-configuration=true

env:

- name: POD_NAME

valueFrom:

fieldRef:

fieldPath: metadata.name

- name: COLLECT_LOG_DOCKER_DATA_WEBLOG

value: "true"

- name: POD_NAMESPACE

valueFrom:

fieldRef:

fieldPath: metadata.namespace

ports:

- name: http

containerPort: 80

- name: https

containerPort: 443

volumeMounts:

- name: localtime-config

mountPath:/etc/localtime

livenessProbe:

failureThreshold: 3

httpGet:

path:/healthz

port: 10254

scheme: HTTP

initialDelaySeconds: 10

periodSeconds: 10

successThreshold: 1

timeoutSeconds: 1

readinessProbe:

failureThreshold: 3

httpGet:

path:/healthz

port: 10254

scheme: HTTP

periodSeconds: 10

successThreshold: 1

timeoutSeconds: 1

volumes:

- name: localtime-config

hostPath:

path:/etc/localtime



# 创建 ingress,配置里面绑定class

root@ubuntu:/home/test# cat azone-test.aaa.com-ingress.yml

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: azone-test-ingress-https

annotations:

nginx.ingress.kubernetes.null

多个入口控制器(多入口部署)