背景:
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