рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдпрд╣ рдЖрд▓реЗрдЦ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
рдЯреАрдПрд▓;рдбреАрдЖрд░: рдпрд╣рд╛рдВ рдПрдХ рдЖрд░реЗрдЦ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рддреИрдирд╛рддреА рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:
рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯред рдореВрд▓ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдорддреМрд░ рдкрд░ рддреАрди рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
- рддреИрдирд╛рддреА - рдпрд╣ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдиреБрд╕реНрдЦрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреЙрдбреНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рд╕рд░реНрд╡рд┐рд╕ - рдЖрдВрддрд░рд┐рдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдЬреЛ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ;
- рдкреНрд░рд╡реЗрд╢ - рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рд╕реЗрд╡рд╛ рддрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдЧрд╛ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдгред
рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
- рдХреНрдпрд╛ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЙрдирдореЗрдВ рдЯрдХрд░рд╛рд╡ рди рд╣реЛ?
- рдХреНрдпрд╛ рд▓реЗрдмрд▓ рдирд╛рдо рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ рдПрдХ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рддреАрди рдШрдЯрдХ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЖрдЗрдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕реЗрд╡рд╛ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз
рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕реЗрд╡рд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕реАрдзреЗ рдкреЙрдбреНрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреЙрдбреНрд╕ рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рддреАрди рдмрд╛рддреЗрдВ:
- рдЪрдпрдирдХрд░реНрддрд╛ (
selector
) рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреЙрдб рд▓реЗрдмрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред -
targetPort
рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПcontainerPort
рдкреЙрдб рдХреЗ рдЕрдВрджрд░ рдХрдВрдЯреЗрдирд░ред -
port
рд╕реЗрд╡рд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ. рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдБ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдкреА рдкрддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рдЖрд▓реЗрдЦреАрдп рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:
1) рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╕реЗрд╡рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреЙрдб рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИ:
2) рдкреЙрдб рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ containerPort
рдкреЙрдбреНрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП:
3) рд╕реЗрд╡рд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ port
╨╕ targetPort
. рд▓реЗрдХрд┐рди рдХрдВрдЯреЗрдирд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
4)рд╡рд╛рдпрд╛ targetPort
. рдпрд╣ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП containerPort
.
5) рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреЛрд░реНрдЯ 3000 рдЦреБрд▓рд╛ рд╣реИред рдлрд┐рд░ рдорд╛рди targetPort
рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП.
YAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓реЗрдмрд▓ рдФрд░ 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
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░? рдХреНрдпрд╛ рдпрд╣ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рд▓реЗрдмрд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреЛрдИ рднрд┐рдиреНрди рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? matchLabels
?
рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдкреЙрдб рдХреЗ рд▓реЗрдмрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рджреНрд╡рд╛рд░рд╛ рдкреЙрдбреНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд╕рд╣реА рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ рд╣реИред рдЙрдирдХреА рдЬрд╛рдВрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рд╕реЗ рдкреЙрдб рд▓реЗрдмрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl get pods --show-labels
рдпрд╛, рдпрджрд┐ рдкреЙрдбреНрд╕ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ:
kubectl get pods --selector any-name=my-app --show-labels
рдЬрд╣рд╛рдБ any-name=my-app
рдПрдХ рд▓реЗрдмрд▓ рд╣реИ any-name: my-app
.
рдХреНрдпрд╛ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдмрд╛рдХреА рд╣реИ?
рдЖрдк рдкреЙрдб рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ port-forward
Kubectl рдореЗрдВ. рдпрд╣ рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
kubectl port-forward service/<service name> 3000:80
╨Ч╨┤╨╡╤Б╤М:
-
service/<service name>
- рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо; рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣реИmy-service
; - 3000 рд╡рд╣ рдкреЛрд░реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
- 80 - рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ
port
рд╕реЗрд╡рд╛ред
рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╣реА рд╣реИрдВред
рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЗрдмрд▓ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдкреЛрд░реНрдЯ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред
рд╕реЗрд╡рд╛ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдЕрдЧрд▓рд╛ рдЪрд░рдг рдЗрдирдЧреНрд░реЗрд╕ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЗрдВрдЧреНрд░реЗрд╕ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдвреВрдВрдвреА рдЬрд╛рдП, рдлрд┐рд░ рдкреЙрдб рдХреИрд╕реЗ рдвреВрдВрдвреЗрдВ рдФрд░ рдЙрди рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВред рдЗрдирдЧреНрд░реЗрд╕ рдирд╛рдо рдФрд░ рдЦреБрд▓реЗ рдкреЛрд░реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛ рдвреВрдВрдврддрд╛ рд╣реИред
рдЗрдирдЧреНрд░реЗрд╕ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрд▓ рдЦрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП:
-
servicePort
Ingress рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПport
рд╕реЗрд╡рд╛ рдореЗрдВ; -
serviceName
рдЗрдирдЧреНрд░реЗрд╕ рдХреЛ рдлрд╝реАрд▓реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП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: /
рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЗрдирдЧреНрд░реЗрд╕ рдЪрд▓ рд░рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВ?
рдЖрдк рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ 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 рдкрд░ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░ рдЬрд╛рдХрд░
рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢
рдЖрдЗрдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреЛрд░реНрдЯ рдФрд░ рд▓реЗрдмрд▓ рдореЗрд▓ рдЦрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП:
- рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдкреЙрдб рдХреЗ рд▓реЗрдмрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
-
targetPort
рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПcontainerPort
рдлрд▓реА рдХреЗ рдЕрдВрджрд░ рдХрдВрдЯреЗрдирд░; -
port
рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдБ рдПрдХ рд╣реА рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдИрдкреА рдкрддреЗ рд╣реИрдВ; -
servicePort
рдкреНрд░рд╡реЗрд╢ рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПport
рд╕реЗрд╡рд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ; - рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
serviceName
рдкреНрд░рд╡реЗрд╢ рдореЗрдВ.
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЬрд╛рдирдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ?
рдкреЙрдб рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ.
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП 3 рдЪрд░рдг
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЕрдкрдиреА рддреИрдирд╛рддреА рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЪреВрдБрдХрд┐ K8s рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рддреАрди рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдиреАрдЪреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдореЗрдВ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреЙрдбреНрд╕ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд┐рд░...
- рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдХреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░...
- рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрдирдЧреНрд░реЗрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
1) рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдмрд┐рд▓реНрдХреБрд▓ рдиреАрдЪреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреЙрдбреНрд╕ рдореЗрдВ рд╕реНрдЯреЗрдЯрд╕ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ Ready
╨╕ Running
:
2) рдпрджрд┐ рдлрд▓рд┐рдпрд╛рдБ рддреИрдпрд╛рд░ рд╣реИрдВ (Ready
), рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИ:
3) рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдФрд░ рдЗрдирдЧреНрд░реЗрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
1. рдлрд▓реА рдХрд╛ рдирд┐рджрд╛рди
╨Т ╨▒╨╛╨╗╤М╤И╨╕╨╜╤Б╤В╨▓╨╡ ╤Б╨╗╤Г╤З╨░╨╡╨▓ ╨┐╤А╨╛╨▒╨╗╨╡╨╝╨░ ╤Б╨▓╤П╨╖╨░╨╜╨░ ╤Б podтАЩ╨╛╨╝. ╨г╨▒╨╡╨┤╨╕╤В╨╡╤Б╤М, ╤З╤В╨╛ podтАЩ╤Л ╨╖╨╜╨░╤З╨░╤В╤Б╤П ╨║╨░╨║ 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
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдиреНрдп рджреЛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ?
рдкреЙрдбреНрд╕ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб рд╣реИрдВ:
-
kubectl logs <╨╕╨╝╤П pod'╨░>
рдЖрдкрдХреЛ рдкреЙрдб рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рд▓реЙрдЧ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; -
kubectl describe pod <╨╕╨╝╤П pod'╨░>
рдЖрдкрдХреЛ рдкреЙрдб рд╕реЗ рдЬреБрдбрд╝реА рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; -
kubectl get pod <╨╕╨╝╤П pod'╨░>
рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреЙрдб рдХрд╛ YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; -
kubectl exec -ti <╨╕╨╝╤П pod'╨░> bash
рдЖрдкрдХреЛ рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдорд╛рдВрдб рд╢реЗрд▓ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЖрдкрдХреЛ рдХрд┐рд╕реЗ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕рдЪ рддреЛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЖрджреЗрд╢ рдирд╣реАрдВ рд╣реИред рдЗрдирдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЙрдб рд╕рдорд╕реНрдпрд╛рдПрдБ
рдкреЙрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдФрд░ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпрд╛рдБред
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпрд╛рдБ:
-
ImagePullBackoff
-
ImageInspectError
-
ErrImagePull
-
ErrImageNeverPull
-
RegistryUnavailable
-
InvalidImageName
рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐рдпрд╛рдБ:
-
CrashLoopBackOff
-
RunContainerError
-
KillContainerError
-
VerifyNonRootError
-
RunInitContainerError
-
CreatePodSandboxError
-
ConfigPodSandboxError
-
KillPodSandboxError
-
SetupNetworkError
-
TeardownNetworkError
рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЗрдореЗрдЬрдкреБрд▓рдмреИрдХрдСрдлрд╝
рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рддреАрди рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдЧрд▓рдд рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЧрд▓рддреА рдХреА рд╣реИ, рдпрд╛ рдЫрд╡рд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ;
- рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж рдЯреИрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- рдЫрд╡рд┐ рдПрдХ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
рдкрд╣рд▓реЗ рджреЛ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдЦрд╝рддреНрдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдмрд╕ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдФрд░ рдЯреИрдЧ рд╕рд╣реА рдХрд░реЗрдВред рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реАрдХреНрд░реЗрдЯ рдореЗрдВ рдмрдВрдж рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреЙрдбреНрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ
рдХреНрд░реИрд╢ рд▓реВрдк рдмреИрдХ рдСрдл
рдХреНрдпреВрдмрдиреЗрдЯреНрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ CrashLoopBackOff
, рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдРрд╕рд╛ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм:
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ;
- рдХрдВрдЯреЗрдирд░
рдЧрд╝рд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ ; - рд▓рд╛рдЗрд╡рдиреЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХрдИ рдмрд╛рд░ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рд╕реЗ рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд▓реЙрдЧ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl logs <pod-name> --previous
рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЕрд╡рддрд╛рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
RunContainerError
рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдХрдВрдЯреЗрдирд░ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдХреНрд╖рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЧрд▓рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк рдпрд╛ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдЬреИрд╕реЗ рдЧреИрд░-рдореМрдЬреВрдж рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕;
- рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдкрдврд╝рдиреЗ-рд▓рд┐рдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред
рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреАрдо рдЙрдкрдпреБрдХреНрдд рд╣реИ kubectl describe pod <pod-name>
.
рдкреЙрдбреНрд╕ рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ
рдПрдХ рдмрд╛рд░ рдмрди рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдкреЙрдб рдЙрд╕реА рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ Pending
.
рдпрд╣ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдпрд╣рд╛рдВ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рд╣реИрдВ (рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓рд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ):
- рдкреЙрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рд╡рд░ рдФрд░ рдореЗрдореЛрд░реА рдЬреИрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВред
- рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрдкрдпреБрдХреНрдд рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ
ResourceQuota
рдФрд░ рдкреЙрдб рдмрдирд╛рдиреЗ рд╕реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛрдЯрд╛ рд╕реЗ рдЖрдЧреЗ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред - рдкреЙрдб рдкреЗрдВрдбрд┐рдВрдЧ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИ
PersistentVolumeClaim
.
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ kubectl describe
рдФрд░ рдЕрдиреБрднрд╛рдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ Events
:
kubectl describe pod <pod name>
рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ ResourceQuotas
, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ
kubectl get events --sort-by=.metadata.creationTimestamp
рдлрд▓рд┐рдпрд╛рдБ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ
рдпрджрд┐ рдкреЙрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ Running
, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ Ready
, рдХрд╛ рдЕрд░реНрде рд╣реИ рдЗрд╕рдХреА рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ (рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ) рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ.
рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреЙрдб рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдХреЛрдИ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рддрддреНрдкрд░рддрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ Events
рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ kubectl describe
.
2. рд╕реЗрд╡рд╛ рдирд┐рджрд╛рди
рдпрджрд┐ рдкреЙрдбреНрд╕ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ Running
╨╕ Ready
, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдУрд░ рд╕реЗ рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдЖрдИ рд╣реИ, рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рд╕реЗрд╡рд╛рдПрдБ рдЕрдкрдиреЗ рд▓реЗрдмрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреЙрдбреНрд╕ рддрдХ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд┐рддрдиреЗ рдкреЙрдб рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реЗрд╡рд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl describe service <service-name> | grep Endpoints
рдПрдВрдбрдкреЙрдЗрдВрдЯ рдлреЙрд░реНрдо рдХреЗ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ <IP-╨░╨┤╤А╨╡╤Б:╨┐╨╛╤А╤В>
, рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдРрд╕реА рдЬреЛрдбрд╝реА рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдЕрд░реНрдерд╛рдд, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреЙрдб рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдпрджрд┐ рдЕрдиреБрднрд╛рдЧ Endpoins
рдЦрд╛рд▓реА, рджреЛ рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ:
- рд╕рд╣реА рд▓реЗрдмрд▓ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдкреЙрдб рдирд╣реАрдВ рд╣реИ (рд╕рдВрдХреЗрдд: рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ);
- рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ рд╕реЗрд╡рд╛ рд▓реЗрдмрд▓ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ.
рдпрджрд┐ рдЖрдк рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкрд░рд╛рдзреА рдПрдХ рдмрдЧ рд╣реИ targetPort
рд╕реЗрд╡рд╛ рд╡рд┐рд╡рд░рдг рдореЗрдВ.
рд╕реЗрд╡рд╛ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рд╕реЗрд╡рд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ kubectl port-forward
рдЗрд╕рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:
kubectl port-forward service/<service-name> 3000:80
╨Ч╨┤╨╡╤Б╤М:
-
<service-name>
- рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо; - 3000 рд╡рд╣ рдкреЛрд░реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ;
- 80 - рд╕реЗрд╡рд╛ рдкрдХреНрд╖ рдкрд░ рдмрдВрджрд░рдЧрд╛рд╣ред
3. рдкреНрд░рд╡реЗрд╢ рдирд┐рджрд╛рди
рдпрджрд┐ рдЖрдкрдиреЗ рдпрд╣ рдЕрдм рддрдХ рдкрдврд╝рд╛ рд╣реИ, рддреЛ:
- рдкреЙрдбреНрд╕ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
Running
╨╕Ready
; - рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЕрднреА рднреА рдРрдк рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдВрднрд╡рддрдГ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдШрдЯрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрдирдЧреНрд░реЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЖрдк рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╡реЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ serviceName
╨╕ servicePort
рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП. рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl describe ingress <ingress-name>
рдпрджрд┐ рд╕реНрддрдВрдн Backend
рдЦрд╛рд▓реА, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреНрд░реБрдЯрд┐ рдХреА рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрджрд┐ рдмреИрдХрдПрдВрдб рдЬрдЧрд╣ рдкрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрднреА рднреА рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ:
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдкрд╣реБрдВрдЪ рд╕реЗрдЯрд┐рдВрдЧреНрд╕;
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
рдЖрдк рдЗрдирдЧреНрд░реЗрд╕ рдкреЙрдб рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝рдХрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреЙрдб рдвреВрдВрдвреЗрдВ (рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ):
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 рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреНрдпрд╛ рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
- рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд▓реЗрдХрд░ рд╣реИ. рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рддрдХ рдХреИрд╕реЗ рд░реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЗрдирдЧреНрд░реЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдХрд╛рдо рдкрд░ рдирд╣реАрдВ рд▓рд╛ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрдирдЧреНрд░реЗрд╕ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреА рдХрдИ рдХрд┐рд╕реНрдореЗрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ Nginx, HAProxy, рдЯреНрд░реИрдлрд╝рд┐рдХ рдЖрджрд┐ред (рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ
рдЗрдирдЧреНрд░реЗрд╕ Nginx рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛
Ingress-nginx рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХрд╛рд░реА рд╣реИ kubectl ingress-nginx
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд▓реЙрдЧ, рдмреИрдХрдПрдВрдб, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрджрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг;
- рдкреНрд░рд╡реЗрд╢ рд╕реЗ рд╕рдВрдмрдВрдз;
- рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рдЖрджреЗрд╢ рдЗрд╕рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдВрдЧреЗ:
-
kubectl ingress-nginx lint
- рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИnginx.conf
; -
kubectl ingress-nginx backend
- рдмреИрдХрдПрдВрдб рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕реА рддрд░рд╣)редkubectl describe ingress <ingress-name>
); -
kubectl ingress-nginx logs
- рд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдиреЗрдорд╕реНрдкреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ --namespace <name>
.
рд╕рд╛рд░рд╛рдВрд╢
рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рддреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП: рдкреЙрдбреНрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗрд╡рд╛ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдХреА рдУрд░ рдмрдврд╝реЗрдВред рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
- рдирд┐рд╖реНрдХреНрд░рд┐рдп рдиреМрдХрд░рд┐рдпрд╛рдБ рдФрд░ рдХреНрд░реЛрдирдЬреЙрдмреНрд╕;
- рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рдФрд░ рдбреЗрдордирд╕реЗрдЯреНрд╕ред
рдореИрдВ рдЕрдкрдирд╛ рдЖрднрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реВрдВ
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- ┬л
Kubernetes рдкреЙрдбреНрд╕ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП kubectl-debug рдкреНрд▓рдЧрдЗрди "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди] "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг "; - ┬л
рд╣рдорд╛рд░реЗ рдПрд╕рдЖрд░рдИ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рд╕реЗ 6 рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╣рд╛рдирд┐рдпрд╛рдБ '.
рд╕реНрд░реЛрдд: www.habr.com