рдПрдХ рд╢реБрд░реБрдЖрдд рдХреА рдЖрдБрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Kubernetes Ingress

рдкреНрд░рд╡реЗрд╢ рдХреНрдпрд╛ рд╣реИ?


рдЗрдирд╡рд░реНрдЯрд░, Coubertene рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реИред рдпрджрд┐ рдЖрдк рдмрд╕ рдХреБрдмреЗрд░рдиреЗрдЯрд┐рд╕ рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред


рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдирд░рд╡реЗрдпрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЗрдирдЧреНрд░реЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред


рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ 2 рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ - рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкреЛрд░реНрдЯ 80 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ рддреЛ рдПрдХ рдЕрд▓рдЧ рдбреЗрдореЙрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдирдЧрдиреЗрдХреНрд╕ рдореЗрдВ), рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ (рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ)ред


рд╕рднреА рдХреНрд▓рд╛рдЙрдб рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреНрд░рджрд╛рддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред


рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ рддреЛ рдбреЗрдордирд╕реЗрдЯ рдпрд╛ рддреИрдирд╛рддреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред DaemonSet рдХреЛ рдХреЗрд╡рд▓ Ingress рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрджрд░реНрд╢ рд╣реИ, рддрд╛рдХрд┐ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд╕рднреА IP рдкрддреЗ рдкрд░ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕реБрдиреЗрдВред рддреИрдирд╛рддреА рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдмреИрд▓реЗрдВрд╕рд░ рд╣реИ рддреЛ рддреИрдирд╛рддреА рд╕рд╣реА рд╣реИ - рдХреБрдмреЗрд░рдиреЗрдЯрд┐рд╕ рдкреНрд░рджрд╛рддрд╛ (GKE, AKS), рдореЗрдЯрд▓рдПрд▓рдмреА рд╕реЗ рдпрджрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░реАрдорд┐рдпрдо рдпрд╛ рдирд┐рдпрдорд┐рдд рд╣реИрдкреНрд░реЛрдХреНрд╕реА / рдирдЧреНрдиреЗрдХреНрд╕ рд╣реИ (рдореИрдиреБрдЕрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд╕рд╛рде, рдХрдИ рдЗрдирд╡реЗрд╢рди рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред


рдЗрдирдмрд╛рдЙрдВрдб рдЯреНрд░реИрдлрд╝рд┐рдХ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ


рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрдирд╡рд░реНрдЯрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдЙрди рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рд╡рд╣ http / https рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред


рдЗрди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдпрд╛рддрд╛рдпрд╛рдд рддреАрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  • NodePort (30000-32767 рдХреА рд╕реАрдорд╛ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░)
  • HostPort (рдкреЛрд░реНрдЯ 80, 443 рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  • рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ - рдкреЙрдб рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ (рдпрд╛рдиреА рд╕рднреА рдХрдВрдЯреЗрдирд░ рдкреЛрд░реНрдЯ рдЦреБрд▓реЗ рд░рд╣реЗрдВрдЧреЗ)

NodePort


рд▓реЛрдбрдмреЗрд▓рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ NodePort рдкрд░ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ URL рдореЗрдВ NodePort рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ http://domain.example.org:32200/ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ ред


рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП, рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЙрдирдХреЗ рд▓рд┐рдП рдиреЛрдбрдСрдлрд╝рд┐рдирд┐рдЯреА рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ, рдФрд░ рдХрдИ рдЗрдВрдиреНрдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдбрдХреНрд╢рди рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП)ред


HostPort


HostPort рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреЛрд░реНрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЗрд╕реА рдкреЙрдб рдХреЗ рддрд╣рдд рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ LoadBalancer рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди DNS рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдбреЛрдореЗрди рдкрддрд╛ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рд╣реИред


3 рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП DNS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг:


ingress.example.org A 10.0.0.1 ingress.example.org A 10.0.0.2 ingress.example.org A 10.0.0.3 www.example.org CNAME ingress.example.org 

рдЗрд╕ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП, DaemonSet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╣ рдЖрдкрдХреЛ рд╣реЛрд╕реНрдЯ рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреЙрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рддреИрдирд╛рддреА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЖрддреНрдореАрдпрддрд╛ рджрд░реНрдЬ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ 2 рдкреЙрдбреНрд╕ рдХреЛ рдПрдХ рдореЗрдЬрдмрд╛рди рдХреЛ рди рд╕реМрдВрдкрд╛ рдЬрд╛рдП, рдЕрдиреНрдпрдерд╛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рд╕рдВрдШрд░реНрд╖ рд╣реЛрдЧрд╛ред


рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг
 kind: DaemonSet apiVersion: extensions/v1beta1 metadata: name: traefik-ingress-controller namespace: traefik labels: k8s-app: traefik-ingress-lb spec: template: metadata: labels: k8s-app: traefik-ingress-lb name: traefik-ingress-lb namespace: traefik spec: serviceAccountName: traefik-ingress-controller terminationGracePeriodSeconds: 60 containers: - image: traefik:1.7.6 name: traefik-ingress-lb ports: - name: http containerPort: 80 hostPort: 80 - name: https containerPort: 443 hostPort: 443 - name: admin containerPort: 8080 hostPort: 8080 securityContext: capabilities: drop: - ALL add: - NET_BIND_SERVICE args: - --api - --kubernetes - --logLevel=DEBUG - --entrypoints=Name:https Address::443 TLS - --entrypoints=Name:http Address::80 - --defaultentrypoints=http 

рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ


рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдХрд┐рд╕реА рдкреЛрд░реНрдЯ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреЙрдб рдореЗрдВ рдЦреБрд▓реЗ рд╕рднреА рдкреЛрд░реНрдЯ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдВрдЧреЗред рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП DaemonSet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд╣реЛрд╕реНрдЯрдкрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рд░рдг рд╕рдорд╛рди рд╣реИрдВ - рдкреЛрд░реНрдЯ рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред


рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?


рдпрджрд┐ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рд▓реЛрдбрдмреЗрд▓рд░ рд╣реИ - рдиреЙрдбрдкреЙрд░реНрдЯ, рдпрджрд┐ рдирд╣реАрдВ - рд╣реЛрд╕реНрдЯрдкрд╛рд░реНрдЯ + рдбреАрдПрдирдПрд╕ рд░рд╛рдЙрдВрдб рд░реЙрдмрд┐рдиред рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред

Source: https://habr.com/ru/post/hi434524/


All Articles