Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

Helm Π΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Kubernetes, Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ apt-get Π·Π° Ubuntu. Π’ Ρ‚Π°Π·ΠΈ Π±Π΅Π»Π΅ΠΆΠΊΠ° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия Π½Π° helm (v2) с услугата tiller, инсталирана ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Ρ‡Ρ€Π΅Π· която Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

НСка ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°; Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

дСмонстрация

  • Ако Π½Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΈΡ‰ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, helm v2 стартира услугата tiller, която ΠΈΠΌΠ° RBAC с пълни ΠΏΡ€Π°Π²Π° Π½Π° администратор Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.
  • Π‘Π»Π΅Π΄ инсталиранС Π² namespace kube-system появява tiller-deploy, ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° отваря ΠΏΠΎΡ€Ρ‚ 44134, ΡΠ²ΡŠΡ€Π·Π°Π½ към 0.0.0.0. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° telnet.

$ telnet tiller-deploy.kube-system 44134

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

  • Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с услугата Ρ€ΡƒΠΌΠΏΠ΅Π». Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ двоичния Ρ„Π°ΠΉΠ» Π½Π° ΠΊΠΎΡ€ΠΌΠΈΠ»ΠΎΡ‚ΠΎ, Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°ΠΌΠ΅ с услугата tiller:

$ helm --host tiller-deploy.kube-system:44134 version

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

  • НСка сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΉΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° Kubernetes ΠΎΡ‚ пространството Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° kube-system:

$ kubectl get secrets -n kube-system

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

  • Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създадСм своя собствСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°, Π² която Ρ‰Π΅ създадСм роля с администраторски ΠΏΡ€Π°Π²Π° ΠΈ Ρ‰Π΅ присвоим Ρ‚Π°Π·ΠΈ роля Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π·Π° услуга ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Използвайки Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ сСрвизСн Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ нашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

$ helm --host tiller-deploy.kube-system:44134 install /pwnchart

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

  • Π‘Π΅Π³Π° ΠΊΠΎΠ³Π° pwnchart Ρ€Π°Π·Π³ΡŠΡ€Π½Π°Ρ‚, сСрвизният Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈΠΌΠ° пълСн административСн Π΄ΠΎΡΡ‚ΡŠΠΏ. НСка Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΉΠ½ΠΈ ΠΎΡ‚ kube-system

kubectl get secrets -n kube-system

Π Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€ΡƒΠΌΠΏΠ΅Π» Helm v2

Π£ΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ изпълнСниС Π½Π° Ρ‚ΠΎΠ·ΠΈ скрипт зависи ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ‚ΠΈΠ»Π΅Ρ€ΡŠΡ‚ Π΅ Π±ΠΈΠ» Ρ€Π°Π·Π³ΡŠΡ€Π½Π°Ρ‚; понякога администраторитС Π³ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Helm 3 Π½Π΅ Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ² Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ уязвимости, Π·Π°Ρ‰ΠΎΡ‚ΠΎ... Π² Π½Π΅Π³ΠΎ няма Ρ€ΡƒΠΌΠΏΠ΅Π».

Π‘Π΅Π»Π΅ΠΆΠΊΠ° Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°: Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ уязвимости.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€