ααα αΆαααααΌαααααΆαααΆαααααααΆααα
ααΆαα Kubernetes ααΊααΆαααΆαααααααα·ααΈααααα’ααααα
αααα»ααα»αααΊαααα αα
αααα»ααααααΈααα ααΎαααΉααα·αα·αααααΎαααΈαααααααα’αααα’αΆα
αααααΎαααΌαααΆααα»αααΌα
αα½ααααααΆααα»ααααα·ααΆαα
ααΌαα’ααα»αααα Docker ααΆααααααΎαααΌαααΆααα»αααΊααααα·αααΆααααα½ααααααα αααααΆααααΌαααΆαααΌαααααΆα ααααααααΆαααααΆααααααΌαααααα’ααα αα·ααααααΎααα»αααΊαααα
ααααααααααα
αα
ααααααααααΊα’ααα
αΆααααααααΆααααΆαα
αΆααααααΎα ααΆαααααΎααααΆααααΌαααΆαααΌαααααΆαααααΆαααΎαα’αΆα
ααΆαα±ααααΆαααΆαααΆααα·αααΆααα»ααααα·ααΆαααΆαα½αααΉαααΌαααΆαααααααααααααα
αααααΆαααΆααααααααα
ααΎαααΈααα ααΌαααΆαααΆαα αααΎααα αααα»α Docker ααααΎ Debian α¬ Ubuntu αααααΆααααΌαααΆαααΌαααααΆα α αΎααααααααααααΆαααααααΌαααΆαααααααΆααααα’ αα·αααΆαααααΌαααΆαααααααααΆααααα½α (α―αααΆα Docker ααααΎααααΈααααααΆααααααΌα) ααΌαααΆαααΌαααααΆαα’αΆα ααααααααααα»αααααααααΆααααααααΆαααα αααα»ααα»αααΊαααααααα’αααα α§ααΆα ααα α―αααΆα node.js ααΆαααααααααΆαααααααα·ααΈ Go "hello-world" ααΊαααα αα 700 ααααΆαα αααααααααααα·ααΈαα·αααααα’αααααΆαααα αααααΉαααααΈαααΈααα αααΆααααα»αααααα
ααΌα
ααααααααα»αααΆαααΆαααααααααΆααα’αααααααΊααΆααΆαααααααααΆαααααα αααΈααΈαα αα·αααΆααααααααΆαααααα½αααααα’αααααΆααααΆαααΆαααααααα αα·αααα α»ααα»ααααα·ααΆαα ααΌα
ααααααΌααααα‘ααααΎααα·ααΈααΈααααΆαααΎααααΈααΆαααααααααα αααααΌαααΆααα»αααΊαααα
ααΈαα½αααΊααΆαααααΎααααΆααααΌαααΆαααΌαααααΆαααΌα ααΈααΈαααΊααΆαααααΎααααΆααααααΌ Builder α ααΆαααααΎααΌαααΆαααΌαααααΆαααΌα ααΆαααΊαααα ααααΆαα·ααΈααΆααααα½ααααα»αααΎααααΈααΆαααααααααα ααα»αααααα’αααα ααΆαα αααΎαααααααΆααΆααΆ α¬ααααααα’ααααααα»αααααΎαααααααΌαααΌαααΆααααααα·ααΈααΎααααααΌα ααΆαααΌαααΆαααααΆαααΎαα αααΎαα αααααΎααα»αααΊααα node.js ααααααΎαα
ααΆαααααΆαααΎααα
αααα»α Docker ααα αααΌαααΆαααΌαααααΆααα node:8 ααΊ 670 MB α αΎαααααΆααα ααα αααΌαααΆα 8-alpine ααΊααααΉααα 65 MB αααααΊααΌα
ααΆα 10 ααα αααααααΎααΌαααΆαααΌαααααΆα Alpine ααΌα
ααΆαααα α’αααααΉαααΆαααααααααα ααα»αααααα’αααα Alpine ααΊααΆααΆαα
ααα
αΆαααΈαα»α
ααΌα
αα·αααααΆα αααααΆααααααΆαααα·αααΆαααααΆαααααα»αα
ααααα’αααααααΎααααΆαα Docker αααααααΆα’αΆα
ααααΎααΆαααΆαα½ααααααα·ααΈααΆα
αααΎα ααααααααααααααΆαα»αααΌα
α αα·αααΌα
ααΌαααΆα Docker "node" αααααααΆα "node:alpine" αα»αα―αααΆαααααΆαααα αα·ααααααα·ααΈααΆα
αααΎα ααααααααααα»αααα―αααΆαααααααααααααΆααααΎααααΈααααΎαααΆααααααα·ααΈααααα’αααα
ααΎααααΈααααΆααααΈαα ααΌαααΆαααΌαααααΆαααΌα ααΆα ααααΆααααααααΎαα αα α»ααααααααΆα Dockerfile ααΎααααΈα αΆααααααΎαααααΎααΆαααΆαα½αααΌαααΆαααΌαααααΆαααααΈα
α₯α‘αΌαααα αα·αααΌα
ααΌαααΆα onbuild α
αΆαααα α’αααααααΌαα
ααααααΌαααααα’ααααα
αααα»ααα»αααΊααα α αΎαααα‘αΎαααΆαα’αΆαααααααΆαα½αα αα
αααα»α Dockerfile ααααΈ αα»αααΊαααα
αΆααααααΎαααα node:alpine image αααααΆαααααααααΎα directory αααααΆαα code ααα‘αΎα dependencies αααααααΎ NPM package manager α αΎαα
α»ααααααααααΎαααΆα server.jsα
ααΆαα’αΆααααααααααΆαα±αααα»ααααααΆαααα αααΌα
ααΆα 10 ααα ααααα·αααΎααΆααΆααααααααααα·ααΈ α¬αααααααα’ααααα·αααΆααα»αααΆαααΆαααααααααΌαααΆαααΌαααααΆα ααΌαααααΎ Alpine Linux α ααΆααααΉααααααααΌααααααααΆααααα»αααΆααααααααααααΆαα·ααΆαααααα»ααααΆααααααααααααα ααΆαααααΎααΌαααΆαααΌαααααΆαααΌα
ααΊααΆαα·ααΈααααα’αα½αααΎααααΈαααααΎααα»αααΌα
ααΆααααΆαααΆαααα ααα ααα»ααααααΌααααΈααααΆαααΆαααααααααΆααααα
αααΎαα’αΆα
ααααΌαααΆααααααα
αααααααΎ Builder Pattern α
αα
αααα»αααΆααΆαααααΆααααααα ααΌααααααααααΌαααααΌαααΆααααααΌααα
α’ααααααααα α αΎααααααΆααααααααα·ααααα·αααααααΆααα αα
αααα»αααΆααΆαααααΆαα
ααααα ααΌααααααααααΌαααααΌαααΆαααααααααα
ααΆααΌααααααΆαα
αααααα ααααααΆαααΆααααα ααΆαα
αααααααΆααΉαααΆααααααΎα§αααααααααα·αααααΌαααΆααα·αααααΆααααΎααααΈααααΎαααΆαααΌαα αααααΆααααααΆα’αααα’αΆα
ααα§αααααααΆαααααα
ααααΈαα»αα
α»ααααααααΆαααΆαααααα»αα α’αααα’αΆα
ααααΎ Builder Pattern αααααΆααααΆααααα
ααΌαααααΌαααΆααααααΎααα
αααα»ααα»αααΊαααααααΌα αα·αα
αααααα αααααΆαααα ααΌααααααΆαα
αααααααααΌαααΆαααα
ααα
αΌααα
αααα»ααα»αααΊαααα
α»αααααα αααααααΆααααααα·ααΈα
ααααα αα·αα§ααααααααααααΌαααΆαααΎααααΈα
αααααααΌααααα αααααααΎαααΆααααααα·ααΈ Go ααΆααααααααΎαααΆααααα ααααΌα ααΎαααΉαααααΆααααΈααΈααΌαααΆα onbuild αα
Alpine Linux α
αα
αααα»α Dockerfile ααααΈ αα»αααΊαααα
αΆααααααΎααααααΌαααΆα golang:alpine α αααααΆααβααβααΆβαααααΎαβααβαααααΆααβααΌα α
ααααβααΆβαα
βαααα»αβααΌαβααααα αααααΎαβααΌαβαααααβααα αα·αβααααΎαααΆαβαααααα·ααΈα αα»αααΊααααααααΆαααα αααΌα
ααΆααα»αααΊααα onbuild ααα»ααααααΆαα
ααααΆαα§αααααα
ααααα αα·αα§ααααα Go αααααααααααααΎααα·αααΆαα·αααααΌαααΆαα ααΌα
ααααβααΎαβααααΆααααβαααααβαααααα·ααΈβαααβα
αααααβααβααΆααβαααα»αβαα»αααΊαααβααααβααΆβααα»αααααα
α’αααα’αΆα
αααααΆααααΎαα’αααΈαα½αα
ααααααα
αααα»αα―αααΆα Docker αααα ααΆααΆαααΈααααααΆαα FROM α ααααα 4 αα½αααααΌαααΎααα
ααΌα
ααααΆαα
ααΉα Dockerfile αα»α ααΎααααααααΆααααΎααΆααααααααΉα AS ααΎααααΈααΆαααααααααααΆααααΆααααα ααααααααααΆααααΆααααααΆαα FROM ααααΈ ααΎααααΈα
αΆααααααΎαααΌαααΆαααααΈ ααααααα½αα±ααααΌαααΆα golang:alpine ααΎαααΉαααααΎ Raw alpine ααΆααΌαααΆαααΌαααααΆαα
Raw Alpine Linux αα·αβααΆαβαα·ααααΆαααααα SSL ααΆβαα½αβααΆαβααα‘αΎαβαα αααβααΉαβααααΎβα±ααβααΆαβα α API ααΆαα αααΎαβααΆα HTTPS αααΆααα ααΌα ααααβααΌαβααα‘αΎαβαα·ααααΆαααααα CA ααΆ root ααααα
α₯α‘αΌαααααααααααααΈαααΆαα ααΎααααΈα
ααααααΌααααααΆαα
αααααααΈαα»αααΊαααααΈαα½ααα
αα»αααΈααΈα α’αααα’αΆα
ααααΎααΆααααααααΆα
αααααααααΆαααΈααΆαααα
αααααΆααααΈ 5 αααααααααΈααΈαα ααΆααΉαα
ααααα―αααΆααααααα·ααΈαααα½αααα»ααααα α αΎαααΉααα·ααααααΆαααααα§αααααααααΎααααΆαα Go ααα α―αααΆα Docker αα α»ααααΆααααΆαααααΈααΉαααΆαααΌαααΆααα»αααΊααααααααΆαααα αααααΉααα 12 ααααΆααααα»ααααα ααΎαααααααααα
ααΉαααΌαααΆααα»αααΊαααααΎααααααΆα 700 ααααΆαα αααααΆααΆααα»αααααΆααααΆαα!
ααΌα
ααααααΆαααααΎααΌαααΆαααΌαααααΆαααΌα
αα·α Builder Pattern ααΊααΆαα·ααΈααααα’αααα»αααΆααααααΎααα»αααΌα
ααΆαα
αααΎαααααα·αα
αΆαααΆα
αααααΎααΆαα
αααΎαα
ααΆα’αΆα
αα
αα½α
αααα’αΆαααααααΎααααααααα·ααΈ ααΆααα·ααΈααααααααΎααααΈααΆαααααααααα αααΌαααΆα αα·ααα»α ααα»ααααααΎαα»αααΌα
αα·αααΆααΆαα’ααααααααααααααα’αΆα
ααΆαααααααΆααααα¬αα? ααΌααααα‘ααααΎααααααααΈαααααα»αααΌα
ααΆαααααα·αααααΆαααααΆαα - ααΆαα’αα»αααα αα·ααα»ααααα·ααΆαα
ααΎααααΈααΆααααααααΆαααΎαα‘αΎαααααΆαα’αα»αααα ααΌααα·α αΆαααΆααΈααααααααααααΎαααΆααααααΎααα»αααΊααα αααα αΌαααΆαα αααα»ααααααΈααααα (αα»α) α αΎααααααΆααααααααΆααΈααΈααα (ααΆα)α α’αααβα’αΆα βααΎαβααΎαβααΆβαα»αααΊαααβααΌα βααΆαβα’αααααααααααβαα»αβαααααβααΈβαα»αβααα
Docker ααΉαβαααααΆβαα»αβαααααΆαα ααΌα
ααααβααΆαβαααααΎαβααΆβαααααααααΆααβααΉαβααΆαβααααΏαβααΏαβααΆααα ααααααΆαααΆααααα αααααααα CI ααΆα
αααΎααααααααΎαααααΆααααΆαααα αα·αααΆααααααα»ααα·ααααα»ααααααΆαα ααΌα
ααααααΆαααΆαααααααααααααΆααααααΆααα ααΌα
αααα’αααα’αΆα
ααΎααααααααΆααΆαααααα»ααααα½αα’αΆαααααααΎααΆααααααααΆαααΈαααααα’αααααΊααΈ 34 αα
54 αα·ααΆααΈα αΎααα
αααααααΎαα»αααΊαααααΆααααααααααααααΎααααΌα’αααααΆαααα - ααΈ 23 αα
28 αα·ααΆααΈα αααααΆααααααα·ααααα·ααΆααααααααααααααΆαααΎαα‘αΎαααα·αααΆαααΉαααΆα 40-50% α ααΌα
ααααααααΆαααααα·αααΆααΎα’ααααααααΎα αα·αααΆαααααααΌαααααα’αααααα»ααααΆαααα
αααααΆααααΈαα»αααΊαααααααΌαααΆαααΆαααα α’αααααααΌααα»αααΌαααΆαααααααΆ (ααΌαααΆααα»αααΊααααα»α) αα αααα»ααααααΈααααααα»αααΊααα ααΌα ααααα’αααα’αΆα ααααΎααΆαα αααα»αα ααααα Kubernetes ααααα’αααα αααα»αααΌαααααΆαα±ααααααΎ Google Container Registry α
ααΆαα½αααΉα Google Container Registry (GCR) α’αααααααΆααααα
αααΆαααΎααΆααααα»ααα
αα·ααααααΆαααα»ααααα α αΎααα·αααΆαααααααααααααααα»αααΊαααααααααααα ααΆααΆα―ααα αα»ααααα·ααΆα αα·αααΏαααΆααα GCR ααααΎαααα·α
ααΆα
αααΎαααΎααααΈαααααΎαααααΏαααααα·ααααα·ααΆαααΆαα ααΌα
αααα’αααα’αΆα
ααΎα ααΆααααα
αΌα Docker Container Image container αααααααΎ go:onbuild ααΉαα
αααΆααααααΈ 15 αα
48 αα·ααΆααΈ α’αΆαααααααΎααααΎαααΆααααααα»αααααΌααα α αΎαααααα·ααααα·ααΆαααΌα
ααααΆααΆαα½ααα»αααΊαααααΌα
ααΆαααΉαα
αααΆααααααΈ 14 αα
16 αα·ααΆααΈ α αΎααααααΆαααααΆαααΈαααααα·αααΌαααΆαααα·αααΆα α’ααααααααααααααα»αααααΏαααααα·ααααα·ααΆαααΎαα‘αΎα 3 ααα αααααΆαααααΆαααΈααα αααααααΆααΊαααα ααααΌα
ααααΆ αααααΆα GCR ααααΎααααΆαααααααΆααααααααααΆααααΌαααααΆααα·αααααααα½αααααΌαααΆα ααΆααααααΆα’ααααα·αα
αΆαααΆα
ααααα»ααα½αααΆααΆαααααααα αα
αααα»ααα»αααααΌααααααααΆαααΆαααααΆα αααΈααΈααΌααΊααΆα§ααααα ααΌα
ααααα’αααααααααααααααΆαααααΎααααΆαααα»αααΌα
ααΊααααΆααα
ααΈαααα
ααααα·αααΎα’ααααααα»αααααΎ GCR αααα»αααΌαααααΆαα±ααααααΎ Google Container Builder (GCB) ααΆαααααααααααααααααΆααααααααα’αααα
ααΌα
αααα’αααα’αΆα
ααΎαααΆαααααΎααααΆααααααααΆα’αα»ααααΆαα±ααα’ααααααααα
ααΆαααΌαααααααααα’αααααΎαααΆααα»ααααα»αααΆαααΆαααααααααααααααααααα·ααααα·ααΆα Build + Push ααΆαααΌααααΈαααααΆαααΈααααααΆαααα·αααΆα - αααα»αααααΈαααααααΎαααΆαααααΆαααΆαααααα·ααααααΌααα»ααα
αααΆαααΈαααΊααΏαααΆαααααΎααα 2 ααα ααΎαααΈααα α’αααααα½αααΆα 120 ααΆααΈααΆαααααααα₯ααα·αααααααΆαααααΆαααααα ααααααααααααααααααΌαααΆαα’ααΆααα»αααΊαααααααα’ααααααα»αααααΈααΆαα
αααΎαα
αααααΆααβααβααβααΌαβααΆαααααααΆαβααααα·ααααα·ααΆαβααβααααΆααβαααα»α β ααααΏαβααβααΆαβααΆαβαα α¬βααΆαβααβαα»αα α αΎαααααα·αααΎα’ααααα·ααααααα αααΎαα’αααΈαααααααΆαααα αααΆαααΎααααα·ααααα·ααΆααα»ααα αααααααααααααααΎαααΆαααΆαααΆααααααααΆαααααΆαααααααααααααααααΎαααΆαααααααααααΆααααΌαα α αΌααα·ααΆαααΆα’αααααΆαα αααααααααααΆααααΈ α αΎααα½ααααα»αα αααααα½αααΆαααΆαααα ααααα·αααΎα’ααααααα»αααααΎαααααααααααααααααααΌα ααΆ Google Kubernetes Engine ααΆααΉααααα½αααααΆαααααααΆαααααααααααααααααααΆαα½αααααΈα ααααααΆαααΆααααα ααααΆααααααΈαααααΉααααααΆαααααα»α α αΎαα’αααααΉαααααΌαα’αΌααα»αααΊαααααΆααα’ααααααα’αααα αΌααα αααα»αααΆααΎααααΈα±ααααΆα αΆααααααΎαααααΎαααΆαα ααααα·αααΎααααα·ααααα·ααΆαααΆαα αααΆααααααΌααααααααααΆαα α αααααααααα’αααααΉαααααΎαααΆααα ααααα·αααΆαααααα½ααααα
ααΆαααααΈααΆα αααΎααααααΆα’αΆα ααΎαα‘αΎαα ααΆαααααααααααΆααααααΈαα α ααααα ααΆαααααΎα±αααααααΎαααααΆαα α¬ααΌααααΈααααΆαααααΌααα αα»αααΊαααααααΈαααααΆααααΆαααΆαααααααΆαα ααΌα αααα ααΆαβααΆααβαααααβαααβααααΆβααΆαβααβααΆαβααααΆαβααΆβαααααΆβααααΆααα ααΆαα·αα’αΆα ααααααααΆαααααΆαα»αααΌα αα½αααΆαααααΏαααΆααα»αααα ααααα·αααΎα’ααααααα»αααααΎαααΆααα»αααΊαααα αααΎααα αααα»αα ααααα Kubernetes ααΆαααααααααααααΆα’αΆα ααΆαααΆααααααΆααα
ααΌααααα‘ααααΎαααΆααααααααααααα ααααα·ααααα·ααΆαααΆαααΎαα»αααΌα
αα
αααΆαααααα·α
ααΆα α€-α© αα α’αΆαααααααΎααΆααααααααααΆαααΈα ααΆαααααα·ααααα·ααΆαααΌα
ααααΆαααααααΎ go:onbuild α ααΆαααααΎααααΆααααΌαααΆαααΌαααααΆααα»αααΊαααααΌα
αααααΆαα
ααααααα αααααΎαααααΏααααΆαααααΆααααΌααααααααΆ αα·αααααΏααααααααΆαα Kubernetes ααααΈα’αΆα
ααααΌαααΆαααΆααα±ααααααΎααααΆαα αα·αααααΎα’ααΈαααΊαα·αα
ααΌααααα‘ααααΎααααα αΆααααα·αα»αα αα»αααΌα ααααΌαααΆαα αΆαααα»αααΆααΆααα»ααααα·ααΆαααΆααα»αααααΆα αααααΆααα½αααΆααΆαααααααΆααααα αΆαααΌα ααΆαα ααΎααΆαα·αααΆααααα? αααααααα·αααααααΆααααααααααααα»ααα½ααα Google Container Registry ααΊαααααααΆααααα»αααΆαααααααα»ααααα»αααααα’ααααααααααααααααααα·αααααΆααααΆαααΆααααααααα ααΆαααΈααα»ααααΆααααα»α αααα»αααΆααααααΎαααΆαα onbuild αα·α multistage containers ααΌα ααααααΌαααΎαααΆααΎααΆαααΆαααΆααααααααααΆαα½ααα ααΈαααα
ααααααααΊα’ααα
αΆαααααΆααα ααΆαααααΆαααΆαααααααααααααα
ααα½α 3 ααα»αααααααααΌαααΆαααααΎααα
αααα»ααα»αααΌα
αα½α α αΎαααΆαααΆααααααααα
ααα½α 16 αα·α 376 ααααααααααααΌαααΆαααααΎααα
αααα»ααα»ααααα½αα ααααα·αααΎααΎααααα‘ααααΎαααΆαα·ααΆαααα»αααΊααααα ααΎαα’αΆα
ααΎαααΆαααα αΆαα»ααααα·ααΆαααΆαα
αααΎααα·αααΆαααΆααααΆααααααΉααααααα·ααΈααααααΎααα ααα»ααααααΆααΆααααααΉααααααα·ααΈαααααΎααα·αααααΎαααααα ααΌα
αααααα
ααααααααα»ααααα·ααΆαα’αααΈααααααΆααααα αΆααααα αααα αΎαααΆα’αααΈααααα½αααααΆααααα
ααΆαααααΆα
ααααΊα
αααΆααααΆααα αααααΎααα»αααΌα
α αααααααΆαααααααΌαααΆαα’αα»ααααααΆααααααα αα·αα’ααααααααααααα»ααααα·ααΆααααααααααααααααα’αααα
ααΆαααααΆαααΆαα·ααααααααα½αα ααα½απ
ααΌαα’ααα»αα
ααααααΆαααααΆαααα
ααΆαα½ααα½αααΎαα ααΎα’αααα
αΌαα
α·αααα’αααααααααααΎααα? α
ααααΎαααααΉαααΆααα½αα±ααα
αΆααα’αΆααααααααααααααααα? ααΆααααααΎααααααΆααααααΆαα·αα¬ααααΆαααααα·αααααααα·,
Dell R730xd 2x αααααΆααα
αααα»αααααααααααα·αααααα Equinix Tier IV αα
ααΈαααα»α Amsterdam? αα
ααΈααα
ααααα: www.habr.com