‫Pekâlâ, şimdi sırları, özellikleri ve nasıl çalıştığını ve hepsi de,
‫aslında bazı pratiklere bakalım.
‫Burada sahip olduğum şey, daha önce olduğu gibi 3 düğümlü sürüümü kurdum.
‫Repo'da göreceğiniz
‫gizli bir örnek 1 dizinindeyim.
‫Ve tek bir metin dosyası var. Ve bu metin dosyasında sadece basit bir kullanıcı adı var, aslında bir
‫şifre bile değil.
‫Gerçekten Swarm içinde gizli bir şeyler yaratmanın iki yolu var.
‫Ve bunlardan biri dosyayı vermek, diğeri de komut satırında bir değer vermek.
‫Öyleyse, önce dosyayı kullanalım. rıhtıma gizli yaratmak. Ve sonra gizli veritabanında ona bir isim vermeliyim.
‫Buna psql kullanıcısı derim. Diğer nesneler için olduğu gibi Ve bir tane daha yaratalım. Aslında şifreyi
‫Açıkçası dosya ile aynı adda olması gerekmiyor. Ama ben sadece bunu söyleyeceğim. girelim.
‫Ve sonra. kimliğini de geri gönderir. Ve bu sefer biz aslında onu komut satırından yankılayacağız.
‫Ne yaptığımı görürseniz,
‫aslında yankı komut satırına bir parola yazıyorum ve oluşturma komutuna tekrar yansıtıyorum.
‫Sonunda çizgiye dikkat edin, çünkü komutun standart girdiden okumasını söylüyor. ile verdiğimiz şey de budur.
‫Yankı komutu
‫Şimdi, bunların her ikisinin de dezavantajları olduğunu söylemeliyim.
‫İlki, aslında şifreyi ana bilgisayardaki sunucunun sabit diskine kaydediyorsunuz.
‫Ve bunu gerçekten yapmak istemiyoruz.
‫Yani, belki makinenizdeki yerel komut satırından uzaktaki API'yi kullanıyor olabilirsiniz. Ve dosyaları bu şekilde
‫geçirmeyi.
‫Ve ikincisinde, kök kullanıcılarımız için Bash dosyamızın geçmişine giriyoruz.
‫Dolayısıyla teknik olarak, birisi kök salabilirse, aslında bu şifreyi alabilirlerdi.
‫Kendi üretim sistemlerinizle uğraşırken, bu iki olası güvenlik Şimdi, liman işletmecisinin sırlarını yaparsam,
‫endişesini ortadan kaldırmanın çeşitli yollarına bakmanız gerekir. Şimdi, aslında onları inceleyebilirim, ancak şifreleri veya asıl sırrını hiç göremeyeceğim.
‫Yani, burada ne var. ikisini de orada görebilirsin. Bu yüzden, sadece kullanıcıyı yapayım.
‫Bize bilgi vermeyecek, değil mi? Çünkü bilgi almak bu
‫kadar kolay olsaydı, o sır değildir.
‫Sağ?
‫Yani burada amaç, sırrı sisteme koyduğunuzda veritabanında saklanır. sırlara erişebilecek tek şey onu atadığımız
‫konteynerler ve hizmetler olacak.
‫Ve şifre çözülemeyen
‫Şimdi bunu yapalım. ve
‫Elle bir servis oluşturacağım. bu servise atayın, böylece
‫rıhtım hizmeti yarat. Psql diyeceğim. Ve sırrını onunla eşleştireceğiz. Temel olarak, bu create komutu bu belirli adı kullanan bu gizli Ayrıca sırrın kimliğini de bu servisteki tüm konteynırlar bu sırrını görecektir. Tamam.
‫bilgiyi almasını söylüyor. kullanabilirim. Ve sonra kullanıcıyı oraya koydum ve sonra şifre için tekrar yapmalıyım.
‫Tamam.
‫Dolayısıyla bu, sırları servise taşır, böylece konteyner içindeki dosyalar olarak gösterilir.
‫sırları nasıl kullanacağımızı anlatmıyoruz.
‫Ancak postgres veritabanına bu sırlardan nasıl bu
‫Bu yüzden, genellikle, görüntünün konfigürasyonu ile bir şeyler yapmamız gerekir.
‫Ve bu durumda, Docker Hub'ın resmi resimleri, ortam değişkenlerini kullandığınız bir standart
‫üzerinde oturmuştur. Ancak, bu
‫belki de postgres şifresi gibi bir şey geçmek yerine, bir dosya ile kullanmak zor olurdu. yüzden sırlar çalıştırılacak ve sonra da adı değişecekti, değil mi? Bu yüzden psql geçer, sır ismi.
‫Aslında, Bunu
‫dosyayı çevre değişkenine sokmak gibi bir şey olurdu ve bu biraz acıdır. yaparsam, aslında bu ortam değişkeninin doldurulmasına yol açacak resmin başlangıcında bulunuyor.
‫Yani, bir dosyayı belirtirseniz burada standartları vardır. ve bu yol olacaktı. Ve öyleyse, o dosyayı sonra çekip onu ortam değişkeninde depolar. gerçek içeriği.
‫Dosyanın
‫Bu, dosyalardaki bu sırları tüketmenin gerçekten kolay bir yoludur.
‫Ancak kullandığınız görüntülerin bu standarda sahip olması gerektiği anlamına gelir. Umarım, bu size mantıklı gelir. Hizmeti oluşturduğumda, yeni bir kapsayıcı için bir zamanlama talebi
‫Aynı şey kullanıcı için de yapılabilir. geldiğinde yaptığı normal bir işi yapacağım.
‫Bir Postgres
‫veritabanı oluşturacak ve bu iki sırın konumları için çevre değişkenlerini geçirecek.
‫Ve sonra, bir tempfs'de, dosyalar gibi neyin haritalandıracağını haritaya geçirecek.
‫Ancak yine de, bu sadece bir RAM dosya sistemi veya bir tmpfs.
‫Gidip orda neler görebileceğimizi görelim.
‫Psql pistine liman işçiliği yapıyorum ve bu da hangi düğüm üzerinde çalıştığını bize bildiriyor.
‫Tamam, bu düğümde çalışıyor.
‫Kabın içinde görebildiğimizi görmek için bir exec yapalım.
‫liman idaresi.
‫Ve sonra o hizmet için belirli kapsayıcı adı ve daha sonra bash.
‫Tamam.
‫Şimdi sırlar üzerinde bir ls yapabiliyor olmalıyız ve iki dosyayı oraya getireceğimizi görürsünüz. bir kullanıcı adı olmadığı için çalışamaz.
‫Psql kullanıcısı için bir kedi yaparsam, değeri görürsünüz. İşe yaradı. bu dosyalara sahip değilse,
‫Ve o psql'nin günlüklerine bakarsak, aslında bunun çalıştığını biliyoruz. Çünkü yapmadıysa. gerçek veritabanı kendini yeniden yaratmaya devam eder ve bir parola ve veritabanını oluşturmak için
‫Docker hizmeti ps daha yaptım, bir veritabanı senaryosunda doğru
‫çalışmıyordu ne göreceksiniz, veritabanı aslında başarısız olurdu. Ve yeniden başlatmaya devam
‫eder ve burada yeni kaplar oluşturulduğunu görürsünüz.
‫Aslında onu oraya atadık, sırrını kaldırmak için aslında
‫bir liman hizmeti güncellemesi kullanabiliriz. Böylece, rıhtım servis güncellemesi --secret-rm.
‫Ayrıca gizli de var. bu sırlardan birini gerçekte kaldırırsam, konteyner yeniden konuşlandırılacaktır.
‫Fakat eğer Sırlar, değişmez hizmet tasarımının bir parçasıdır.
‫Kapta bulunan herhangi bir şey servise dönmek
‫zorundaysa, servis girmez ve kabın içinde bir şey değişmez. Aslında kabı durduracak ve yenisini yeniden dağıtacaksınız.
‫Açıkçası, bu veritabanlar için ideal değildir. Dolayısıyla, veritabanı şifrelerini nasıl güncelleyeceğimiz konusunda farklı bir plan hazırlamamız
‫gerekecek.
‫Ve bu daha sonra konuşabileceğimiz bir şey.
‫Şu an için, yalnızca bunları kaldırabileceğinizi ve mevcut bir servise başka öğeler ekleyebileceğinizi bilmenizi isterim.
‫Yaptığınız zaman konteyneri yeniden oluşturacak.
‫