/ / Wewnętrzna infrastruktura z dokowaniem - bezpieczeństwo, praca w sieci, doker, kubernetes, bezpieczeństwo sieci

Wewnętrzna infrastruktura z dokowaniem - bezpieczeństwo, praca w sieci, doker, kubernetes, bezpieczeństwo sieci

Mam małą sieć firmową z następującymi usługami / serwerami:

  • Jenkins
  • Stash (Atlassian)
  • Confluence (Atlassian)
  • LDAP
  • Owncloud
  • zabbix (monitorowanie)
  • marionetka
  • i niektóre aplikacje internetowe Java

wszystkie działające w oddzielnych kvm (libvirt) -vms w oddzielnych wirtualnych podsieciach na 2 komputerach (1 wewnętrzny, 1 serwer hetzner-rootserver) z interfejsem między nimi. Zastanawiam się nad przejściem do Docker.

Ale mam dwa pytania:

  • Jak mogę osiągnąć bezpieczeństwo sieci między kontenerami docker (tzn. Chcę uniemożliwić dostęp do hostów w sieci z wyjątkiem ldap-hosts-sslport)
  • Tylko za pomocą dokowania? Jeśli tak: czy doker naprawdę zezwala na dostęp tylko do połączonych kontenerów, ale nie ma innych?
  • Korzystając z kubernetes?
  • Dodając wiele interfejsów sieciowych dla każdego kontenera?
  • Czy przełączysz wszystkie moje infra-usługi / -serwery na dokowanie, lub rozwiązanie hybrydowe z tylko owncloud i aplikacjami java-web na docker?

Odpowiedzi:

1 dla odpowiedzi № 1

Odnośnie sieci z wieloma hostami: masz rację, że łącza Docker nie działają na hostach. W Dockerze 1.9+ możesz używać "Docker Networking", jak opisano w ich poście na blogu http://blog.docker.com/2015/11/docker-multi-host-networking-ga/

Nie wyjaśniają, jak zabezpieczyć połączenia,chociaż. Zdecydowanie zalecam włączenie TLS w twoich demach Docker, które powinny również zabezpieczyć twoją sieć wielu hostów (to jest założenie, którego nie próbowałem).

W przypadku Kubernetes masz zamiar dodać kolejną warstwęabstrakcji, abyś musiał nauczyć się pracy z pojęciem strąków i usług. To dobrze, ale może być trochę za dużo. Pamiętaj, że nadal możesz zdecydować się na użycie Kubernetes (lub alternatyw) później, więc pierwszym krokiem powinno być poznanie, w jaki sposób możesz zawijać swoje usługi w kontenerach Docker.

Nie będziesz musiał koniecznie zmieniać wszystkiegodo Dockera. Powinieneś zacząć od Jenkinsa, aplikacji Java lub OwnCloud, a następnie nieco bardziej przyzwyczaić się do uniwersum Docker. Jenkins i OwnCloud dadzą Ci wystarczająco dużo wyzwań, aby zdobyć doświadczenie w utrzymaniu pojemników. Następnie można ocenić znacznie lepiej, jeśli Docker ma sens w konfiguracji i gdy trzeba zastosować inne usługi.

Osobiście staram się zawijać wszystko w Dockerze,ale tylko z jednego powodu: utrzymania hosta w czystości. Jeśli dojdziesz do punktu, w którym wszystko działa w Dockerze, będziesz miał znacznie więcej swobody w wyborze miejsca, w którym usługa może działać, i możesz łatwiej przenosić pojemniki na inne hosty.

Powinieneś również zapoznać się z Docker Hub, w którym można znaleźć gotowe do uruchomienia rozwiązania, np. Atlassian Stash: https://hub.docker.com/r/atlassian/stash/

Jeśli potrzebujesz inspiracji do specjalnych zastosowań i jak zawijać je w Dockerze, polecam zajrzeć https://github.com/jfrazelle/dockerfiles - znajdziesz tam kilka dobrych przykładów.