рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╣реЙрдмреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ k8s рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛

рдЫрд╡рд┐

рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдореЗрдВ, рдореИрдВ VKontakte рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдиреЗ рдФрд░ рдЗрд╕реЗ k8 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рдЕрдкрдиреЗ рд╢реМрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред


рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛


  • рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛
  • рдкреЗрд╢ рд╣реИ K8s
  • рдЗрд╕ рдХрджрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ
  • K8s рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд╛рд╕
  • K8s рдХреНрд▓рд╕реНрдЯрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


img



рдорд╛рд░реНрдЪ 2017 рдореЗрдВ, рдореИрдВрдиреЗ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ VKontakte рд╕реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХреАред


рдпрд╣рд╛рдБ рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпреИрдВрдбреЗрдХреНрд╕ рдЯреЛрдорд┐рддрд╛ рдкрд╛рд░реНрд╕рд░ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдкрд╛рд░реНрд╕рд░ рдкрд░ рдмрд╕ рдЧрдпрд╛ред


рдпрд╣рд╛рдВ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХрд┐рди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреНрдпреЛрдВред


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


рдЬреВрди 2019 рдХреЗ рдЖрд╕рдкрд╛рд╕, рдкрд╛рд░реНрд╕рд░ рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдкрд╛рдИ рдЧрдИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдирдИ рдШреЛрд╖рдгрд╛рдПрдВ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХреА рдЧрдИрдВред рдПрдХ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред


рд╕реЗрд╡рд╛ рдХреА рдмрд╣рд╛рд▓реА рдХрд╛ рдХрд╛рд░рдг k8s рдХрд╛ рдЕрдзреНрдпрдпрди рдерд╛ред


рдкреЗрд╢ рд╣реИ K8s


k8s рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИред


рдкреВрд░реЗ рд╕реЗрд╡рд╛ рдврд╛рдВрдЪреЗ рдХреЛ рдпрдорд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░)ред


рдореИрдВ k8s рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рджреВрдВрдЧрд╛ред


K8s рдШрдЯрдХ


  • рдлрд▓реА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдЗрдХрд╛рдИ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдИ рдХрдВрдЯреЗрдирд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
    рдкреЙрдб рдХреЗ рдЕрдВрджрд░ рдХрдВрдЯреЗрдирд░:
    • рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ рдФрд░ 127.0.0.1:concontainerPort рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ;
    • рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕реАрдзреЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
  • рддреИрдирд╛рддреА - рдкреЛрдб рдХреЗ рдХрд╛рдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреЙрдб рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдирдХреЗ рдЧрд┐рд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирдП рдкреЙрдбреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • PersistentVolumeClaim - рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдиреЛрдб рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЛрдбреНрд╕ рдкрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЙрдбреНрд╕ рдореЗрдВ рдПрдХ рдЖрдо рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рд╕реЗрдл рдЬреИрд╕реА рдиреЗрдЯрд╡рд░реНрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  • рд╕реЗрд╡рд╛ - рдкреЙрдб рд╕реЗ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдореАрдкрддрд╛ рдЕрдиреБрд░реЛрдзред
    рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд░:
    • LoadBalancer - рдХрдИ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП;
    • NodePort (рдХреЗрд╡рд▓ 30000-32767 рдкреЛрд░реНрдЯ) - рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рдмрд┐рдирд╛ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП;
    • ClusterIp - рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП;
    • рдмрд╛рд╣рд░реА рдирд╛рдо - рдкреЙрдб рдФрд░ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдПред
  • рд╡рд┐рдиреНрдпрд╛рд╕ - рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ред
    рдЬрдм рд╡рд┐рдиреНрдпрд╛рд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдирдП рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдлрд▓реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП k8s рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдирд╛рдо рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╣рд░ рдмрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
    рд╡рд╣реА рд╕реАрдХреНрд░реЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред

ConfigMap рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░реЗрдВ
containers: - name: collect-consumer image: mrsuh/rent-collector:1.3.1 envFrom: - configMapRef: name: collector-configmap-1.1.0 - secretRef: name: collector-secrets-1.0.0 

  • рдЧреБрдкреНрдд - рдЧреБрдкреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдкрд╛рд╕рд╡рд░реНрдб, рдЪрд╛рдмрд┐рдпрд╛рдБ, рдЯреЛрдХрди) рдХрд╛ рднрдВрдбрд╛рд░рдгред
  • рд▓реЗрдмрд▓ - рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдЬрд┐рдиреНрд╣реЗрдВ k8 рдШрдЯрдХреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЙрдбред
    K8s рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рд╡рд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ рдЬреЛ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:

рдЙрджрд╛рд╣рд░рдг рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
 apiVersion: apps/v1 kind: Deployment #  Deployment metadata: name: deployment-name #  Deployment labels: app: deployment-label-app # Label Deployment spec: selector: matchLabels: app: pod-label-app # Label,   Deployment    Pods   template: metadata: name: pod-name labels: app: pod-label-app # Label Pod spec: containers: - name: container-name image: mrsuh/rent-parser:1.0.0 ports: - containerPort: 9080 --- apiVersion: v1 kind: Service #  Service metadata: name: service-name #  Service labels: app: service-label-app # Label Service spec: selector: #  Service   matchLabels,  Deployment,      Labels app: pod-label-app # Label,   Service ,   Pod    ports: - protocol: TCP port: 9080 type: NodePort 

рдЗрд╕ рдХрджрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ


рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЯреНрд░рд┐рдорд┐рдВрдЧ


рд╕реЗрд╡рд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рдереЗ рдФрд░ рдореБрдЦреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдордирд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:


  • рд╡реАрдХреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб;
  • рдкреНрд░реЙрдХреНрд╕реА рдШрдЯрдХ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ;
  • VKontakte рдФрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдирдИ рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдШрдЯрдХред

рд╕реЗрд╡рд╛ рдШрдЯрдХ


рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдЕрдВрджрд░ рд╕реЗ рд╕реЗрд╡рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рд▓рдЧреА:
рдпреЛрдЬрдирд╛


  • рджреГрд╢реНрдп - рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рдкреНрд░рджрд░реНрд╢рди (NodeJS);
  • рдкрд╛рд░реНрд╕рд░ - рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ (рдЧреЛ);
  • рдХрд▓реЗрдХреНрдЯрд░ - рд╡рд┐рдЬреНрдЮрд╛рдкрди рдПрдХрддреНрд░ рдХрд░рдирд╛, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╣рдЯрд╛рдирд╛ (PHP):
    • рдХреНрд░реЛрди-рдПрдХреНрд╕рдкреНрд▓реЛрд░ - рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдЯреАрдо рдЬреЛ рдЖрд╡рд╛рд╕ рдХреЛ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП VKontakte рдкрд░ рд╕рдореВрд╣реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реА рд╣реИ;
    • рдХреНрд░реЛрди-рдХрд▓реЗрдХреНрдЯ - рдПрдХ рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб, рдЬреЛ рдХреНрд░реЛрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ-рд╕реНрд╡рдпрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ;
    • рдХреНрд░реЙрди-рдбрд┐рд▓реАрдЯ - рдПрдХ рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдЬреЛ рд╕рдорд╛рдкреНрдд рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ;
    • рдХрдВрдЬреНрдпреВрдорд░-рдкрд╛рд░реНрд╕ - рдХрддрд╛рд░ рд╣реИрдВрдбрд▓рд░, рдЬреЛ рдХреНрд░реЛрди-рдХрд▓реЗрдХреНрдЯ рд╕реЗ рдиреМрдХрд░рд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╛рд░реНрд╕рд░ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ;
    • рдХрдВрдЬреНрдпреВрдорд░-рдХрд▓реЗрдХреНрдЯ - рдХрддрд╛рд░ рдХрд╛ рд╣реИрдВрдбрд▓рд░ рдЬрд┐рд╕реЗ рдЙрдкрднреЛрдХреНрддрд╛-рдкрд╛рд░реНрд╕ рд╕реЗ рдХрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рдЦрд░рд╛рдм рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред

Docker Images рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ


рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХрд▓ рд╢реИрд▓реА рдореЗрдВ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:


  • env рдЪрд░ рдореЗрдВ рдШрдЯрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рд░рдЦреЛ,
  • stdout рдореЗрдВ рд▓реЙрдЧ рд▓рд┐рдЦреЗрдВред

рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред


K8s рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд╛рд╕


рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдШрдЯрдХ рдорд┐рд▓реЗ, рдФрд░ рдореИрдВрдиреЗ k8s рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред


рд╕рднреА рдШрдЯрдХ рдЬреЛ рдбреЗрдорди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдореЙрди рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрд╡рд╛ рд╣реИред рд╕рднреА рдХрд╛рд░реНрдп рдЬрд┐рдиреНрд╣реЗрдВ рдХреНрд░реЛрдирдЬреЛрдм рдореЗрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


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


рдЦрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕
 apiVersion: apps/v1 kind: Deployment metadata: name: view spec: selector: matchLabels: app: view replicas: 1 template: metadata: labels: app: view spec: volumes: - name: view-static emptyDir: {} containers: - name: nginx image: mrsuh/rent-nginx:1.0.0 - name: view image: mrsuh/rent-view:1.1.0 volumeMounts: - name: view-static mountPath: /var/www/html lifecycle: postStart: exec: command: ["/bin/sh", "-c", "cp -r /app/web/. /var/www/html"] 

рдХрд▓реЗрдХреНрдЯрд░ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдХреНрд░реЛрдирдЬреЛрдм рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдпреЗ рд╕рднреА рдШрдЯрдХ VKontakte API рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдЭрд╛ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЛ рдХрд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ PersistentVolumeClaim рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рд╕реЗ рдЬреЛрдбрд╝рд╛ред рдРрд╕рд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╡рд┐рднрд┐рдиреНрди рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рдХреЗ рдЕрдВрджрд░ред


PersistentVolumeClaim рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
 apiVersion: apps/v1 kind: Deployment metadata: name: collector spec: selector: matchLabels: app: collector replicas: 1 template: metadata: labels: app: collector spec: volumes: - name: collector-persistent-storage persistentVolumeClaim: claimName: collector-pv-claim containers: - name: collect-consumer image: mrsuh/rent-collector:1.3.1 volumeMounts: - name: collector-persistent-storage mountPath: /tokenStorage command: ["php"] args: ["bin/console", "app:consume", "--channel=collect"] - name: parse-consumer image: mrsuh/rent-collector:1.3.1 volumeMounts: - name: collector-persistent-storage mountPath: /tokenStorage command: ["php"] args: ["bin/console", "app:consume", "--channel=parse"] 

PersistentVolumeClaim рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдРрд╕реА рдпреЛрдЬрдирд╛ рдорд┐рд▓реА (рдПрдХ рдШрдЯрдХ рдХреЗ рдкреЙрдбреНрд╕ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ):


рдпреЛрдЬрдирд╛


K8s рдХреНрд▓рд╕реНрдЯрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди


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


 kubectl logs -f pod-name kubectl describe pod pod-name 

рдЬрдм рдореИрдВрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдорд┐рдирд┐рдХреНрдпреВрдм рдореЗрдВ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рдЬрд┐рдЯрд▓ рдСрдпрди рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛ред


рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕реЗрд╡рд╛ 2 рдорд╣реАрдиреЗ рд╕реЗ рд╕реНрдерд┐рд░ рд╣реИред рдкреВрд░реНрдг рд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

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


All Articles