ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°. ΠΏΡΠ΅Π²ΠΎΠ΄: Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΎΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π½Π° SRE Π² LinkedIn, ΠΎΠΏΠΈΡΠ²Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ βΠ²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΌΠ°Π³ΠΈΡβ Π² Kubernetes β ΠΏΠΎ-ΡΠΎΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ CRI, CNI ΠΈ kube-apiserver β ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ pod ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ IP Π°Π΄ΡΠ΅Ρ.
ΠΠ΄Π½ΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ
ΠΠΎΠ³Π°ΡΠΎ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π΄Π° ΡΠ°Π±ΠΎΡΡ Ρ Kubernetes, Π½Π΅ ΠΌΠΈ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ pods ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΠ²ΠΎΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΠΎΡΠΈ ΠΈ Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, Π±Π΅ΡΠ΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π·Π°Π΅Π΄Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°Π΅Ρ
Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ° CNI Π΄ΠΎΠ±Π°Π²ΠΊΠΈΡΠ΅, Π½ΠΎ Π½ΡΠΌΠ°Ρ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ
Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, Π·Π° Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ Π·Π½Π°Π½ΠΈΡ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π·Π°Π΅Π΄Π½ΠΎ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ pod Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ IP Π°Π΄ΡΠ΅Ρ.
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° Π² Kubernetes - ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π’Π°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°
ΠΡΠΊΠΎΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ³Π»Π΅Π΄
Π ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ½ΡΠ²Π°ΡΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ Π΄Π°ΠΌ ΡΠ°ΠΌΠΎ ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ° Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Linux ΠΌΠΎΡΡ ΠΈ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ΠΌΠ° Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ°ΡΠΈΡ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ Π½ΡΠΊΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° ΡΡΡΠΈΡ Ρ ΠΎΡΡ
ΠΠ΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° IP Π°Π΄ΡΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Ρ
ΠΎΡΡ, Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Linux ΠΌΠΎΡΡ. ΠΠ° ΡΠ΅Π»ΡΠ° Kubernetes (ΠΈ Docker) ΡΡΠ·Π΄Π°Π²Π°Ρ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Ρ ΠΎΡΡ ΠΈΠΌΠ°Ρ Π΅Π΄ΠΈΠ½ ΠΊΡΠ°ΠΉ Π½Π° veth, ΡΠ²ΡΡΠ·Π°Π½ ΠΊΡΠΌ ΠΌΠΎΡΡ, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΡΡΠ΅Π· IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΠΎΡΡΡΡ Π½Π° Linux ΡΡΡΠΎ ΠΈΠΌΠ° IP Π°Π΄ΡΠ΅Ρ ΠΈ Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ ΡΠ»ΡΠ· Π·Π° ΠΈΠ·Ρ ΠΎΠ΄ΡΡ (ΠΈΠ·Ρ ΠΎΠ΄ΡΡ) ΡΡΠ°ΡΠΈΠΊ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅
ΠΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ
ΠΎΡΡΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ. ΠΡΠ² Flannel ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes Flannel ΡΡΠ·Π΄Π°Π²Π° vxlan ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΌΠ°ΡΡΡΡΡΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π». ΠΡΠ΅ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Π΄ΡΡΠ³ Ρ ΠΎΡΡ, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· vxlan ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΈ ΡΠ΅ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ° Π² UDP ΠΏΠ°ΠΊΠ΅Ρ. ΠΠ° ΠΌΠ΅ΡΡΠΎΠ½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΠΊΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ pod.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π’ΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ CRI?
ΠΠ°ΠΊΠ²ΠΎ Π΅ CNI?
ΠΠΎΠ΄ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΏΠΎΠ΄Ρ
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° 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.
ΠΠ»Π°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ ΠΊΡΠΌ Π²ΡΠ·Π΅Π» Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ:
ΠΠΎΠΌΠΎΡ:
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ CNI Π΄ΠΎΠ±Π°Π²ΠΊΠΈ
ΠΡΠ΅ΠΊΠΈ ΠΌΡΠ΅ΠΆΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ CNI ΠΏΠ»ΡΠ³ΠΈΠ½. Π‘ΡΠ΅Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, Π·Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° pod, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ CNI ΠΏΠ»ΡΠ³ΠΈΠ½ΡΡ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡ ΠΏΠ»ΡΠ³ΠΈΠ½Π°
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ Π°Π³Π΅Π½Ρ. Π’ΠΎΠΉ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° Kubernetes ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅. Π’ΠΎΠ·ΠΈ Π°Π³Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ΄Π²Π° Π² ΠΏΠ°ΠΊΠ΅Ρ Ρ CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°, ΠΈΠ»ΠΈ Π³ΠΎ ΡΡΠ·Π΄Π°Π²Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Π½Π° Π²ΡΠ·Π΅Π»Π°. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎΠΌΠ°Π³Π° Π½Π° CRI ΠΏΠ»ΡΠ³ΠΈΠ½Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠΉ CNI ΠΏΠ»ΡΠ³ΠΈΠ½ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°.
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ; ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π² /etc/cni/net.d/<config-file>
. ΠΠ»ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΡΡΡΠΎ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° CNI Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ΅Π½ Π²ΡΠ·Π΅Π». Π’ΡΡ
Π½ΠΎΡΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°; Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ - /opt/cni/bin
.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΡΡΠΈΡΠ°ΡΠ° Π·Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° [plugins.Β«io.containerd.grpc.v1.criΒ».cni]
Π²
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Flannel ΠΊΠ°ΡΠΎ Π½Π°Ρ ΠΌΡΠ΅ΠΆΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ, Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΌΠ°Π»ΠΊΠΎ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° ΠΌΡ:
- Flanneld (Π΄Π΅ΠΌΠΎΠ½ΡΡ Π½Π° Flannel) ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΊΠ°ΡΠΎ DaemonSet Ρ
install-cni
ΠΊΠ°ΡΠΎinit ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ . Install-cni
ΡΡΠ·Π΄Π°Π²Π°CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» (/etc/cni/net.d/10-flannel.conflist
) Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π».- Flanneld ΡΡΠ·Π΄Π°Π²Π° vxlan ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΎΡ API ΡΡΡΠ²ΡΡΠ° ΠΈ ΡΠ»Π΅Π΄ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° pod. ΠΠΎΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ, ΡΠΎΠΉ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΌΠ°ΡΡΡΡΡΠΈ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π² ΡΠ΅Π»ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ.
- Π’Π΅Π·ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΡΡΠ΅Π· IP Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Flannel ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΡΠ·ΠΊΠΈΡΠ΅ Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°.
ΠΡΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Containerd CRI ΠΈ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈΡΠ΅ CNI:
ΠΠ°ΠΊΡΠΎ ΡΠ΅ Π²ΠΈΠΆΠ΄Π° ΠΏΠΎ-Π³ΠΎΡΠ΅, kubelet ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Containerd CRI, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° CNI, Π·Π° Π΄Π° Π½Π°ΡΡΡΠΎΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ CNI ΠΏΠ»ΡΠ³ΠΈΠ½ΡΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π΄ΡΡΠ³ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ CNI ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, Π·Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ CNI Π΄ΠΎΠ±Π°Π²ΠΊΠΈ
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ CNI ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, ΡΠΈΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° Ρ ΠΎΡΡΠ°. Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈ ΡΡΠΈ ΠΎΡ ΡΡΡ .
Flannel CNI ΠΏΠ»ΡΠ³ΠΈΠ½
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Flannel ΠΊΠ°ΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΡ Container 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
Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° bridge CNI ΠΏΠ»ΡΠ³ΠΈΠ½Π°.
Bridge CNI ΠΏΠ»ΡΠ³ΠΈΠ½
Π’ΠΎΠ·ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΡ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ:
{
"name": "cni0",
"type": "bridge",
"mtu": 1450,
"ipMasq": false,
"isGateway": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24"
}
}
ΠΡΡΠ²ΠΈΡΡ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π½, ΡΠΎΠΉ ΡΡΠ·Π΄Π°Π²Π° Linux ΠΌΠΎΡΡ Ρ Β«nameΒ»: Β«cni0Β»
, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π΄Π²ΠΎΠΉΠΊΠ° veth Π·Π° Π²ΡΡΠΊΠ° ΠΊΠ°ΠΏΡΡΠ»Π°. ΠΠ΄ΠΈΠ½ΠΈΡΡ ΠΊΡΠ°ΠΉ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π° Π΄ΡΡΠ³ΠΈΡΡ ΠΊΡΠ°ΠΉ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ 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 AΡ Π°Π΄ΡΠ΅ΡΠΈ MΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ - ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° IP Π°Π΄ΡΠ΅ΡΠΈ) Π²ΡΡΡΠ° IP Π°Π΄ΡΠ΅ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ IP Π½Π° Ρ
ΠΎΡΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² ΡΠ°Π·Π΄Π΅Π»Π° dataDir
- /var/lib/cni/networks/<network-name=cni0>/<ip>
. Π’ΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π΄Π°Π΄Π΅Π½ΠΈΡ IP Π°Π΄ΡΠ΅Ρ.
ΠΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° IPAM ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Π·Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ Ρ ΠΎΡΡ, ΡΡ Π²ΡΡΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ:
{
"ip4": {
"ip": "10.244.4.2",
"gateway": "10.244.4.3"
},
"dns": {}
}
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Kube-controller-manager ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° podCIDR Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π». ΠΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΎΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ podCIDR Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π’ΡΠΉ ΠΊΠ°ΡΠΎ podCIDR Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°Ρ, Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° kubelet, ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π°Π³Π΅Π½Ρ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΈ ΠΊΠΎΠΏΠΈΡΠ° CNI Π΄ΠΎΠ±Π°Π²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π». ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π°Π³Π΅Π½ΡΡΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π³Π΅Π½Π΅ΡΠΈΡΠ° CNI ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ΄ Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ ΠΊΡΠΌ Π²ΡΠ·Π΅Π», kubelet ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° CRI, Π·Π° Π΄Π° Π³ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Containerd CRI ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° CNI, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° CNI, Π·Π° Π΄Π° Π½Π°ΡΡΡΠΎΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° pod. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° IP Π°Π΄ΡΠ΅Ρ.
ΠΡΠ½Π΅ ΠΌΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡΡ ΠΎΠΏΠΈΡ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Kubernetes. ΠΠΊΠΎ Π³ΡΠ΅ΡΠ° Π·Π° Π½Π΅ΡΠΎ, ΠΌΠΎΠ»Ρ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅ Ρ ΠΌΠ΅Π½ Π½Π°
ΠΠΎΠ·ΠΎΠ²Π°Π²Π°Π½Π΅ΡΠΎ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠ°
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΌΡΠ΅ΠΆΠ° ΠΠ΅ΠΌΠΈΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²Π° ΡΠ»Π°Π½Π΅Π»ΡΡ
Flannel Networking Demystify Kubernetes Ρ ΡΠ»Π°Π½Π΅Π» β ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² ΠΌΡΠ΅ΠΆΠ°
CRI ΠΈ CNI
PS ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
Calico Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° Π² Kubernetes: Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΎΠΏΠΈΡ Β»; - βΠΠ»ΡΡΡΡΠΎΠ²Π°Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° Π² Kubernetesβ:
ΡΠ°ΡΡΠΈ 1 ΠΈ 2 (ΠΌΡΠ΅ΠΆΠΎΠ² ΠΌΠΎΠ΄Π΅Π», ΠΌΡΠ΅ΠΆΠΈ Ρ Π½Π°ΡΠ»Π°Π³Π²Π°Π½Π΅) ,ΡΠ°ΡΡ 3 (ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊ) ; - Β«
Container Networking Interface (CNI) - ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° Linux ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com