āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤āĻā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ NGINX āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻĻā§āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻāĨ¤
1. āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, NGINX Ingress āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯āĻž āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ā§ āĻ¨ā§āĻ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻšā§āĻ¸ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ 404 āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻ¸āĻš āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻĒāĻžāĻ:
āĻ¯āĻžāĻāĻšā§āĻ, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻĒā§āĻ°ā§āĻ āĻ˛ā§āĻā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸ā§āĻ¯ā§āĻ-āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¸āĻš āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ 404 āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, NGINX āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻāĻā§ default-backend-service
. āĻāĻŽāĻ°āĻž āĻāĻāĻ āĻ¨āĻžāĻŽā§āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒā§ āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ namespace/servicename
. āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻĒā§āĻ°ā§āĻ 80 āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻĒāĻĄ (āĻŦāĻŋāĻ¯āĻŧā§āĻ) āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (
āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤:
~$ curl -i -XGET http://sadsdasdas.kube-cloud.my/
HTTP/1.1 404 Not Found
Date: Mon, 11 Mar 2019 05:38:15 GMT
Content-Type: */*
Transfer-Encoding: chunked
Connection: keep-alive
<span>The page you're looking for could not be found.</span>
āĻ¤āĻžāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻŽā§āĻ¨ āĻ¯āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ YAML āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž kind: Ingress
, āĻĄāĻŋāĻĢāĻ˛ā§āĻ-āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻĒāĻĄāĻŧā§āĨ¤ āĻāĻĒāĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ, āĻāĻ āĻĄā§āĻŽā§āĻāĻ¨ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ sadsdasdas
.
2. āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ HTTP āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž
āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻšāĻ˛ HTTP āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° (404, 500, 502...) āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¯āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻ¨āĻž (āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ āĻ¨āĻž)āĨ¤ āĻāĻāĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻāĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻā§āĻāĻžāĻ° āĻāĻžāĻ°āĻŖā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻžāĻāĻĄā§ āĻāĻ āĻā§āĻ¸āĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¨ā§āĻā§āĻā§āĻĻ āĻĨā§āĻā§ āĻāĻĒāĻ°ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨;
- nginx-ingress āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ ConfigMap-āĻ āĻāĻāĻāĻŋ āĻā§ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
custom-http-errors
, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŽāĻžāĻ¨ āĻ¸āĻš404,503
(āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻā§āĻāĻžāĻĻāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ)āĨ¤
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: āĻ¯āĻāĻ¨ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ˛āĻā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ 404 āĻŦāĻž 503 āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻžāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻŦā§...
āĻ¯āĻžāĻāĻšā§āĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻŦāĻ āĻāĻžāĻ¸ā§āĻāĻŽ-http-āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
!!! Important The custom backend is expected to return the correct HTTP status code instead of 200. NGINX does not change the response from the custom default backend.
āĻāĻ¸āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻāĻŦāĻ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻš āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻĨāĻžāĻāĻŦā§ (āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻĒāĻ˛āĻŦā§āĻ§
āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻā§āĻ āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¨.
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĨāĻžāĻā§
āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻ¸āĻŽāĻā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻŽā§āĻ˛ā§ 0.23 āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ, āĻ¨ā§āĻāĻŋāĻ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨:
- āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
default-backend
āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ; - āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
custom-http-errors
āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ .
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸āĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/custom-http-errors: "404,502"
nginx.ingress.kubernetes.io/default-backend: error-pages
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¤ā§āĻ°ā§āĻāĻŋ 404 āĻāĻŦāĻ 502 āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸āĻš āĻ¤ā§āĻ°ā§āĻāĻŋ-āĻĒā§āĻˇā§āĻ āĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
Đ Ingress āĻāĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻāĻŋāĻ˛ āĻ¨āĻž (
āĻĒā§āĻ°āĻŦā§āĻļ <0.23: āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§
āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻ°āĻ āĻ¸āĻšāĻāĨ¤ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻŋāĻ° āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄāĻā§āĻ˛āĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻ¤āĻž āĻāĻžāĻ¨ā§ āĻ¨āĻžā§ˇ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ url āĻĨā§āĻā§ Ingress āĻĻāĻŋāĻ¯āĻŧā§ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ /error-pages
, āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻā§ ws
āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž HTML āĻšāĻŦā§āĨ¤
YAML-āĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/server-snippet: |
proxy_intercept_errors on;
error_page 500 501 502 503 504 @error_pages;
location @error_pages {
rewrite ^ /error-pages/other/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
āĻāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ ClusterIP āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ¤ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻŦ, āĻĒā§āĻ°āĻŦā§āĻļā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻžāĻŽāĻā§āĻ°ā§ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°-āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻŦāĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨-āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻ¯ā§āĻ āĻāĻ°āĻŋ:
nginx.ingress.kubernetes.io /server-snippet: |
proxy_intercept_errors on;
error_page 500 501 502 503 504 @error_pages;
location @error_pages {
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
āĻĒā§āĻ°āĻŦā§āĻļ <0.23: āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¯āĻž āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§... āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ°āĻ āĻ¸āĻ āĻŋāĻ āĻāĻĒāĻžāĻ¯āĻŧ, āĻāĻžāĻ¸ā§āĻāĻŽ-http-āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĨā§āĻā§ āĻ§āĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž (āĻāĻĒāĻŋ āĻāĻ°āĻž) āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ¨āĻžāĻ
nginx.ingress.kubernetes.io /server-snippet: |
proxy_intercept_errors off;
error_page 404 = @custom_404;
error_page 503 = @custom_503;
location @custom_404 {
internal;
proxy_intercept_errors off;
proxy_set_header X-Code 404;
proxy_set_header X-Format $http_accept;
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Namespace $namespace;
proxy_set_header X-Ingress-Name $ingress_name;
proxy_set_header X-Service-Name $service_name;
proxy_set_header X-Service-Port $service_port;
proxy_set_header Host $best_http_host;
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
location @custom_503 {
internal;
proxy_intercept_errors off;
proxy_set_header X-Code 503;
proxy_set_header X-Format $http_accept;
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Namespace $namespace;
proxy_set_header X-Ingress-Name $ingress_name;
proxy_set_header X-Service-Name $service_name;
proxy_set_header X-Service-Port $service_port;
proxy_set_header Host $best_http_host;
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻŽāĻ¨ "āĻ¨ā§āĻāĻŋāĻ" āĻāĻāĻāĻŋāĻ¤ā§āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
K8s āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯:
- ÂĢ
āĻšā§āĻ˛āĻŽ 2 āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° "; - ÂĢ
āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻ¨ā§āĻĄ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ "; - ÂĢ
āĻĄā§āĻ āĻ¸āĻžāĻāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ "; - ÂĢ
āĻŦāĻĄāĻŧ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ°āĻž Âģ.
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- ÂĢ
Istio āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨āĨ¤ āĻ āĻāĻļ 1 "; - ÂĢ
[āĻ¸āĻāĻŋāĻ¤ā§āĻ°] āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻĄāĨ¤ āĻĒāĻžāĻ°ā§āĻ 3 Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com