α αααΆαα ααααααα αα·αααααααΆααα»αααααΈ Zalando ααα Henning Jacobs ααΆαααααααααΆααααΎααααα αΆααΆα αααΎααααααα»αα ααααα’αααααααΎααααΆαα Kubernetes αααα»αααΆααααααΉαα’αααΈαααααααααααΆααααΎαα’αααααααΆαααααααΎα (αα·αααΆαααααααααα½α) αα·αααΆαααααΎααααΆααααααΉαααααΌααααααα½αααα α ααα»ααΌα ααααα αΎα ααΆααααΆααααααΌααααα·αααααααΆαααα αααα»ααααααααααΆααααΆααααααΆαα»ααααα ααααα ααΈαααα»αααΉαααααΆαααΆααααααα½αααα―αααΆα K8s α
ααΆααα·αα·ααααα»αααΆα αααααααΌαααΆαααααααΆαααα
αααα»α Kubernetes ααΆ ααΆααααΎαα’αααααααΈαα·α (α§. αααααααα "ααΆαααααΎαααααααααααΆααααααα" - αααα ααααααααα ), α’αΆα
βααΆαβαααααβααααΆααβααααΆααβααΆααβα αααα»αααΌαααααΆαα±αααααααΆααα½αααΆααααα·αααΎα’αΆα
ααααΎαα
ααΆαα ααααΈααΎαααααααα½ααααααΊαα
αααααααα½ααααα·αααΆα
αΆαααΆα
α α αΎαα’αααααΉαα
αααΆααα’αααΈααΆαααΆααααΆαα αα·ααααα·ααΆαααααΆαααααΎααααΆααααααααΆα ααΆαααααα»αααααααΆααααααΉααα·ααΆαα’αααΈααΆααα·αα·αααααΎαααΆαααααααΎα αα·αααΆαααααααααα½α α αΎαααΉαααααΆααα’αααααααααα
αααα»αααααΈααΆ ααΆααααααααΆ α αΎαα’ααααα·ααα½αααααΎααΆααα
αα αααα·ααααααααα»α Sandor ααααΈααααααΆαα ααααααααα ααΎ Twitter ααΌαααα α»αααΌαα αααα»ααααααΆααααΆααα½αααααα αα½αααΆαααααα αΆααΆααααααΉαααΆαααααΎααααΆααααΆααααΎαα’αααααααΆαααααααααα½α/αααααΆαααΆαααΈαα·αα
ααααααα
ααΆαααααααααα·αααααΉαααααΌα livenessProbe
α’αΆα
ααααΎα±ααααααΆαααΆααααα»αααααα»ααααααααΆααααααααααααα (ααΆααα·αααΆαααααα·α + αα»ααααα»α / αααααααΆα
αΆααααααΎααααααα·ααΈααΌααααααΆααααααΆαα»αα) αα·αααΆααα
αααααα·ααΆαα’αα·αααααΆαααααααααααΌα
ααΆααΆαααααΆααα
α»αααααΆαα’αΆαααααα (ααΌαβααΎαβααβααα
ααΆαααΌαα "αα»αααααΎααΆααααΎαα’αααααααα" αααα»αααααΈαααααΆαα·αα’αΆα αα½αα’αααΈααΆαα αααΎααα ααΌα ααααααΌααααα‘ααααΎαααΆααΎααΆαααααααααααα αα·αααΆααααα½ααα·αα·αααααΈαα·αααΊαααααΆααα’αααΈααααα
α αααΆαα ααΆαααααΎαααααααΆααααααααΆαα αααΎαααααΌαααΆααααα αΌααααα»αα―αααΆαα’αααα’αα·ααααααααΆααααα»ααααα Zalando α
ααΆααααα½ααα·αα·αααααΆαααααααααα½α αα·αααΆαααααα
Kubernetes αααααααΌαααααααΆαααααΆααααΈααααα α
ααΆ
Kubernetes ααααΎ ααΆααααΎαα’αααααααΆαααααααααα½αααΎααααΈαααααΈαααααααα»αααΊααααα½α ααΆααααΎααααΈααα½αααα ααΆα αααα ααααααΌαααΆαα αΆαααα»αααΆαα½α ααΆαααααααΆααααΆαααααΎααααΆαα ααααα·αααΎαα»αααΆααα’ααααααααΆαα½α ααΆααα ααΆαααααΎααααΆαααα½αααααααααΆααααααΊααΎααααΈααααααααα pods ααΆαααααααΌαααΆαααααΎααΆ backend αααααΆααααααΆαααα Kubernetes (αα·αααΆαα·ααα Ingress) α
ααΆααααΎαα’αααααααΆαααααααΎα αα½α Kubernetes ααααα ααααααααΆααααααααααΌαα αΆααααααΎααα»αααΊαααα‘αΎααα·αα ααΆα§ααΆα ααα ααΆααααα½ααα·αα·αααααααααα’αα»ααααΆαα±ααα’αααααααΆααα αΆααααΆαααΆααααΆαααα αααααααααααα·ααΈαα½αααΆααααΆαααα αααααααααα½αα ααΆαα αΆααααααΎααα»αααΊαααα‘αΎααα·ααααα»αααααΆαααΆαααααα½αα±αααααααα·ααΈαα·αααααΎαααΆα αααααΈααΆααΆαααα α»αααααα ααα»ααααααΆααα’αΆα ααΆααα ααααΆααααΆαααααΆαααααααααΆαα (ααΌαααΎαααΆαααααα)α
ααααα·αααΎα’αααααααΆααΆαααΆαααααααΆαααΆαα’αΆααααααααααα·ααΈααααααΆααααααα»αααΆααααα½ααα·αα·αααααΆαααααααΎα/ααΆαααααααααα½α ααΆαααΆααα±ααααααΎαααΆαααααααΆααΉαααααΌαααΆααααΆαα αααααΆα Kubernetes αααα
αΆαααααΆαααΆα Ready
ααΈααααΆααααΆααα’ααα
α§ααΆα ααα:
αααααΊααΆα§ααΆα αααααααΆααααΎαα’αααααααΆαααααααααα½αααΎααααΈαα·αα·αααααΎαααααΌααα½αα /health
ααΆαααα HTTP ααΆαα½αααΉαααΆααααααααααΆαααΎα (α
αααααααα: 10 αα·ααΆααΈ, α’ααβααα: 1 αα·ααΆααΈ, ααααα·ααααααα: 1, ααααα·αααααΆααααΆααα: 3):
# ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ deployment'Π°/ΡΡΠ΅ΠΊΠ°
podTemplate:
spec:
containers:
- name: my-container
# ...
readinessProbe:
httpGet:
path: /health
port: 8080
α’αα»ααΆααα
- αααααΆααααααΆααΈααααΌαααααΆαα ααα»α αααα αα HTTP (REST ααα) ααααααααααααΆααααΎαα’αααααααΆαααααααααα½αααααα·αα·αααααΎαααΆααΎαααααα·ααΈ (pod) αα½α ααΆααααΎααααΈααα½αααα ααΆα αααα¬α’ααα
- ααααΌαααααΆααααΆααΆααααΎαα’αααααααΆαααααααααα½α ααααααααααααΆαα’αΆα
ααααΆαααα
ααααααΆαααΈαααααα ααααααα·αααααΆαα:
- ααΆαααααΎααααΆααα
ααααααααΆαααααααααααααααΆα α α
ααΆ "α’αααααααααααα" α¬ "ααΆαααααααααα" (α§ααΆα ααα 9090) αααααΆαα
readinessProbe
ααααΌαααααΆααααΆα ααα»α αααα ααααΉααααα‘ααααααααααα ααααα·αααΎα ααα HTTP α αααα (ααΌα ααΆ 8080) αα½α ααΆααααΎααααΈααα½αααα ααΆα ααα*;* αααα»αααΉαααΈααααΈαααΆαα αα ααΆαααα½ααα Zalando αααααΏαααααα·αααΆαααΎαα‘αΎα αααααΊα§α
readinessProbe
αααα»αααΆααα·αα·αααα ααα "ααΆαααααααααα" ααα»αααααααΆαααΈααααααα½αα―ααα·αα αΆααααααΎαααααΎαααΆααα αααααΆααααα αΆαααα»αααΆααααα»αααααΆαααααααΆααα - ααΆαααααΆααααΆααααΎαα’αααααααΆαααααααααα½ααα α αααααΆα ααααα‘ααα’αΆα ααΆαα±ααααΆααα·ααααααΆααΆααααα»αααΎααααααααα ααΎα αααααααΆααααΉααα·αααααΌαααΆααααα»ααααα αΆαααα αααα»αααΆααα·αα·ααααα»αααΆα (αααααΊααΆααααα»ααααααααα‘αΆααα ααΎαααΆαααΈααααααα αΎα ααα»ααααααΆααα·αα·ααααα»αααΆααα αααααα αΆαααΆα’αααΈαααΆααα’αααα·αα’αΈαα )
- ααΆαααααΎααααΆααα
ααααααααΆαααααααααααααααΆα α α
ααΆ "α’αααααααααααα" α¬ "ααΆαααααααααα" (α§ααΆα ααα 9090) αααααΆαα
- ααααΎβα±ααβααααΆααβααΆ ααΆααααΎαα’αααααααΆαααααααααα½αα’αα»ααααΆαα±ααα
αΆααααααΎα/ααΆαααααααα·ααααααααΌαααααΆααα·αααααα;
- αααααααΆαααΆααααα½ααααα»αααΎααααΈαααααα
ααΆααααααΊααΆαααααααΆαααΈααα HTTP αααααΆααααΈααΆαα
αΆααααααΎαααΆααααα
αα (α§ααΆα ααα ααΆαααααααα·ααααααααΈ
ααααΌαα ααα αΎα αβαα); αααααΊαααα½αα±ααααΆαααααΆααααααΌαααααΆαααΆααα·αα·ααααα»αααΆα ααΌααα»αα αΆααααααΎααααΆαααΈαααααα ααααα αα αΌααααααΆαααααααα·ααααααααααΌαααΆααααα αα*α* α’αααααα’αΆα ααααΎαααΆαααΆααααααααΌαααααΆααα·ααααααααΈ init containers αα ααΆααααα pod αααααα αααα»ααα ααααΆα’αααααΆαααααααααα·ααΈαααααΆααααα»αααααααα½αα―α αααααΊα’αααααααα αααα»ααα»ααααααα·ααΈααΉαααΈααααααΆαααααΌαααααΆααα·αααααααα αααα»αααααΆαααΆααααα ααααΆααααααααΆαααΆααααααααααα½αααΈααΆααααα α
- αααααααΆαααΆααααα½ααααα»αααΎααααΈαααααα
ααΆααααααΊααΆαααααααΆαααΈααα HTTP αααααΆααααΈααΆαα
αΆααααααΎαααΆααααα
αα (α§ααΆα ααα ααΆαααααααα·ααααααααΈ
- ααααΎ
httpGet
αααααΆααααΆααααα½ααα·αα·αααααΆαααααααααα½αααΆααααα ααα»α αααα ααααΆααα·αα·ααααα»αααΆαααααααΆ (α§ααΆα ααα/health
). - ααααααααααΈαααΆαααΆαααααααα·αα·αααααααΆαααΎα (
interval: 10s
,timeout: 1s
,successThreshold: 1
,failureThreshold: 3
):- αααααΎαααααΆαααΎαααΆααααααΆ pod ααΉαααααΆαααΆ αα·αααΆααβαα½α ααΆαα αααααΆααααΈαααα αα 30 αα·ααΆααΈ (ααΆααααα½ααα·αα·αααα’ααΆααααα·αααΆααααααα α ααα½α 3) α
- ααααΎα
αααααΆα
ααααα‘αααααααΆαα "α’αααααααααααα" α¬ "ααΆαααααααααα" ααααα·αααΎααααα
αα
αααα·ααααΆ (α§. Java/Spring) α’αα»ααααΆαα±ααααΆαααααααΆαααααααααααα»αααΆα αα·αααααααααΈα
ααΆα
αααααααααΆα
- ααα»αααααα»αααααα α ααα»α 2 α
- ααααα·αααΎα
αΆαααΆα
α ααΆααααΎαα’αααααααΆαααααααααα½αα’αΆα
ααααΌαααΆαααααΎααΎααααΈαααα
α‘αΎα/αααα»αααααΆαααααααΆαα α αΎααααα‘αααααααΌαααααΆαααΆα 503 αα αΌαααααα»αααΊααααααα
α‘αΎαα
- αααα»αααααΌαααααΆαα±ααα’αααα’αΆαααΆααααα½ααα·αα·αααααααΈα
startupProbe
,ααΆααααα αΆααααα½ααα αααα»ααααα 1.16 (ααΎαααΆααααααα’αααΈααΆααΆααΆααΆαα»ααααΈαα ααΈααα - αααα αα ααααααα ).
- αααα»αααααΌαααααΆαα±ααα’αααα’αΆαααΆααααα½ααα·αα·αααααααΈα
ααΆααααΏα
- αα»αααΉαααα’ααααΎααΆαα’αΆαααααααΆααααα
(ααΌα
ααΆααααΆαααα·αααααα) αα
αααααααΎαααΆαααΆαααααΎαααααααααααααα½α/ααΆαααααα
- αααα’αΆα
ααΆαα±ααααΆαααΆααααΆαααααΆαααααααααΆααα
- ααΆα§ααΆα ααα α αΌαααΎαααααααΆ REST αααααααααΆα 10 pods α’αΆαααααααΎααΌαααααΆααα·αααααα Postgres αα½αα αα ααααααααΆααααα½ααα·αα·αααα’αΆαααααααΎααΆαααααΆααααααΎαααΆααα DB ααα pods ααΆαα 10 α’αΆα ααΉααααΆαααααααα·αααΎααΆαααΆααααααΆααααα ααΎαααααΆα/DB - ααΆααααααΆααΆ α α»ααααα ααααΆααα’ααα’αΆαααααααΆαααΆα’αΆα αα αα½α ;
- ααΌαα
αααΆαααΆ Spring Data αα·αα·αααααΎαααΆαααααΆααααΌαααααΆααα·ααααααααΆαααααΆαααΎα*;
* αααααΊααΆα₯αα·ααΆααααααΆαααΎααααα Spring Data Redis (αααΆαα αα ααΆααααΆααΆαααα α»ααααααααααααα»αααΆααα·αα·ααα) αααααΆαα±ααααΆαααΆααααΆααα "αα αααααΆα"α αα αααααα Redis αα·αα’αΆα ααααΎααΆααααα»αααααααααααΈ ααααΆααα’αα "ααΆαα" α
- "ααΆααααα
" αααα»αααααααααα’αΆα
ααΆααααααΆ pods αααααααααααααααα·ααΈααΌα
ααααΆ αααααΊααΆ, ααΆαα§ααααααα·ααΆααααα½ααα·αα·ααααα·ααα½αα’αΆαααααααΎααααΆαααΆααα pods αααααααααα cluster ααΌα
ααααΆααΎααααΈααΆαααΆαααΆαααααΆαα cascading:
- ααααααα’αΆα αααααααα½ααααααΆαααααααα·ααΈαααααΆαααααΆαααΆαα ααα αΆα (α§ααΆα ααα ααααΆαααααααΆαααααα»αα’αααα αα αΆααααα»ααα)α
- αα»αααααΎα§ααααααααααααΈαα·α αααααΆαα pods (ααααΈααΎααααααΊααΆααααΈαα
αααααααα½ααααα·αααΆα
αΆαααΆα
α α αΎαα’αααααΉαα
αααΆααα’αααΈααΆαααΆααααΆαα αα·ααααα·ααΆαααααΆαααααΎααααΆαααααααα½ααα)α
- ααΆααααΎαα’αααααααΆαααααααΎαα’αΆα αα½αααααΆααα»αααααααα½αααΆα ααα»αααααααααΆαα’αααααΆαααΆααααααααααααααααααΎαααααα·ααΈααααα’ααα α’αααΈαααΌα ααΆααααΎαααΆααααα½α αα·αααΆαααΆααααΆαααα·ααα½αααΎαα‘αΎαααΆαα§ααααααα·ααα αααααΎαααααα’αααα»αααΊααΆαααΆαααααααα·ααΈαααα ααααΆ α αΎαααΆαααΆαααα‘αααα αααΆαααΎααα·αα
- ααΆααααΎαα’αααααααΆαααααααΎαααααααΆαααααΉαααααΎα±αααα»αααΊαααα αΆααααααΎαα‘αΎααα·α αααα ααα»αααα’αΆα ααααΎα±αααααααααΆααααααα α»ααααααΆααααααΉαααΆαα αΆααααααΎαα‘αΎααα·αααΆααααααΆαα»ααα ααΆαα αΆααααααΎααα»αααΊαααα‘αΎααα·αααΉαααΆαα±ααααΆαααΆαααα’αΆα (αααΆαα αα ααΆαααααααΆααααααααααααΆαα αΆααααααΎααααααα·ααΈ αα·ααΆαααΆ 30+ αα·ααΆααΈ) αααααΆαα±ααααΆαααα α»αααααΈ ααΆααααααΎαααΆααααα»ααα ααΎαα»ααααααααααα·ααααααΎαααααααΆαααααΆααααΆααααααααα½ααα, αα
- ααΆααααα½ααα·αα·αααααΆαααααααΎααα½ααααα αΌαααααΆααΆαα½αααΉαααΆαααΉαααα’ααααΆααααα ααΊααΆααΆααα½ααααα αΌαααααΆααα’αΆααααααααα»ααααα’αΆα ααααΆαααα αααααααΆααααΆαααααΆαααα ααΆααααααΆααααααααα·α αα ααΎαααααααΌαααααΆααα·ααααααααΉαααΆααα αααααΆαα αΆααααααΎααα»αααααα’αααααΆααα’ααα‘αΎααα·α!
- αααΆαααΆααααααααααΆαααααααΎααα·αααΆααααα½ααα·αα·αααααΆαααααααααα½α ααααΌααααα»αααααΆ:
- α’αααα’αΆα
ααααΎααΆααααααααΎαααΆαααααααΎαααΆαα½αααΉαααΆααααα½ααα·αα·ααααα»αααΆαααΌα
ααααΆ ααα»ααααααααα·αααααΎααααααααααΆα (
failureThreshold
α§ααΆα ααα αααααααααΆαααΆα αα·αααΆααβαα½α ααΆαα αααααΆααααΈααΆαααα»αααα 3 ααα αΎααα·α αΆαααΆααΆααΆααααΎαα’ααααααααααΆααααΆααααααααΆααααΈααΆαααα»αααα 10;
- α’αααα’αΆα
ααααΎααΆααααααααΎαααΆαααααααΎαααΆαα½αααΉαααΆααααα½ααα·αα·ααααα»αααΆαααΌα
ααααΆ ααα»ααααααααα·αααααΎααααααααααΆα (
- αα»αααααΎααΆααααα½ααα·αα·ααα execα
αΆααααΆααααΈαα½αααααααΌαααΆαααααΆαααααΆααααΆαα½αααΉααααα αΆαααααααααΆαααααααΆαα±ααααΆαααΌαααΆαααααααΎαααΆα zombie:
- ααααααΆααααα’α·αα ααΌαααΎα
αααααα αΆααααα’αααα―αααα Datadog .
- ααααααΆααααα’α·αα ααΌαααΎα
αααααα
- ααααΎααΆααααΎαα’αααααααΆαααααααααα½αααΎααααΈαααααααΆααΎαα αααααΆααααααααα½α ααΆααααΎααααΈααα½αα ααΆα αααα
- ααααΎααΆααααΎαα’αααααααααααΎααααα αααααααα½αααααααΌαααΆααα·αααααΆααα
- ααΆαααααΎααααΆαααα·αααααΉαααααΌαααααΆααααΎαα’αααααααΆαααααααααα½α/ααΆααααααΆαααΆαααΈαα·αα’αΆα ααΆαα±ααααΆαααΆαααα α»αααΆαα’αΆα ααααΆα αα·αααΆααααΆαααααΆαααααΎααα
αααααΆααααααααααΎαααααΆααα
-
α―αααΆα Kubernetesα ααααααα ααΆααααααααααΆααααΎαα’αααααααΎααΆαααααααΎα αα·αααΆαααααααααα½α ; -
ααΆααααΎαα’αααααααΎααΆαααααααΎα αα·αααΆαααααααααα½ααααα Kubernetes ααααΌαααΆααα·αα·αααα‘αΎααα·αα αααααααααΆαααΆαααΆαααααα½αα―ααα ααΎααααααααα ; -
NRE Labs Outage Post-mortem (ααΆαααααα·ααΆαα’αααΈ livenessProbe)α
ααααΎαα αα α»ααααααααΆαααα 1 ααΈ 2019-09-29
ααααΎαα αα α»ααααααααΆαααα 2 ααΈ 2019-09-29
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
Kubernetes: Pod Life Β» - Β«
ααΆαα’αα»ααααααα’αααα»αα ααα½α 7 αααααΆααααΆαααααΎααααΆαααα»αααΊαααααααα ααΆα Google Β» - Β«
7 αααααΆααααααααΆααααΆααα ααΆαααααα·ααΈαααααΆαααΌαααααΆαααΎαα»αααΊααα "α
ααααα: www.habr.com