文章

k8s-ingress

生效方式

ingress 会将 配置的规则写入 启动的 nginx-ingress pod中,中间通过设置变量转发到对应的服务上面

1
2
3
4
5
set $namespace      "prod";
set $ingress_name   "xxx.com";
set $service_name   "";
set $service_port   "";
set $location_path  "/";

生效规则

  1. 统一path,不同namespace
    1
    
    会分先后顺序
    

设置session

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    meta.helm.sh/release-name: prometheus
    meta.helm.sh/release-namespace: monitor
    nginx.ingress.kubernetes.io/affinity: cookie  ## 添加
    nginx.ingress.kubernetes.io/session-cookie-name: grafana_session  ## 添加
  labels:
    app.kubernetes.io/instance: prometheus
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: grafana
    app.kubernetes.io/version: 11.4.0
    helm.sh/chart: grafana-8.8.3
  name: prometheus-grafana
  namespace: monitor
spec:
  ingressClassName: ingress-nginx-ops
  rules:
  - host: grafana.fscloude.cn
    http:
      paths:
      - backend:
          service:
            name: prometheus-grafana
            port:
              number: 80
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - grafana.fscloude.cn
    secretName: grafana-fscloude-cn-tls

##helm-chart部署

value.yaml 部分参数解析

1
2
3
controller:
  allowSnippetAnnotations: true  #是否允许用户在 Ingress 资源中使用 *‑snippet 注解来自定义 NGINX 配置
本文由作者按照 CC BY 4.0 进行授权