‫DNS ve Kubernetes hakkında konuşmak için kısa bir dakikanızı
‫ayırmak istiyorum. Bazen Docker, Swarm ve Kubernetes'te
‫DNS'in çalıştığını kabul ediyoruz.
‫İlerlemeye devam etmeden önce size arka planda neler olup bittiğine
‫dair hızlıca bazı detaylar vermek istiyorum.
‫Şimdiye kadar deneyimlediğiniz şey, bir konteyner içindeyseniz
‫ve bir hizmet adına cURL veya ping gönderirseniz, yanıtı geri
‫alırsınız.
‫Yani, belli ki orada hizmetleri DNS
‫adlarıyla eşleştirmek için bir şeyler yapan
‫bir DNS sunucusu var. İster inanın ister inanmayın, DNS Kubernetes
‫kümenizin içinde bir hizmet veya eklenti olarak isteğe bağlıdır.
‫Ama herkes oraya bir tane koyuyor.
‫Aslında, ister kubeadm, ister Docker Desktop ya da her ne
‫kullanıyorsanız onu yüklediğinizde, içinde bir DNS
‫sunucusu olacaktır.
‫1 ile başlıyor. 11 Sürümünde CoreDNS
‫varsayılandır. Bu bir çeşit standart.
‫Daha önce KubeDNS adında bir tane vardı, ancak şu anda kullanımdan kaldırılmış
‫durumda ve artık hepimiz CoreDNS kullanmalıyız.
‫Bu, DNS tabanlı hizmet keşfi olarak bilinir.
‫Docker'da vardı. Swarm'da vardı.
‫Temel olarak, bir hizmet oluşturduğunuzda, hizmetle
‫eşleşen ana bilgisayar adını aldığınız Kubernetes'te olduğu
‫gibi çalışır. Ancak, bu ana bilgisayar adı daha büyük
‫bir adın, tam nitelikli alan adının bir parçasıdır.
‫Docker veya Swarm'da bunu elde edemedik.
‫Gerçekten sadece ana bilgisayar adlarına odaklanmışlardı.
‫Kubernetes ile daha fazla seçeneğimiz var, değil mi?
‫Yani, kullanıma hazır olarak, sadece ana bilgisayar adını kullanarak
‫bir hizmetten diğerine konuşacaksınız.
‫Eğer isim alanlarını kullanmaya başlarsanız, ki bu konuya
‫biraz sonra değineceğiz.
‫Ad alanlarını, farklı uygulamaların tüm farklı
‫bölümlerini aynı küme içinde birbiriyle gerçekten
‫çakışmayacak bu alanlara ayırmanın bir yolu olarak
‫düşünün.
‫Teknik olarak aynı pod'u, aynı hizmeti veya
‫aynı Deployment'ı aynı adlarla, aynı ad alanında
‫oluşturamazsınız.
‫Eğer başka isim alanları yaratırsanız,
‫ki bunu ilerledikçe yapabilirsiniz, o zaman aynı şeyleri
‫farklı isim alanlarında adlandırabilirsiniz ve bunlar
‫çakışmaz. Buna DNS de dahildir.
‫Aslında, burada tam nitelikli alan adı standardına baktığınızda,
‫şimdiye kadar kullandığımız ana bilgisayar adına sahip olduğunu göreceksiniz.
‫Ardından ad alanı adı.
‫Bu tam adı yazacak olsaydınız, ad alanını belirtmeniz
‫gerekirdi.
‫Varsayılan olarak, varsayılan olarak çalışıyorsunuz.
‫Bu, uygulamalar için varsayılan ad alanıdır.
‫Komut satırında kubectl get namespaces
‫şeklinde hızlı bir komut verirseniz,
‫burada bir liste görürsünüz.
‫Docker Desktop kullanıyorum, bu yüzden orada Docker yazan fazladan
‫bir tane var, bu da Docker Desktop'unuzun, Docker'ın
‫Kubernetes kümesinde sağladığı sihrin bir kısmını yapan bazı
‫özel Docker hizmetlerini çalıştıran bir parçası
‫olacak. Varsayılan, temel bir kümede
‫içine atıldığınız kümedir. Diğerleri ise Kubernetes ile kutudan çıktığı
‫gibi gelen standartlardır.
‫Sistem bir, tabii ki kontrol düzlemini çalıştırıyor.
‫Oradaki sistem bu.
‫Halkı pek kullanmıyoruz.
‫İçinde sadece birkaç şey var.
‫Daha sonra node-lease, yeni Kubernetes ortamlarında
‫yeni bir tanesidir.
‫Bunlar gerçekten başlangıçta ihtiyaç duymayacağınız
‫ileri düzey konulardır. Büyük olasılıkla kümelerinizi bu ad alanlarıyla
‫çok fazla uğraşmadan çalıştırabilirsiniz.
‫Genellikle,
‫uğraşacağınız şey varsayılan ad alanıdır ve büyüdükçe,
‫muhtemelen aynı ada sahip farklı uygulamalar için birden
‫fazla ad alanı oluşturacaksınız.
‫Ya da aynı şeyi aynı hizmet adları, pod adları, dağıtım adları ile birden
‫çok kez dağıtmak isteyebilirsiniz ve bunların çakışmasını
‫istemezsiniz, bu nedenle bunlar için farklı ad alanları
‫oluşturursunuz.
‫Swarm yığınlarına biraz benziyor, ancak ad alanlarının çalışma
‫şekli ile yığınların çalışma şekli arasında o
‫kadar çok fark var ki, bunların tamamen aynı olduğunu düşünmenizi
‫gerçekten istemiyorum.
‫Ad alanları gerçekten sadece bir organizasyon parametresidir
‫ve ağ segmentasyonunu veya buna benzer herhangi bir
‫şeyi kontrol etmez.
‫Bu daha da gelişiyor. Bunları daha sonra
‫düşünebilirsiniz. Bu tam nitelikli alan
‫adına geri dönelim. Artık ana bilgisayar adını ve ad alanı
‫kısmını bildiğinize göre, o zaman . svc hizmet için çünkü burada
‫aradığımız şey bu.
‫Şu küme. Sonunda gördüğünüz yerel, kümenizi
‫oluşturduğunuzda veya döndürdüğünüzde kümenize verilen varsayılan
‫hizmet DNS adıdır.
‫Kümenizi oluşturmak için kubeadm gibi bir şey kullanıyorsanız,
‫kümenizi oluşturmadan önce bu adı değiştirebilirsiniz.
‫Varsayılan olarak bu.
‫Birden fazla Kubernetes kümesi oluşturduğunuzda ya da uygulamalarınızın
‫birbirini nasıl bulacağına ilişkin bazı harici gereksinimleriniz
‫olduğunda bunu değiştirmeniz gerekip gerekmediğini
‫bilirsiniz. Yine, tüm bu DNS yalnızca
‫kümenizin içindedir.
‫Kubernetes API ile uzaktan konuşmadıkları sürece, dış
‫hizmetlerin görebileceği veya kullanabileceği
‫bir DNS hizmeti değildir.