ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ°. ΠΏΡΠ΅Π²ΠΎΠ΄.: ΠΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π½Π° SRE ΠΎΠ΄ LinkedIn, Π΄Π΅ΡΠ°Π»Π½ΠΎ Π³ΠΈ ΠΎΠΏΡΠ°ΡΠ° Π²Π½Π°ΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΌΠ°Π³ΠΈΡΠ° Π²ΠΎ Kubernetes - ΠΏΠΎΡΠΎΡΠ½ΠΎ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° Π½Π° CRI, CNI ΠΈ kube-apiserver - ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΠΊΠΎΠ³Π° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ pod ΡΡΠ΅Π±Π° Π΄Π° ΠΌΡ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΠΈ IP Π°Π΄ΡΠ΅ΡΠ°.
ΠΠ΄Π΅Π½ ΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ°
ΠΠΎΠ³Π° ΠΏΡΠ²ΠΏΠ°Ρ ΠΏΠΎΡΠ½Π°Π² Π΄Π° ΡΠ°Π±ΠΎΡΠ°ΠΌ ΡΠΎ Kubernetes, Π½Π΅ ΠΌΠΈ Π±Π΅ΡΠ΅ ΡΠΎΡΠ΅ΠΌΠ° ΡΠ°ΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ ΡΠΎΡΠ½ΠΎ pods Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ Π½ΠΈΠ²Π½ΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΡΡΠΈ ΠΈ ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, Π±Π΅ΡΠ΅ ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°Π΅Π² Π·Π° ΡΡΠΎ ΡΠ»ΡΠΆΠ°Ρ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅, Π½ΠΎ Π½Π΅ΠΌΠ°Π² ΠΏΠΎΠΈΠΌ ΠΊΠ°ΠΊΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π°Π°Ρ. ΠΠ°ΡΠΎΠ°, ΡΠ΅ΡΠΈΠ² Π΄Π° ΡΠ° Π½Π°ΠΏΠΈΡΠ°ΠΌ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° Π·Π° Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Π°ΠΌ Π·Π½Π°Π΅ΡΠ΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Kubernetes, ΡΡΠΎ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΡΠ΅ΠΊΠΎΡ pod Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΡΠ²ΠΎΡΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° IP Π°Π΄ΡΠ΅ΡΠ°.
ΠΠΎΡΡΠΎΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ Π²ΠΎ Kubernetes, ΠΈΡΡΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΡΠ°Π΅ΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠ²Π°Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ
ΠΠ΅ΠΊΠΎΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ°: ΠΡΠ°ΡΠΎΠΊ ΠΏΡΠ΅Π³Π»Π΅Π΄
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ΄Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΊΠΎΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ²Π°Π°Ρ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠ°ΡΠΎΠ°, ΡΠ΅ Π΄Π°Π΄Π°ΠΌ ΡΠ°ΠΌΠΎ ΠΎΠΏΡΡ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ ΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°ΠΌ Π½Π° Π΅Π΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ, ΠΊΠΎΡ Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΌΠΎΡΡ Π·Π° Linux ΠΈ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠ΅ΡΠ°Π»ΠΈΡΠ΅ ΡΠ΅ ΠΈΡΠΏΡΡΡΠ΅Π½ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ΠΌΠ° Π·Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π·Π°ΡΠ»ΡΠΆΡΠ²Π° ΠΏΠΎΡΠ΅Π±Π½Π° ΡΡΠ°ΡΠΈΡΠ°. ΠΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π΄Π°Π΄Π΅Π½ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΈ Π΄ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠΎΠ½ΠΈΠΊΠ»ΠΈΠ²ΠΈ ΠΈ Π΅Π΄ΡΠΊΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° Π΅Π΄Π΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½
ΠΠ΄Π΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° ΠΈΡΡΠΈΠΎΡ Ρ
ΠΎΡΡ Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΠΈΠ½ΡΠΊΡ ΠΌΠΎΡΡ. ΠΠ° ΡΠ°Π° ΡΠ΅Π», Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ Π²ΠΎ Kubernetes (ΠΈ Docker)
Π‘ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° ΠΈΡΡ Ρ ΠΎΡΡ ΠΈΠΌΠ°Π°Ρ Π΅Π΄Π½ΠΈΠΎΡ ΠΊΡΠ°Ρ Π½Π° Π²Π΅ΡΠΎΡ ΠΏΠΎΠ²ΡΠ·Π°Π½ ΡΠΎ ΠΌΠΎΡΡ ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΡ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ ΠΌΠ΅ΡΡ ΡΠ΅Π±Π΅ ΠΏΡΠ΅ΠΊΡ IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΠΈΠ½ΡΠΊΡ ΠΌΠΎΡΡΠΎΡ ΠΈΠΌΠ° ΠΈ IP Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π΄Π΅Π»ΡΠ²Π° ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΡΠ° Π·Π° ΠΈΠ·Π»Π΅Π·Π½ΠΈΠΎΡ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ ΠΎΠ΄ ΠΏΠΎΠ΄ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΠΌΠ΅Π½Π΅ΡΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠ°Π·Π»ΠΈ.
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΈ
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅ Π΅Π΄Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΡ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·Π»ΠΈ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΠΎ Flannel, ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½Π° Π·Π° ΠΎΠ²Π°Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ.
ΠΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Kubernetes, Flannel ΡΠΎΠ·Π΄Π°Π²Π° ΡΡΠ΅Π΄ vxlan ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ ΡΠ° Π°ΠΆΡΡΠΈΡΠ° ΡΠ°Π±Π΅Π»Π°ΡΠ° Π·Π° ΡΡΡΠΈ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ». Π‘Π΅ΠΊΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π°ΠΌΠ΅Π½Π΅Ρ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ ΠΏΠΎΠΌΠΈΠ½ΡΠ²Π° Π½ΠΈΠ· ΡΡΠ΅Π΄ΠΎΡ vxlan ΠΈ Π΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½ Π²ΠΎ UDP ΠΏΠ°ΠΊΠ΅Ρ. ΠΠ° Π΄Π΅ΡΡΠΈΠ½Π°ΡΠΈΡΠ°ΡΠ°, Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΈΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π° ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ° Π΄ΠΎ ΡΠ°ΠΊΠ°Π½ΠΈΠΎΡ ΠΏΠΎΠ΄.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ°: ΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ½Π°ΡΠ° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅.
Π¨ΡΠΎ Π΅ CRI?
Π¨ΡΠΎ Π΅ CNI?
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π±Π° Π½Π° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠΈ Π½Π° ΡΠ°Π·Π»ΠΈ Π·Π° Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° pods
ΠΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ΠΊΠΎΡ Π΄Π΅Π» Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ° IP Π°Π΄ΡΠ΅ΡΠ°, Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠ°ΡΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π°Π° Π°Π΄ΡΠ΅ΡΠ° Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°. ΠΠ²Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π° ΡΠΎ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ» ΡΠ½ΠΈΠΊΠ°ΡΠ½Π° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°, ΠΎΠ΄ ΠΊΠΎΡΠ° Π½Π° ΠΏΠΎΠ΄ΠΎΠ²ΠΈΡΠ΅ Π½Π° ΡΠΎΡ ΡΠ°Π·ΠΎΠ» ΠΏΠΎΡΠΎΠ° ΠΈΠΌ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°Π°Ρ IP Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠ°Π·ΠΎΠ» IPAM ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ
ΠΠΎΠ³Π° nodeipam
ΠΏΠΎΠΌΠΈΠ½Π° ΠΊΠ°ΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ Π·Π° Π·Π½Π°ΠΌΠ΅Π½ΡΠ΅ --controllers
ΠΠ° ΡΠ°Π·ΠΎΠ»ΠΎΡ Kubernetes ΠΌΡ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° podCIDR ΠΊΠΎΠ³Π° ΠΏΡΠ²ΠΈΡΠ½ΠΎ Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. ΠΠ° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ podCIDR Π½Π° ΡΠ°Π·Π»ΠΈΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΎΠ΄ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅, ΠΏΡΠ°Π²Π΅ΡΡΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΠΎΡ ΡΠ»ΠΎΡ Π½Π° Kubernetes ΠΏΠΎΠΌΠ΅ΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΈΠΊΠ°ΠΆΠ΅ΡΠ΅ podCIDR Π½Π° ΡΠ°Π·ΠΎΠ» ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΡΠ»Π΅Π΄Π½Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
$ kubectl get no <nodeName> -o json | jq '.spec.podCIDR'
10.244.0.0/24
Kubelet, ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π·Π° ΡΡΠ°Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈ CNI: ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΡΠ΅ΡΠΎ ΡΠΎΠ°
ΠΠ°ΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ ΠΏΠΎ ΡΠ°Π·ΠΎΠ» Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΠΊΠΎΡΠΈ. ΠΠΎ ΠΎΠ²ΠΎΡ Π΄Π΅Π», ΡΠ΅ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌ ΡΠ°ΠΌΠΎ Π½Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° pod-ΠΌΡΠ΅ΠΆΠ°.
ΠΠ°ΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° pod Π΄ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠ°Π·ΠΎΠ» Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² ΡΠΈΠ½ΡΠΈΡ Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ:
ΠΠΎΠΌΠΎΡ:
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΡΡΠ°Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ
Π‘Π΅ΠΊΠΎΡ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ ΠΈΠΌΠ° ΡΠ²ΠΎΡ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ. ΠΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π³ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° Π·Π° Π΄Π° ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π°ΡΠ° Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°. ΠΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ CNI ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΎΠ΄ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠ΅ΠΊΠΎΡ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ ΠΈΠΌΠ° ΡΠ²ΠΎΡ Π°Π³Π΅Π½Ρ. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π΅ Π½Π° ΡΠΈΡΠ΅ Kubernetes ΡΠ°Π·Π»ΠΈ ΠΈ Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΌΡΠ΅ΠΆΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° pods. ΠΠ²ΠΎΡ Π°Π³Π΅Π½Ρ Π΅ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° CNI ΠΈΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π° Π½Π° ΡΠ°Π·ΠΎΠ»ΠΎΡ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΌΡ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° CRI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΊΠΎΡ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ Π΄Π° Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ°.
ΠΠΎΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° CNI ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈ; ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΅ Π²Π½Π°ΡΡΠ΅ /etc/cni/net.d/<config-file>
. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π° CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ» Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. ΠΠΈΠ²Π½Π°ΡΠ° Π»ΠΎΠΊΠ°ΡΠΈΡΠ° Π΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»ΠΈΠ²Π°; ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ - /opt/cni/bin
.
ΠΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΏΠ°ΡΠ΅ΠΊΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π°Ρ Π²ΠΎ Π΄Π΅Π»ΠΎΡ [plugins.Β«io.containerd.grpc.v1.criΒ».cni]
Π²
ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Flannel ΠΊΠ°ΠΊΠΎ Π½Π°Ρ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ, Π°ΡΠ΄Π΅ Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΡ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅:
- Flanneld (Flannel's daemon) ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΎ DaemonSet ΡΠΎ
install-cni
ΠΊΠ°ΠΊΠΎΠΈΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ . Install-cni
ΡΠΎΠ·Π΄Π°Π²Π°CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° (/etc/cni/net.d/10-flannel.conflist
) Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ».- Flanneld ΡΠΎΠ·Π΄Π°Π²Π° ΡΡΠ΅Π΄ vxlan, Π³ΠΈ Π²Π°Π΄ΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ API ΠΈ Π³ΠΈ ΡΠ»Π΅Π΄ΠΈ Π°ΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° Π½Π° pod. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ, ΡΠΎΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΡΠ°Π²ΡΠΈ Π΄ΠΎ ΡΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ½ΠΊΠΈ Π½ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ.
- ΠΠ²ΠΈΠ΅ ΡΡΡΠΈ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π½Π° ΠΏΠΎΠ΄ΠΎΠ²ΠΈΡΠ΅ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅ΠΊΡ IP Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠ° ΠΏΠΎΠ΄Π΅ΡΠ°Π»Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π€Π»Π°Π½Π΅Π», ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π°ΠΌ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π²ΡΡΠΊΠΈΡΠ΅ Π½Π° ΠΊΡΠ°ΡΠΎΡ ΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ°ΡΠ°.
ΠΠ²Π΅ Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Containerd CRI ΠΈ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅:
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ³ΠΎΡΠ΅, kubelet Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π΄ΠΎΠ΄Π°ΡΠΎΠΊΠΎΡ Containerd CRI Π·Π° Π΄Π° Π³ΠΎ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΏΠΎΠ΄ΠΎΡ, ΠΊΠΎΡ ΠΏΠΎΡΠΎΠ° Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π΄ΠΎΠ΄Π°ΡΠΎΠΊΠΎΡ CNI Π·Π° Π΄Π° ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π°ΡΠ°. ΠΡΠΈΡΠΎΠ°, CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Π½Π° Π΄Π°Π²Π°ΡΠ΅Π»ΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π΄ΡΡΠ³ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅
ΠΠΎΡΡΠΎΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ ΡΠΈΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π²ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΌΡΠ΅ΠΆΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ. ΠΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ° Π·Π° ΡΡΠΈ ΠΎΠ΄ Π½ΠΈΠ².
CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ Flannel
ΠΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Flannel ΠΊΠ°ΠΊΠΎ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ, ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΡΠ° Containerd CRI /etc/cni/net.d/10-flannel.conflist
.
$ cat /etc/cni/net.d/10-flannel.conflist
{
"name": "cni0",
"plugins": [
{
"type": "flannel",
"delegate": {
"ipMasq": false,
"hairpinMode": true,
"isDefaultGateway": true
}
}
]
}
ΠΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Flannel CNI ΡΠ°Π±ΠΎΡΠΈ Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ Flanneld. ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ, Flanneld ΠΏΡΠ΅Π·Π΅ΠΌΠ° podCIDR ΠΈ Π΄ΡΡΠ³ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ API ΠΈ Π³ΠΈ Π·Π°ΡΡΠ²ΡΠ²Π° Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° /run/flannel/subnet.env
.
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=false
ΠΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Flannel CNI ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ /run/flannel/subnet.env
Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ°ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ CNI bridge.
CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ Bridge
ΠΠ²ΠΎΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° ΡΠΎ ΡΠ»Π΅Π΄Π½Π°Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°:
{
"name": "cni0",
"type": "bridge",
"mtu": 1450,
"ipMasq": false,
"isGateway": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24"
}
}
ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ° Π·Π° ΠΏΡΠ² ΠΏΠ°Ρ, ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π²Π° ΠΌΠΎΡΡ Π·Π° ΠΠΈΠ½ΡΠΊΡ ΡΠΎ Β«nameΒ»: Β«cni0Β»
, ΡΡΠΎ Π΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΎΡΠΎΠ° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π° ΠΏΠ°Ρ Π²Π΅Ρ Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΠΌΠ΅ΡΡΠ½ΠΊΠ°. ΠΠ΄Π½ΠΈΠΎΡ ΠΊΡΠ°Ρ Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ ΡΠΎ ΠΌΡΠ΅ΠΆΠ½ΠΈΠΎΡ ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ, Π΄ΡΡΠ³ΠΈΠΎΡ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ ΠΌΠΎΡΡΠΎΡ Linux Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π΄ΠΎΠΌΠ°ΡΠΈΠ½.
ΠΠΎ Π·Π°Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠΎΡ veth, ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Bridge Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Π΄ΠΎΠΌΠ°ΡΠΈΠ½-Π»ΠΎΠΊΠ°Π»Π΅Π½ IPAM CNI. Π’ΠΈΠΏΠΎΡ Π½Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ IPAM ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° CNI ΡΡΠΎ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ CRI Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Flannel CNI.
ΠΠΎΠΌΠ°ΡΠΈΠ½-Π»ΠΎΠΊΠ°Π»Π½ΠΈ IPAM CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ
ΠΠΎΡΡ CNI ΠΏΠΎΠ²ΠΈΡΠΈ
{
"name": "cni0",
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24",
"dataDir": "/var/lib/cni/networks"
}
}
ΠΠΎΠΌΠ°ΡΠΈΠ½-Π»ΠΎΠΊΠ°Π»Π΅Π½ IPAM ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ (IP Address MΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ - ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ IP Π°Π΄ΡΠ΅ΡΠ°) ΡΠ° Π²ΡΠ°ΡΠ° IP Π°Π΄ΡΠ΅ΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ ΠΎΠ΄ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° IP Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ Π½Π°Π²Π΅Π΄Π΅Π½ Π²ΠΎ Π΄Π΅Π»ΠΎΡ dataDir
- /var/lib/cni/networks/<network-name=cni0>/<ip>
. ΠΠ²Π°Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π³ΠΎ ΡΠΎΠ΄ΡΠΆΠΈ ID Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π½Π° ΠΊΠΎΡ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΎΠ²Π°Π° IP Π°Π΄ΡΠ΅ΡΠ°.
ΠΡΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° Ρ ΠΎΡΡ-Π»ΠΎΠΊΠ°Π»Π΅Π½ IPAM ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ, ΡΠΎΡ Π³ΠΈ Π²ΡΠ°ΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ:
{
"ip4": {
"ip": "10.244.4.2",
"gateway": "10.244.4.3"
},
"dns": {}
}
ΠΡΠ°ΡΠΎΠΊ ΠΏΡΠ΅Π³Π»Π΅Π΄
Kube-ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ-ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° podCIDR Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ». ΠΠΎΠ΄ΡΠ°ΡΡΠ°ΡΠ° Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ» Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΎΠ΄ Π°Π΄ΡΠ΅ΡΠ½ΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π²ΠΎ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈΠΎΡ ΠΎΠΏΡΠ΅Π³ podCIDR. ΠΠΈΠ΄Π΅ΡΡΠΈ podCIDR-ΠΎΠ²ΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°Π°Ρ, ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Kubernetes Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° kubelet, Π²ΡΠ΅ΠΌΠ΅ΡΡΠ°Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π°Π³Π΅Π½Ρ Π·Π° ΠΌΡΠ΅ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²ΡΠ²Π°Ρ ΠΈ Π³ΠΈ ΠΊΠΎΠΏΠΈΡΠ° CNI ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΊΠΎΡ ΡΠ°Π·ΠΎΠ». ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ, Π°Π³Π΅Π½ΡΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ½ΠΈΠΎΡ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠ° CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°. ΠΠΎΠ³Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π°ΡΠ° Π΅ Π·Π°ΠΊΠ°ΠΆΠ°Π½Π° Π·Π° ΡΠ°Π·ΠΎΠ», kubelet Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π΄ΠΎΠ΄Π°ΡΠΎΠΊΠΎΡ CRI Π·Π° Π΄Π° Π³ΠΎ ΡΠΎΠ·Π΄Π°Π΄Π΅. Π‘Π»Π΅Π΄Π½ΠΎ, Π°ΠΊΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Containerd CRI Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ CNI Π½Π°Π²Π΅Π΄Π΅Π½ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° CNI Π·Π° Π΄Π° ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠ³Π°ΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, pod Π΄ΠΎΠ±ΠΈΠ²Π° IP Π°Π΄ΡΠ΅ΡΠ°.
ΠΠΈ ΡΡΠ΅Π±Π°ΡΠ΅ ΠΌΠ°Π»ΠΊΡ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ°ΠΌ ΡΠΈΡΠ΅ ΡΡΠΏΡΠΈΠ»Π½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΡΠ°Π½ΡΠΈ Π½Π° ΡΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠΈ. Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° ΠΈΡΠΊΡΡΡΠ²ΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ. ΠΠΊΠΎ Π½Π΅ ΡΡΠΌ Π²ΠΎ ΠΏΡΠ°Π²ΠΎ Π·Π° Π½Π΅ΡΡΠΎ, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ°ΡΡΠ΅ ΠΌΠ΅ Π½Π°
ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈ
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠ°
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΠ΅ΠΌΠΈΡΡΠΈΡΠΈΡΠΈΡΠ°ΡΠΊΠΎ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ
ΠΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Flannel?
Flannel Networking Demystify Kubernetes ΡΠΎ Flannel - Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ΡΠΎ
CRI ΠΈ CNI
PS ΠΎΠ΄ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°Ρ
ΠΡΠΎΡΠΈΡΠ°ΡΡΠ΅ ΠΈ Π½Π° Π½Π°ΡΠΈΠΎΡ Π±Π»ΠΎΠ³:
- Β«
ΠΠ°Π»ΠΈΠΊΠΎ Π·Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ: Π²ΠΎΠ²Π΅Π΄ ΠΈ ΠΌΠ°Π»ΠΊΡ ΠΈΡΠΊΡΡΡΠ²ΠΎ "; - βΠΠ»ΡΡΡΡΠΈΡΠ°Π½ Π²ΠΎΠ΄ΠΈΡ Π·Π° Π²ΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρβ:
Π΄Π΅Π»ΠΎΠ²ΠΈ 1 ΠΈ 2 (ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΌΠΎΠ΄Π΅Π», ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΠ΅Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ) ,Π΄Π΅Π» 3 (ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°ΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°) ; - Β«
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΡΠΊΠΈ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ (CNI) - ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π·Π° Linux ".
ΠΠ·Π²ΠΎΡ: www.habr.com