рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЧрд╛рдЗрдб

рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рдпрд╣ рд▓реЗрдЦ learnk8s рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯ рдХрдВрдкрдирд┐рдпреЛрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░, рдбреЗрдирд┐рдпрд▓ рдкреЙрд▓реЗрдВрд╕рд┐рдХ, K8s рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред



TL; DR: рдпрд╣рд╛рдБ рдПрдХ рдЪрд┐рддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рддреИрдирд╛рддреА рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:



рдХрд┐рд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯред рдореВрд▓ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) рдпрд╣ рдкреАрдбреАрдПрдл рдореЗрдВ рдФрд░ рдПрдХ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рддреАрди рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

  • рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдлрд▓реА рдирд╛рдордХ рдПрдХ рдкреНрд░рддрд┐ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреБрд╕реНрдЦрд╛ рд╣реИ;
  • рд╕реЗрд╡рд╛ - рдПрдХ рдЖрдВрддрд░рд┐рдХ рднрд╛рд░ рдмреИрд▓реЗрдВрд╕рд░ рдЬреЛ рдлрд▓реА рдХреЗ рдмреАрдЪ рдпрд╛рддрд╛рдпрд╛рдд рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ;
  • рдЗрдирдЧреНрд░реЗрдб - рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рд╕реЗрд╡рд╛ рдореЗрдВ рдХреИрд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЖрдПрдЧрд╛, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЪрд┐рддреНрд░рдордп рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:

1) рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рд▓реЛрдб рдмреЗрд▓реЗрдВрд╕рд░реЛрдВ рдХреА рджреЛ рдкрд░рддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ: рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реАред



2) рдЖрдВрддрд░рд┐рдХ рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рд╕реЗрд╡рд╛, рдмрд╛рд╣рд░реА - рдкреНрд░рд╡реЗрд╢ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



3) рддреИрдирд╛рддреА рдлрд▓реА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ (рд╡реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

apiVersion: apps/v1 kind: Deployment # <<< metadata: name: my-deployment labels: track: canary spec: selector: matchLabels: any-name: my-app template: metadata: labels: any-name: my-app spec: containers: - name: cont1 image: learnk8s/app:1.0.0 ports: - containerPort: 8080 --- apiVersion: v1 kind: Service # <<< metadata: name: my-service spec: ports: - port: 80 targetPort: 8080 selector: name: app --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress # <<< metadata: name: my-ingress spec: rules: - http: paths: - backend: serviceName: app servicePort: 80 path: / 

рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛рдлреА рд▓рдВрдмреА рд╣реИ, рдФрд░ рдпрд╣ рднреНрд░рдорд┐рдд рд╣реЛрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдШрдЯрдХ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдЖрдкрдХреЛ рдкреЛрд░реНрдЯ 80 рдФрд░ рдХрдм - 8080 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рдХреНрдпрд╛ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡реЗ рд╕рдВрдШрд░реНрд╖ рди рдХрд░реЗрдВ?
  • рд▓реЗрдмрд▓ рдирд╛рдо рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ рдПрдХ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рддреАрди рдШрдЯрдХ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЪрд▓реЛ рддреИрдирд╛рддреА рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдХрдиреЗрдХреНрд╢рди рддреИрдирд╛рддреА рдФрд░ рд╕реЗрд╡рд╛


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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреЙрдбреНрд╕ рдФрд░ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рддреАрди рдмрд╛рддреЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ:

  1. рдПрдХ рд╕реЗрд╡рд╛ selector рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреЙрдб рд▓реЗрдмрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. targetPort рдкреЙрдб рдХреЗ рдЕрдВрджрд░ containerPort рдореЗрд▓ targetPort рдЪрд╛рд╣рд┐рдПред
  3. port рд╕рд░реНрд╡рд┐рд╕ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдкреА рдкрддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдЪрд┐рддреНрд░рдордп рд░реВрдк рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:

1) рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╕реЗрд╡рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд▓реА рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИ:



2) рдкреЙрдб рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдкреЙрдбрдкреЙрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:



3) рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ port рдФрд░ targetPort рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрдВрдЯреЗрдирд░ рдХрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реИ?



4) рд╡рд╛рдпрд╛ targetPort ред рдпрд╣ рдХрдВрдЯреЗрдирд░рдкреЙрд░реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



5) рдорд╛рди рд▓реЗрдВ рдХрд┐ рдкреЛрд░реНрдЯ 3000 рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЦреБрд▓рд╛ рд╣реИред рдлрд┐рд░ targetPort рд╡реИрд▓реНрдпреВ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред



targetPort рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓реЗрдмрд▓ рдФрд░ ports / targetPort рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: track: canary spec: selector: matchLabels: any-name: my-app template: metadata: labels: # <<< any-name: my-app # <<< spec: containers: - name: cont1 image: learnk8s/app:1.0.0 ports: - containerPort: 8080 # <<< --- apiVersion: v1 kind: Service metadata: name: my-service spec: ports: - port: 80 targetPort: 8080 # <<< selector: # <<< any-name: my-app # <<< 

track: canary рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ track: canary рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ track: canary ? рдХреНрдпрд╛ рдпрд╣ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

matchLabels рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

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

рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдиреЗ рд╕рд╣реА рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ рд╣реИред рдЙрдирдХреА рдЬрд╛рдВрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдЖрдк рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреЙрдб рд▓реЗрдмрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 kubectl get pods --show-labels 

рдпрд╛, рдпрджрд┐ рдлрд▓реА рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ:

 kubectl get pods --selector any-name=my-app --show-labels 

рдЬрд╣рд╛рдБ any-name=my-app any-name: my-app рд▓реЗрдмрд▓

рдХреНрдпрд╛ рдХреЛрдИ рдореБрд╢реНрдХрд┐рд▓реЗрдВ рд╣реИрдВ?

рдЖрдк рдлрд▓реА рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, kubectl рдореЗрдВ port-forward рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 kubectl port-forward service/<service name> 3000:80 

рдпрд╣рд╛рдВ:

  • service/<service name> - рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо; рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ my-service ;
  • 3000 - рд╡рд╣ рдкреЛрд░реНрдЯ рдЬрд┐рд╕реЗ рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
  • 80 - рд╕реЗрд╡рд╛ рдХреЗ port рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ port ред

рдпрджрд┐ рдЖрдк рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реА рд╣реИрдВред

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

рд╕реЗрд╡рд╛ рдФрд░ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдХрдиреЗрдХреНрд╢рди


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

рдкреНрд░рдЧрддрд┐ рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ, рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. servicePort рдореЗрдВ рд╕реЗрд╡рд╛ рдореЗрдВ port рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  2. serviceName рдореЗрдВ name рдХрд╛ name рд╕реЗрд╡рд╛ рдореЗрдВ name рдлрд╝реАрд▓реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

1) рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реЗрд╡рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд port рдкрд░ рд╕реБрдирддреА рд╣реИ:



2) рдЗрдирдЧреНрд░реЗрдб рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ servicePort рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:



3) рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ ( servicePort ) рдХреЛ рд╣рдореЗрд╢рд╛ рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ port рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:



4) рдпрджрд┐ рдкреЛрд░реНрдЯ 80 рд╕реЗрд╡рд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рддреЛ servicePort 80 рднреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:



рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 apiVersion: v1 kind: Service metadata: name: my-service # <<< spec: ports: - port: 80 # <<< targetPort: 8080 selector: any-name: my-app --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: my-ingress spec: rules: - http: paths: - backend: serviceName: my-service # <<< servicePort: 80 # <<< path: / 

рдХреИрд╕реЗ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ Ingress рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдЖрдк kubectl port-forward рд╕рд╛рде рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ kubectl port-forward , рд▓реЗрдХрд┐рди рд╕реЗрд╡рд╛ рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ kubectl port-forward рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдкреЙрдб рдХрд╛ рдирд╛рдо рдкрддрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS kube-system coredns-5644d7b6d9-jn7cq 1/1 Running kube-system etcd-minikube 1/1 Running kube-system kube-apiserver-minikube 1/1 Running kube-system kube-controller-manager-minikube 1/1 Running kube-system kube-proxy-zvf2h 1/1 Running kube-system kube-scheduler-minikube 1/1 Running kube-system nginx-ingress-controller-6fc5bcc 1/1 Running 

рдЗрдирдЧреНрд░реЗрдб рдкреЙрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдБ (рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП describe рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:

 kubectl describe pod nginx-ingress-controller-6fc5bcc \ --namespace kube-system \ | grep Ports Ports: 80/TCP, 443/TCP, 18080/TCP 

рдЕрдВрдд рдореЗрдВ, рдлрд▓реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

 kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system 

рдЕрдм рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ 3000 рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдкреЙрдб рдХреЗ рдкреЛрд░реНрдЯ 80 рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Http: // localhost: 3000 рдкрд░ рдЬрд╛рдХрд░, рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреЗрдЬ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреЛрд░реНрдЯ рд╕рд╛рд░рд╛рдВрд╢


рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рдХрд┐рди рдкреЛрд░реНрдЯреНрд╕ рдФрд░ рд▓реЗрдмрд▓реНрд╕ рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдкреЙрдб рд▓реЗрдмрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  2. рд╕реЗрд╡рд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ targetPort рдХреЛ рдкреЙрдб рдХреЗ рдЕрдВрджрд░ containerPort рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  3. рд╕реЗрд╡рд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ port рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдкреА рдкрддреЗ рд╣реИрдВ;
  4. servicePort Ingress рдХреЛ рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ port рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  5. рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо Ingress рдореЗрдВ serviceName рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд╛рд╢, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рд╢рд╛рдпрдж рдлрд▓реА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдпрд╛ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдирд┐рд╡рд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3 рдЪрд░рдг


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

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

  1. рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдлрд▓реА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдлрд┐рд░ ...
  2. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ ...
  3. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ Ingress рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрддрд┐:

1) рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреА рд╢реБрд░реБрдЖрдд рдиреАрдЪреЗ рд╕реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреЙрдбреНрд╕ рдореЗрдВ Ready рдФрд░ Running рд╕реНрдЯреЗрдЯрд╕ рд╣реИрдВ:



2) рдпрджрд┐ рдлрд▓реА Ready , рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд╡рд╛ рдлрд▓реА рдХреЗ рдмреАрдЪ рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИ:



3) рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдФрд░ рдЗрдирдЧреНрд░реЗрдб рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



1. рдлрд▓реА рдХрд╛ рдирд┐рджрд╛рди


рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдлрд▓реА рдХреЗ рд╕рд╛рде рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд▓реА Ready рдФрд░ Running ред рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 kubectl get pods NAME READY STATUS RESTARTS AGE app1 0/1 ImagePullBackOff 0 47h app2 0/1 Error 0 47h app3-76f9fcd46b-xbv4k 1/1 Running 1 47h 

рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рдЕрдВрддрд┐рдо рдкреЙрдб рдХреЛ Running рдФрд░ Ready рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреЛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рд╣реИред

рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ?

рдлрд▓реА рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдЙрдкрдпреЛрдЧреА рдЖрджреЗрд╢ рд╣реИрдВ:

  1. kubectl logs < pod'> рдЖрдкрдХреЛ рдкреЙрдб рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рд▓реЙрдЧ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  2. kubectl describe pod < pod'> рдЖрдкрдХреЛ рдкреЙрдб рд╕реЗ рдЬреБрдбрд╝реА рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  3. kubectl get pod < pod'> рдЖрдкрдХреЛ Kubernetes рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд kubectl get pod < pod'> рдХрд╛ YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  4. kubectl exec -ti < pod'> bash рдЖрдкрдХреЛ рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдорд╛рдВрдб рд╢реЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

рдХреМрди рд╕рд╛ рдЪреБрдирдирд╛ рд╣реИ?

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЯреАрдо рдирд╣реАрдВ рд╣реИред рдЗрдирдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдо рдлрд▓реА рдХреА рд╕рдорд╕реНрдпрд╛


рдкреЙрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпрд╛рдВ:

  • ImagePullBackoff
  • ImageInspectError
  • ErrImagePull
  • ErrImageNeverPull
  • RegistryUnavailable
  • InvalidImageName

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпрд╛рдБ:

  • CrashLoopBackOff
  • RunContainerError
  • KillContainerError
  • VerifyNonRootError
  • RunInitContainerError
  • CreatePodSandboxError
  • ConfigPodSandboxError
  • KillPodSandboxError
  • SetupNetworkError
  • TeardownNetworkError

рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред

ImagePullBackOff


рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рддреАрди рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

  1. рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдЧрд▓рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдЗрд╕рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИ, рдпрд╛ рдЫрд╡рд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ;
  2. рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдирд╣реАрдВ рдЯреИрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  3. рдЫрд╡рд┐ рдХреЛ рдПрдХ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред

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

CrashLoopBackOff


рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддреЛ Kubenetes CrashLoopBackOff рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм:

  1. рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИ;
  2. рдХрдВрдЯреЗрдирд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ;
  3. рдХрдИ рдмрд╛рд░ рд▓рд╛рдИрдиреЗрд╕ рдЯреЗрд╕реНрдЯ рднреА рдлреЗрд▓ рд╣реБрдЖред

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

 kubectl logs <pod-name> --previous 

рдпрд╣ рдкрд┐рдЫрд▓реЗ рдХрдВрдЯреЗрдирд░ рдкреБрдирд░реНрдЬрдиреНрдо рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

RunContainerError


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

  • рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж рд╡реЙрд▓реНрдпреВрдо, рдЬреИрд╕реЗ рдХрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдпрд╛ рд░рд╣рд╕реНрдп рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛;
  • рдкрдврд╝рдиреЗ-рд▓рд┐рдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред

kubectl describe pod <pod-name> рдХрдорд╛рдВрдб рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред

рдкреЙрдбреНрд╕ рд▓рдВрдмрд┐рдд


рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдлрд▓реА рд▓рдВрдмрд╡рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рддреА рд╣реИред

рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдпрд╣рд╛рдБ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд╕реВрдЪрдХ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ):

  1. рдлрд▓реА рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдФрд░ рдореЗрдореЛрд░реА рдЬреИрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
  2. ResourceQuota рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреЙрдб рдмрдирд╛рдиреЗ рд╕реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛрдЯрд╛ рд╕реЗ рдкрд░реЗ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
  3. рдкреЛрдб рд▓рдВрдмрд┐рдд PersistentVolumeClaim рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, kubectl describe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд╛рдВрдб рдХрд╛ kubectl describe рдФрд░ Events рдЕрдиреБрднрд╛рдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 kubectl describe pod <pod name> 

рд░рд┐рд╕реЛрд░реНрд╕рдХреНрд╡рд╛рдЯреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ

 kubectl get events --sort-by=.metadata.creationTimestamp 

рдлрд▓реА рддреИрдпрд╛рд░ рдирд╣реАрдВ


рдпрджрд┐ рдлрд▓реА рдХреЛ Running рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Ready рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдЕрд╕рдлрд▓ рд╣реИред

рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдлрд▓реА рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рддрддреНрдкрд░рддрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ kubectl describe рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ Events рдЕрдиреБрднрд╛рдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

2. рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рджрд╛рди


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

рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЙрдирдХреЗ рд▓реЗрдмрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреЙрдбреНрд╕ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд┐рддрдиреЗ рдкреЙрдб рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реЗрд╡рд╛ рдореЗрдВ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 kubectl describe service <service-name> | grep Endpoints 

рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдлреЙрд░реНрдо рдХреЗ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ <IP-:> , рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдРрд╕реА рдЬреЛрдбрд╝реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрд░реНрдерд╛рдд, рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреЙрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

рдпрджрд┐ Endpoins рдЕрдиреБрднрд╛рдЧ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ:

  1. рд╕рд╣реА рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреЙрдбреНрд╕ рдирд╣реАрдВ рд╣реИрдВ (рд╕рдВрдХреЗрдд: рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдирд╛рдо рд╕реНрдерд╛рди рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ);
  2. рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ рд╕реЗрд╡рд╛ рд▓реЗрдмрд▓ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИред

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

рд╕реЗрд╡рд╛ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рд╕реЗрд╡рд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kubectl port-forward рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 kubectl port-forward service/<service-name> 3000:80 

рдпрд╣рд╛рдВ:

  • <service-name> - рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо;
  • 3000 - рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдкреЛрд░реНрдЯ;
  • 80 - рд╕реЗрд╡рд╛ рдкрдХреНрд╖ рдкрд░ рдкреЛрд░реНрдЯред

3. рдЗрдирдЧреНрд░реЗрд╕ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕


рдпрджрд┐ рдЖрдк рдЗрд╕ рдЬрдЧрд╣ рддрдХ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ:

  • рдкреЙрдбреНрд╕ рдХреЛ Running рдФрд░ Ready рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЕрднреА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ "рдирд╣реАрдВ рдкрд╣реБрдВрдЪ" рд╕рдХрддреЗ рд╣реИрдВред

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

рд▓реЗрдХрд┐рди рдЗрдирдЧреНрд░реЗрдб рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдмрд╣реБрдд рд╕рд░рд▓ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред serviceName рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП serviceName рдФрд░ servicePort рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЖрдкрдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 kubectl describe ingress <ingress-name> 

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

  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдкрд╣реБрдВрдЪ рд╕реЗрдЯрд┐рдВрдЧреНрд╕;
  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

рдЖрдк рд╕реАрдзреЗ Ingress рдкреЙрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдкреЙрдб рдвреВрдВрдвреЗрдВ (рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ):

 kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS kube-system coredns-5644d7b6d9-jn7cq 1/1 Running kube-system etcd-minikube 1/1 Running kube-system kube-apiserver-minikube 1/1 Running kube-system kube-controller-manager-minikube 1/1 Running kube-system kube-proxy-zvf2h 1/1 Running kube-system kube-scheduler-minikube 1/1 Running kube-system nginx-ingress-controller-6fc5bcc 1/1 Running 

рдкреЛрд░реНрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП describe рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 kubectl describe pod nginx-ingress-controller-6fc5bcc --namespace kube-system \ | grep Ports 

рдЕрдВрдд рдореЗрдВ, рдлрд▓реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

 kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system 

рдЕрдм рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреЛрд░реНрдЯ 3000 рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ 80 рдкреЙрдб рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

  • рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╣реИред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЗрдирдЧреНрд░реЗрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рд╣реИред

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

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

рдбрд┐рдмрдЧрд┐рдВрдЧ рдПрдХ Ingin Nginx рдирд┐рдпрдВрддреНрд░рдХ



Ingress-nginx рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ kubectl рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд▓рдЧрдЗрди рд╣реИ ред kubectl ingress-nginx рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рд▓реЙрдЧ, рдмреИрдХрдПрдВрдб, рдкреНрд░рдорд╛рдг рдкрддреНрд░, рдЖрджрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг;
  • рдХрд╛рдВрдЧреНрд░реЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдз;
  • рд╡рд░реНрддрдорд╛рди рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЕрдзреНрдпрдпрдиред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рдЯреАрдореЗрдВ рдЗрд╕рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреА:

  • kubectl ingress-nginx lint nginx.conf - рдЪреЗрдХ nginx.conf ;
  • kubectl ingress-nginx backend - kubectl ingress-nginx backend рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ ( kubectl describe ingress <ingress-name> рд╕рдорд╛рди рд╣реИ kubectl describe ingress <ingress-name> );
  • kubectl ingress-nginx logs - рдЪреЗрдХ рд▓реЙрдЧред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ --namespace <name> flag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ --namespace <name> рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдиреЗрдорд╕реНрдкреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢


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

  • рдирд┐рд╖реНрдХреНрд░рд┐рдп рдиреМрдХрд░рд┐рдпрд╛рдВ рдФрд░ рдХреНрд░реЛрдирдЬреЙрдмреНрд╕;
  • рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рдФрд░ рдбреЗрдордирд╕реЗрдЯреНрд╕ред

рдмрд╣реБрдореВрд▓реНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП рдЧреЗрд░реНрдЧрд▓реА рд░рд┐рд╕реНрдХреЛ , рдбреИрдирд┐рдпрд▓ рд╡реАрдмреЗрд▓ рдФрд░ рдЪрд╛рд░реНрд▓реНрд╕ рдХреНрд░рд┐рд╕реНрдЯрд┐рдпрд░рд╛рдЬ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

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


All Articles