istio

Форк
0
274 строки · 5.5 Кб
1
apiVersion: gateway.networking.k8s.io/v1beta1
2
kind: GatewayClass
3
metadata:
4
  name: istio
5
spec:
6
  controllerName: istio.io/gateway-controller
7
---
8
apiVersion: gateway.networking.k8s.io/v1beta1
9
kind: Gateway
10
metadata:
11
  name: gateway
12
  namespace: istio-system
13
spec:
14
  addresses:
15
  - value: istio-ingressgateway
16
    type: Hostname
17
  gatewayClassName: istio
18
  listeners:
19
  - name: default
20
    hostname: "*.domain.example"
21
    port: 80
22
    protocol: HTTP
23
    allowedRoutes:
24
      namespaces:
25
        from: All
26
---
27
apiVersion: gateway.networking.k8s.io/v1beta1
28
kind: HTTPRoute
29
metadata:
30
  name: http
31
  namespace: default
32
spec:
33
  parentRefs:
34
  - name: gateway
35
    namespace: istio-system
36
  hostnames: ["first.domain.example", "another.domain.example"]
37
  rules:
38
  - matches:
39
    - path:
40
        type: PathPrefix
41
        value: /get
42
      headers:
43
      - name: my-header
44
        value: some-value
45
        type: Exact
46
    filters:
47
    - type: RequestHeaderModifier
48
      requestHeaderModifier:
49
        add:
50
        - name: my-added-header
51
          value: added-value
52
        remove: [my-removed-header]
53
    - type: ResponseHeaderModifier
54
      responseHeaderModifier:
55
        add:
56
        - name: my-added-resp-header
57
          value: added-resp-value
58
        remove: [my-removed-header]
59
    backendRefs:
60
    - name: httpbin
61
      port: 80
62
---
63
apiVersion: gateway.networking.k8s.io/v1beta1
64
kind: HTTPRoute
65
metadata:
66
  name: http2
67
  namespace: default
68
spec:
69
  parentRefs:
70
  - name: gateway
71
    namespace: istio-system
72
  hostnames: ["second.domain.example"]
73
  rules:
74
  - matches:
75
    - path:
76
        type: PathPrefix
77
        value: /second
78
    backendRefs:
79
    - name: httpbin-second
80
      port: 80
81
  - matches:
82
    - path:
83
        type: PathPrefix
84
        value: /
85
    backendRefs:
86
    - name: httpbin-wildcard
87
      port: 80
88
---
89
apiVersion: gateway.networking.k8s.io/v1beta1
90
kind: HTTPRoute
91
metadata:
92
  name: redirect
93
  namespace: default
94
spec:
95
  parentRefs:
96
  - name: gateway
97
    namespace: istio-system
98
  rules:
99
  - filters:
100
    - type: RequestRedirect
101
      requestRedirect:
102
        port: 8080
103
        statusCode: 302
104
        scheme: https
105
        path:
106
          type: ReplaceFullPath
107
          replaceFullPath: /replace-full
108
---
109
apiVersion: gateway.networking.k8s.io/v1beta1
110
kind: HTTPRoute
111
metadata:
112
  name: redirect-prefix-replace
113
  namespace: default
114
spec:
115
  parentRefs:
116
  - name: gateway
117
    namespace: istio-system
118
  hostnames: ["redirect.domain.example"]
119
  rules:
120
  - matches:
121
    - path:
122
        type: PathPrefix
123
        value: /original
124
    filters:
125
    - type: RequestRedirect
126
      requestRedirect:
127
        port: 8080
128
        statusCode: 302
129
        scheme: https
130
        path:
131
          type: ReplacePrefixMatch
132
          replacePrefixMatch: /replacement
133
---
134
apiVersion: gateway.networking.k8s.io/v1beta1
135
kind: HTTPRoute
136
metadata:
137
  name: rewrite
138
  namespace: default
139
spec:
140
  parentRefs:
141
  - name: gateway
142
    namespace: istio-system
143
  rules:
144
  - matches:
145
    - path:
146
        type: PathPrefix
147
        value: /prefix-original
148
    name: prefix-path-rewrite
149
    filters:
150
    - type: URLRewrite
151
      urlRewrite:
152
        hostname: "new.example.com"
153
        path:
154
          type: ReplacePrefixMatch
155
          replacePrefixMatch: "/replacement"
156
    backendRefs:
157
    - name: httpbin
158
      port: 80
159
  - matches:
160
    - path:
161
        type: PathPrefix
162
        value: /prefix-to-be-removed
163
    name: prefix-to-be-removed
164
    filters:
165
    - type: URLRewrite
166
      urlRewrite:
167
        path:
168
          type: ReplacePrefixMatch
169
          replacePrefixMatch: ""
170
    backendRefs:
171
    - name: httpbin
172
      port: 80
173
  - matches:
174
    - path:
175
        type: PathPrefix
176
        value: /full-original
177
    name: full-path-rewrite
178
    filters:
179
    - type: URLRewrite
180
      urlRewrite:
181
        hostname: "new.example.com"
182
        path:
183
          type: ReplaceFullPath
184
          replaceFullPath: "/replacement"
185
    backendRefs:
186
    - name: httpbin
187
      port: 80
188
---
189
apiVersion: gateway.networking.k8s.io/v1beta1
190
kind: HTTPRoute
191
metadata:
192
  name: mirror
193
  namespace: default
194
spec:
195
  parentRefs:
196
  - name: gateway
197
    namespace: istio-system
198
  rules:
199
  - filters:
200
    - type: RequestMirror
201
      requestMirror:
202
        backendRef:
203
          name: httpbin-mirror
204
          port: 80
205
    - type: RequestMirror
206
      requestMirror:
207
        backendRef:
208
          name: httpbin-second
209
          port: 80
210
    backendRefs:
211
    - name: httpbin
212
      port: 80
213
---
214
apiVersion: gateway.networking.k8s.io/v1beta1
215
kind: HTTPRoute
216
metadata:
217
  name: http-not-selected
218
  namespace: default
219
spec:
220
  parentRefs:
221
  - name: gateway
222
    namespace: istio-system
223
  hostnames: ["should.not.select"]
224
  rules:
225
  - matches:
226
    - path:
227
        type: PathPrefix
228
        value: /get
229
    backendRefs:
230
    - name: httpbin-bad
231
      port: 80
232
---
233
apiVersion: gateway.networking.k8s.io/v1beta1
234
kind: HTTPRoute
235
metadata:
236
  name: http-timeout-request
237
  namespace: default
238
spec:
239
  parentRefs:
240
  - name: gateway
241
    namespace: istio-system
242
  hostnames: ["timeout.domain.example"]
243
  rules:
244
  - matches:
245
    - path:
246
        type: PathPrefix
247
        value: /get
248
    backendRefs:
249
    - name: httpbin
250
      port: 80
251
    timeouts:
252
      request: 1ms
253
---
254
apiVersion: gateway.networking.k8s.io/v1beta1
255
kind: HTTPRoute
256
metadata:
257
  name: http-timeout-backend-request
258
  namespace: default
259
spec:
260
  parentRefs:
261
  - name: gateway
262
    namespace: istio-system
263
  hostnames: ["timeout-backend.domain.example"]
264
  rules:
265
  - matches:
266
    - path:
267
        type: PathPrefix
268
        value: /get
269
    backendRefs:
270
    - name: httpbin
271
      port: 80
272
    timeouts:
273
      request: 2ms
274
      backendRequest: 1ms
275

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.