Pod network cidr kubernetes clusterdaki podlarımızın cluster içi local networkde alacağı IPv4 bloğudur. Bu kubespray ve kubeadm kurulumlarında container network interface’de tanımlanır(CNI). CNI olarak en yaygın şekilde calico kullanılmaktadır.
Case
Bugün Hepsiburada private networkündeki bir kubernetes clusterda; hedef ip adresine worker node üzerinden gidebilirken, pod içinden gidemediğimiz konulu bir case geldi. Bu case üzerine yaptığımız inceleme sonucunda kubernetes pod cidr ip bloğu ile hedef ip adresimizin bulunduğu bloğun çakıştığını fark ettik. Hepsiburada gibi private ip bloklarının yetersiz kaldığı büyük ölçekli ortamlara bu tür durumlarla karşılaşmanız muhtemeldir.
Cluster productionda olduğu için olabilecek en uygun şekilde bu durumu çözmemiz gerekiyordu. Tabi bu durumun çözümü farklı yöntemlerle de olabilir fakat biz pod network cidr bloğunu Hepsiburada private networkünde bulunmayan boş farklı bir blok ile değiştirme üzerine yoğunlaştık. Bu makalemde de bu süreci neredeyse kesintisiz nasıl gerçekleştirdim bundan bahsedeceğim.
Başlayalım
Makalemin başında bahsettiğim gibi kubernetes clusterımızda Calico CNI kullanıyoruz. Yapacağım bu anlatım sadece Calico’yu kapsamaktadır.
Öncelikle kurulu olan calico üzerinde işlem yapabilmek için calicoctl deploy etmemiz gerekmetedir. Bunun için;
İşlem bu kadar, sildiğiniz podların yerine oluşan yeni podların yeni oluşturduğunuz networkten ip aldığını göreceksiniz. Böylece “neredeyse” sıfır kesintiyle calico CNI kullandığımız kubernetes clusterımızın pod network cidr ip bloğunu değiştirmiş oluyoruz.
Bu makale : kubernetesturkey.com adresinden alıntıdır.
Kubernetes Pod Network Cidr Nasıl Değiştirilir?
Makale İçeriği
Nedir?
Pod network cidr kubernetes clusterdaki podlarımızın cluster içi local networkde alacağı IPv4 bloğudur. Bu kubespray ve kubeadm kurulumlarında container network interface’de tanımlanır(CNI). CNI olarak en yaygın şekilde calico kullanılmaktadır.
Case
Bugün Hepsiburada private networkündeki bir kubernetes clusterda; hedef ip adresine worker node üzerinden gidebilirken, pod içinden gidemediğimiz konulu bir case geldi. Bu case üzerine yaptığımız inceleme sonucunda kubernetes pod cidr ip bloğu ile hedef ip adresimizin bulunduğu bloğun çakıştığını fark ettik. Hepsiburada gibi private ip bloklarının yetersiz kaldığı büyük ölçekli ortamlara bu tür durumlarla karşılaşmanız muhtemeldir.
Cluster productionda olduğu için olabilecek en uygun şekilde bu durumu çözmemiz gerekiyordu. Tabi bu durumun çözümü farklı yöntemlerle de olabilir fakat biz pod network cidr bloğunu Hepsiburada private networkünde bulunmayan boş farklı bir blok ile değiştirme üzerine yoğunlaştık. Bu makalemde de bu süreci neredeyse kesintisiz nasıl gerçekleştirdim bundan bahsedeceğim.
Başlayalım
Makalemin başında bahsettiğim gibi kubernetes clusterımızda Calico CNI kullanıyoruz. Yapacağım bu anlatım sadece Calico’yu kapsamaktadır.
Öncelikle kurulu olan calico üzerinde işlem yapabilmek için calicoctl deploy etmemiz gerekmetedir. Bunun için;
Sonraki komutları göndermeyi kolaylaştırmak için alias tanımlıyoruz.
Halihazırda var olan ip bloğunu görmek için aşağıdaki komutu kullanıyoruz.
Yeni ip bloğunu tanımlıyoruz.
Şimdi halihazırdaki ip bloğunu silmek için aşağıdaki komutları çalıştırıyoruz.
pool.yaml şu şekilde gözükecektir.
Şimdi yeni eklediğimiz ip poolu siliyoruz. ippool.yaml şu hali alacaktır.
Düzenleme bitti, şimdi varolan ippoolu silmek için aşağıdaki komutu çalıştırıyoruz.
Tekrardan ip polları listeliyoruz ve sadece yeni eklediğimizin kaldığına ve enabled olduğuna dikkat ediyoruz.
Tüm clusterdaki eskip ip blogunda çalışan podları listelemek için;
Namespace bazında toplu silmek için;
Calicoyu ve coredns’i restart edelim. Burası önemli.
İşlem bu kadar, sildiğiniz podların yerine oluşan yeni podların yeni oluşturduğunuz networkten ip aldığını göreceksiniz. Böylece “neredeyse” sıfır kesintiyle calico CNI kullandığımız kubernetes clusterımızın pod network cidr ip bloğunu değiştirmiş oluyoruz.
Bu makale : kubernetesturkey.com adresinden alıntıdır.