Kubernetes: рдкреНрд░рд╡реЗрд╢: рдПрдХрд╛рдзрд┐рдХ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдорд╛рд░реНрдЪ 2017  ┬╖  38рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubernetes

рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ?
рдирд╣реАрдВ

рдЗрд╕реЗ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореБрджреНрджреЛрдВ рдореЗрдВ рдХреМрди рд╕реЗ рдХреАрд╡рд░реНрдб рдЦреЛрдЬреЗ?
рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдХ, "рдореЗрдЬрдмрд╛рди", рдПрдХрд╛рдзрд┐рдХ рдореЗрдЬрдмрд╛рдиред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА: https://github.com/kubernetes/ingress/issues/87 рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧрд▓рдд рд░реЗрдкреЛ рдореЗрдВ рдерд╛ред


рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ? (рдПрдХ рдЪреБрдиреЛ):
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдЦ рдорд╛рдВрдЧрдирд╛

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

рдЙрджрд╛рд╣рд░рдг:

spec:
  rules:
  - host: foobar.com
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80
  - host: api.foobar.com
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80
  - host: admin.foobar.com
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80
  - host: status.foobar.com
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80

рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ Host рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХрд▓ FQDN рд╕реЗ FQDN рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред
рддреЛ рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рдерд╛:

spec:
  rules:
  - host: ["foobar.com", "api.foobar.com", "admin.foobar.com", "status.foobar.com"]
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80

рдпрд╣ рдореБрдЭреЗ 18 рд▓рд╛рдЗрдиреЗрдВ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ: https://github.com/kubernetes/kubernetes/issues/41881 , рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИред

cc @aledbf (рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк k8s рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ "рдХрд╛рдо" рдХрд░рддреЗ рд╣реИрдВ)

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг ( kubectl version ):

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4", GitCommit:"7243c69eb523aa4377bce883e7c0dd76b84709a1", GitTreeState:"clean", BuildDate:"2017-03-07T23:53:09Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4+coreos.0", GitCommit:"97c11b097b1a2b194f1eddca8ce5468fcc83331c", GitTreeState:"clean", BuildDate:"2017-03-08T23:54:21Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}

рдкрд░реНрдпрд╛рд╡рд░рдг :
DigitalOcean, CoreOS.

sinetwork triagunresolved

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╡рд╛рдИрдПрдПрдордПрд▓ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред

spec:
  rules:
  - host: foobar.com
    http: &http_rules
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80
  - host: api.foobar.com
    http: *http_rules
  - host: admin.foobar.com
    http: *http_rules
  - host: status.foobar.com
    http: *http_rules

рд╕рднреА 38 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕рдХреЗ рд▓рд┐рдП рднреА +1ред рдЬреИрд╕рд╛ рдХрд┐ @klausenbusk рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ https://github.com/kubernetes/kubernetes/issues/41881 рдкрд░ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░реЗрдЧрд╛ред

рдореИрдВ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдпрд╛ рд╕рдмрдбреЛрдореЗрди-рдУрдирд▓реА рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ host: web.* рдпрд╛ host: api.web.* рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рднреА рд╣реИ рдЬреЛ _starts_ рдЙрд╕ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдЧреБрдЬрд░рддрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рдХреЛ рдЙрд╕рдХреЗ рдЕрдВрддрд┐рдо рдбреЛрдореЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдирдЬрд╛рди рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ (рдХреНрдпрд╛ рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ .example.com ? .prod.example.com ? .beta.example.com ? .it.internal ?), рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЬреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ "рдкреВрд░реЗ рдПрдХрд▓ рдбреЛрдореЗрди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП host: рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдХрджрдо рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдХ (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджреНрд╡рд╛рд░рд╛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╣рддрд╛ рд╣реИ, "рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЛрдореЗрди рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдЙрдк рдбреЛрдореЗрди рдХреА рд╕реЗрд╡рд╛ рдХрд░реЗрдВ ...", рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред

рдПрдХ рдФрд░ +1ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреИрд░-рддреБрдЪреНрдЫ рдкреНрд░рд╡реЗрд╢ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕рд╕реЗ рдлрд╛рдпрджрд╛ рд╣реЛрдЧрд╛ред

+1

+1

90d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдореБрджреНрджреЗ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
/remove-lifecycle stale рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд 30d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдмрд╛рд╕реА рдореБрджреНрджреЗ рд╕рдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

/lifecycle frozen рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡рддрдГ рдмрдВрдж рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХреЗрдВред

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдмрдВрдж рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ /close ред

рд╕рд┐рдЧ-рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕/рдЯреЗрд╕реНрдЯ-рдЗрдиреНрдлреНрд░рд╛ рдФрд░/рдпрд╛ @fejta рдХреЛ рдлреАрдбрдмреИрдХ рднреЗрдЬреЗрдВред
/рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

/рдирд┐рдХрд╛рд▓реЗрдВ-рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддрд╛...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ @deitch рдХрд╛рдо

рдореИрдВ рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╡рд╛рдИрдПрдПрдордПрд▓ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред

spec:
  rules:
  - host: foobar.com
    http: &http_rules
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80
  - host: api.foobar.com
    http: *http_rules
  - host: admin.foobar.com
    http: *http_rules
  - host: status.foobar.com
    http: *http_rules

рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдмреАрдЯрд╛ рдПрдкреАрдЖрдИ рдХреЗ рдирд┐рдпрдо рдЕрднреА рднреА рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╡рд╣реА - рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдбреЛрдореЗрди рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗ рдЕрд░реНрдерд╛рдд

*.foobar.com
*.foobar.net
*.foobar.biz

рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ ...

рддреЛ рд╡реЛрдЯ рдХрд░реЗрдВ...

90d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдореБрджреНрджреЗ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
/remove-lifecycle stale рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд 30d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдмрд╛рд╕реА рдореБрджреНрджреЗ рд╕рдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдмрдВрдж рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ /close ред

рд╕рд┐рдЧ-рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕/рдЯреЗрд╕реНрдЯ-рдЗрдВрдлреНрд░рд╛ рдФрд░/рдпрд╛ рдлреЗрдЬрдЯрд╛ рдХреЛ рдлреАрдбрдмреИрдХ рднреЗрдЬреЗрдВ ред
/рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

/рдирд┐рдХрд╛рд▓реЗрдВ-рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

рдЗрд╕рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :(

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред

рдореИрдВрдиреЗ @kramarz рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
Error: YAML parse error on mysite-web/templates/ingress.yaml: error converting YAML to JSON: yaml: line 4: mapping values are not allowed in this context

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред

90d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдореБрджреНрджреЗ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
/remove-lifecycle stale рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд 30d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдмрд╛рд╕реА рдореБрджреНрджреЗ рд╕рдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдмрдВрдж рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ /close ред

рд╕рд┐рдЧ-рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕/рдЯреЗрд╕реНрдЯ-рдЗрдВрдлреНрд░рд╛ рдФрд░/рдпрд╛ рдлреЗрдЬрдЯрд╛ рдХреЛ рдлреАрдбрдмреИрдХ рднреЗрдЬреЗрдВ ред
/рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

/рдирд┐рдХрд╛рд▓реЗрдВ-рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕реБрд╡рд┐рдзрд╛

рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдбреЛрдореЗрди рд╣реИрдВ рдЬреЛ api[0-9].domain.io рдЬреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ -- рдореМрдЬреВрджрд╛ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдбреЛрдореЗрди рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред yaml рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдлрд╝реЙрд▓рдмреИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдЧреЗрдХреНрд╕ рдбреЛрдореЗрди рдирд╛рдо)

рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡реЛрдЯ

рд░реЗрдВрдЬ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдФрд░ рдХрд╛рдо:

rules:
          {{- range .Values.ingress.hosts }}
    - host: {{ . }}
      http:
        paths:
          - path: /
            backend:
              serviceName: {{ $fullName }}
              servicePort: 80
              {{- end }}

рдФрд░ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ yaml:

ingress:
  hosts:
    - "bla.blub"
    - "foo.bar"

рдФрд░ рдПрдХ рдЪрд░ рдкреВрд░реНрдг рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ ...

рдлрд┐рд░ рднреА рдореИрдВ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдпрд╛ рд░реЗрдЧреЗрдХреНрд╕ рдпрд╛ ... рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛

рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдирдЧреНрд░реЗрдб рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдПрдкреАрдЖрдИ рдЗрдирдЧреНрд░реЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗ (рдкреНрд░рд╕реНрддрд╛рд╡ рдЬрд▓реНрдж рд╣реА рдЖ рд░рд╣реЗ рд╣реИрдВ?)

рдПрдкреАрдЖрдИ рдЗрдирдЧреНрд░реЗрдб, @thockin рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдХреНрдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ?

рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдирд╣реАрдВ? рдмрд╣реБрдд рдЕрдзрд┐рдХ рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓рдЧрддреА рд╣реИред - рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?

рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдХрдИ рдбреЛрдореЗрди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП nginx рдкреНрд░рд╡реЗрд╢ рдкрд░ рд╕рд░реНрд╡рд░-рдЙрдкрдирд╛рдо рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ

рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдХрдИ рдбреЛрдореЗрди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП nginx рдкреНрд░рд╡реЗрд╢ рдкрд░ рд╕рд░реНрд╡рд░-рдЙрдкрдирд╛рдо рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ

@catalinpan рдпрд╣ рдЖрдкрдХреЗ рдЕрдВрдд рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореЗрд░рд╛ рд╕рд░реНрд╡рд░-рдЙрдкрдирд╛рдо рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: foobar-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/server-alias: "two-app.foobar.dev"
spec:
  tls:
  - secretName: tls-secret
  rules:
  - host: "one-app.foobar.dev"
    http:
      paths:
      - backend:
          serviceName: foobar
          servicePort: 80

@angelogwapo рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ nginx рдкреНрд░рд╡реЗрд╢ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рд╡рд╣ рдЙрдкрдирд╛рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг рдирдпрд╛ рд╣реИ рддреЛ рдпрд╣рд╛рдВ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ rewrite-target рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХрд╛ рдЙрдкрдирд╛рдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рд╡реЗрд╢ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрдм рддрдХ рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓рд╛ рдЖрдк рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ two-app.foobar.dev рд▓рд┐рдП DNS рд░рд┐рдХреЙрд░реНрдб рдЙрд╕реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ one-app.foobar.dev рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдХрд╛рд░рдг рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реВрдЯ 53 рдореЗрдВ рд╕рд░реНрд╡рд░ рдЙрдкрдирд╛рдо рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрдИ рддреИрдирд╛рддреА = рдХрдИ рд╕рд░реНрд╡рд░ рдЙрдкрдирд╛рдо CNAME рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдФрд░ рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг:
CNAME рджреЛ-app.foobar.dev -> one-app-ew1.foobar.dev
CNAME рджреЛ-app.foobar.dev -> one-app-ase1.foobar.dev

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/server-alias: public_url
  name: app1
spec:
  tls:
  - hosts:
    - public_region_url
      secretName: my_wildcard
  rules:
    - host: public_region_url
      http:
        paths:
          - path: /
            backend:
              serviceName: app1
              servicePort: 80

рдпрд╣ рдлреАрдЪрд░ рдЯреНрд░реИрдлрд┐рдХ рдХреЗ рдЙрди рдпреВрдЬрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдСрдЯреЛрдореЗрдЯреЗрдб рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдлреАрдЪрд░ рдХрд╛ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдВ, рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╣реЛрд╕реНрдЯ (https://docs.traefik.io/v1.7/configuration/acme/#onhostrule) рдХреЗ рд░реВрдк рдореЗрдВ рдбреЛрдореЗрди рдХреА рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рд╕реВрдЪреА рдХреА рдЙрдореНрдореАрдж рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдбреЛрдореЗрди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдореБрдЦреНрдп рдбреЛрдореЗрди рдмрди рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдиреНрдп рд╕рднреА SAN s рд╣реЛрдВрдЧреЗред

@catalinpan рдореИрдВ рд╕рд░реНрд╡рд░-рдЙрдкрдирд╛рдо рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рднреА рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ @angelogwapo рдЬреИрд╕реА рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдбреЛрдореЗрди рд╣реИрдВ:

  • one-app.one-domain.dev
  • рджреЛ-рдРрдкредрджреЛ-рдбреЛрдореЗрди.рджреЗрд╡

рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реИрдз рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИред
рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдиреАрдЪреЗред рдореБрдЭреЗ рд╕рд╣реА рдкреГрд╖реНрда рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗрд╡рд▓ рдореЗрдЬрдмрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред рдЬрдм рдореИрдВ рджреВрд╕рд░реЗ рдбреЛрдореЗрди рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ Kubernetes Ingress Controller рдирдХрд▓реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ ...

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    app.kubernetes.io/instance: ngress-rules
    cert-manager.io/issuer: letsencrypt-prod
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/server-alias: two-app.two-domain.dev
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
  name: ingress-rules
  namespace: default
spec:
  rules:
  - host: one-app.one-domain.dev
    http:
      paths:
      - backend:
          serviceName: service1
          servicePort: 80
        path: /
      - backend:
          serviceName: service2
          servicePort: 80
        path: /portal/
  tls:
  - hosts:
    - one-app.one-domain.dev
    secretName: one-app-tls
  - hosts:
    - two-app.two-domain.dev
    secretName: two-app-tls

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 0.27 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/kubernetes/ingress-nginx/pull/4472/files#diff -9bba411a7c28f1ef63c3a5339db109d5

@jacqinthebox : рдЖрдкрдХрд╛ Ingress рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реЛрд╕реНрдЯ ( one-app.one-domain.dev ) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЬрд╝рд░реВрд░, рдЖрдкрдХрд╛ tls рдЙрди рджреЛрдиреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ spec.rules рдЕрдВрддрд░реНрдЧрдд рд╕рд░рдгреА рджреЗрдЦреЗрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рдбреЛрдореЗрди рдХреЛ рдХреМрди рд╕реА рд╕реЗрд╡рд╛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдореЗрд░рд╛ рдмреБрд░рд╛, рдореИрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рдЙрдкрдирд╛рдо рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗред

@jacqinthebox

рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реИрдз рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИред

рдЖрдк рдПрдХ рдЯреАрдПрд▓рдПрд╕ рд╕реАрдХреНрд░реЗрдЯ рдореЗрдВ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
``` рдЯреАрдПрд▓рдПрд╕:

  • рдореЗрдЬрдмрд╛рди:

    • one-app.one-domain.dev

    • рджреЛ-рдРрдкредрджреЛ-рдбреЛрдореЗрди.рджреЗрд╡

      рдЧреБрдкреНрдд рдирд╛рдо: рд╕рднреА-рдРрдк-рдЯреАрдПрд▓рдПрд╕

      ```

рдЖрдк рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП dup config рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "рдЕрдЧрд░" рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╡рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)

+1

@kramarz , рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХрд╛рдордХрд╛рдЬ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб https://github.com/jetstack/cert-manager рдХреЗ рд╕рд╛рде рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
   name: site
   annotations:
      cert-manager.io/issuer: letsencrypt-prod
      nginx.ingress.kubernetes.io/server-alias: host2.com
spec:
   rules:
   - host: host1.com
     http:
      paths:
      - path: /
        backend:
           serviceName: site
           servicePort: 8080
   tls:
   - secretName: nice-name
     hosts:
     - host1.com
     - host2.com

@AndreKoepke рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди domain.com рд╕реЗ spec.rules[0].host рдФрд░ www.domain.com,domain.se,www.domain.se рд╕реЗ nginx.ingress.kubernetes.io/server-alias рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ: controller.go:1155] Conflicting hostname (domain.com) and alias (www.domain.se). Removing alias to avoid conflicts.

рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jason-riddle picture jason-riddle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cooligc picture cooligc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ttripp picture ttripp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

errordeveloper picture errordeveloper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

montanaflynn picture montanaflynn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ