Last updated on Ağustos 24, 2022
Merhabalar. Değerli okuyucu bugün Linux altyapısına sahip olan UbuntuServer 20.04 LTS işletim sisteminde Docker ve Docker Compose uygulamalarını kullanarak Kafka Uygulamasını ve ona bağlı olan ZooKeeper servisini kuracağız. Öncelikle Kafka nedir onu anlamamız gerekiyor. Gelin Kafka uygulamasına genel bakış atalım.
Kafka Nedir?
Apache Kafka, Apache Yazılım Vakfı tarafından geliştirilen, Scala ve Java ile yazılmış açık kaynaklı bir akış işleme yazılım platformudur. Proje, gerçek zamanlı ve veri akışlarının işlenmesi için birleşik, yüksek verimli, düşük gecikme süreli bir platform sağlamayı amaçlamaktadır.
Kafka, Kafka Connect aracılığla harici sistemlere bağlanabilir ve Java akış işleme olan Kafka Streams’i sağlar. Kafka, verimlilik için optimize edilmiş kili TCP tabanlı bir protokol kullanır ve ağ gidiş dönüşünün ek yükünü azaltmak için mesajları doğal olarak bir araya getiren bir “mesaj kümesi” soyutlamasına dayanır.
Peki tanımı anladıktan sonra biz ne için kullanacağız sorusuna dönelim. Kafka’ın önemli işlerinden birisi ise büyük projelerde donanım ile yazılım arasındaki köprüyü sağlar. Aslında IT Mühendisinin temel görevi uygulamayı hayata geçirmek düzenlemek sorunları gidermek ve yönetebilmektir. Şimdi gelin birlikte Kafka ve Zookeeper’i Docker’ın içine kuralım.
Kafka ve Zookeeper Kurulumu
Proxmox’ta VM’in Kurulması ve Linux Ubuntu Server 20.04 LTS İşletim Sisteminin Kurulması
Burada yine önceki yazılarımda yaptığım gibi Proxmox fiziksel sunucusunda yeni bir VM açacağız. Sonrasında o VM’in içine Linux altyapısını kullanan Ubuntu Server 20.04 LTS işletim sistemini entegre edeceğiz. Bu adımı hızlıca geçeceğim çünkü bunu daha önce bir blog yazısında yazmıştım. İncelemek isterseniz buradan yazıya ulaşabilirsiniz.
Linux Ubuntu Server 20.04 LTS İşletim Sistemine Docker ve Docker Compose Uygulamasının Kurulması
Yukarıdaki “Proxmox’ta VM’in Kurulması ve Linux Ubuntu Server 20.04 LTS İşletim Sisteminin Kurulması” başlığında bahsettiğim gibi aynı şekilde bunu ayrıntılı anlattığım bir blog yazım var. İncelemek isterseniz buradan yazıya ulaşabilirsiniz.
VM’e Uzaktan Giriş ve Gerekli İlk Komut Satırları
Öncelikle gerekli tüm kurulumları yaptıktan sonra Ubuntu İşletim Sisteminde /home/$USER (bu bölüm sizin hangi kullanıcıyla giriş yaptıysanız oradasınız.) bölümünde olacağız. Buraya tabii ki uzanktan erişebilmek gerekiyor. Bunun için ben Putty uygulamasını kullandım. Sonra Putty ile giriş yaptığımız VM’e bir klasör açacağız.
Açmamızın temel sebebi docker.compose.yml dosyasını daha dolay bulabilmemiz için. Linux Ubuntu Server 20.04 LTS İşletim sistemindeki temel komutları başka bir blog yazısında anlatacağım. Şimdilik şu komut satırını yazarak klasörümüzü açıyoruz.
sudo mkdir docker
cd docker/
Girdikten sonra “ls” veya “ll” komutlarıyla birlikte klasörün içinde neler olduğu hangi izinlerin olduğu ve dosyanın hangi kullanıcı ile açılmış olduğunu görebiliriz.
Docker Compose Dosyasının oluşturulması
Burada iki komut satırı bir dosyayı Linux ortamında açmaktadır. Bunlar “vi” ve “nano” komutudur. Ben burada “nano” komutunu kullanarak dosyayı açacağım.
sudo nano docker-compose.yml
İlk bu komutu kullandığımızda eğer böyle bir dosya yoksa içeriğinde herhangi bir bilgi yoktur. Kafka ve Zookeeper uygulamalarını Dockerin içine işlemek için şu komut satırlarını dosyanın içine aktarıyoruz.
version: ‘2’
services:
zookeeper:
image: wurstmeister/zookeeper:3.4.6
ports:
– “2181:2181”
kafka:
image: wurstmeister/kafka
ports:
– “9092:9092”
expose:
– “9093”
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://172.16.64.145:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: “topic_test:1:1”
volumes:
– /var/run/docker.sock:/var/run/docker.sock
Dosyayı Oluşturduktan Sonra Dikkat Edilmesi Gereken Durumlar
Eğer putty kullanıyorsanız ve dosyanın içindeki bilgileri kaydedip çıkmak istiyorsanız şu tuşların kombinasyonunu uygulamamanız lazım. Bunlar “ctrl + s” ve “ctrl +x” komutlarıdır.
“Ufw” komutunu kullanmadan önce komut satırları içinde önemli olan ve bilgilerinize göre şekillenecek bir satır vardır. Bu satır “KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://172.16.64.145:9092” komutudur. Bunun içinden “OUTSIDE://172.16.64.145:9092” komut satırındaki “172.16.64.145:9092” IP adresidir. Bu size göre şekillenmesi gerekmektedir. Bunu unutmayın :).
Burada önemli olan noktaları söylemekte fayda vardır. Bunlardan ilki dosyanın içine yazılan portları Linux Ubuntu Server İşletim Sisteminde dış dünyaya açmak gerekmektedir. Bunun için Linux’te “ufw” komutu kullanılmaktadır. MacOS ve CentOS İşletim Sisteminde ise “firewalld” komutu uygulanmaktadır. Ben Linux Ubuntu İşletim Sistemini kullandığım için “ufw” komutunu kullanacağım. VM ilk açıldığında ufw yani Linux’ün güvenlik duvarı etkin değildir. Bunun için şu komut satırları uygulanmaktadır.
sudo ufw enable
sudo ufw allow 2181/tcp
sudo ufw allow 9092/tcp
sudo ufw allow 9093/tcp
Tüm aşamaları geçtikten sonra “docker-compose.yml” dosya konumundayken şu komut satırını uygulamanız gerekmektedir.
Kafka ve Zookeeper Uygulamaların Yüklenmesi
sudo docker-compose up -d
Bu komut satırı sayesinde “docker-compose.yml” dosyasının içindeki veriler işlenmeye başlayacaktır. yükleme bittikten sonra hata çıkabilir. Hatanın nedenlerinden bir tanesi “OUTSIDE://172.16.64.145:9092” bölümündeki IP’yi yanlış yazmış veya eksik yazmış olabilirsiniz. Onun haricinde başka bir hata beklemeniz olanaksızdır. Yükleme bittikten sonra hatanın çıkıp çıkmadığını öğrenmek için şu komut satırı uygulanması gerekmektedir.
sudo docker ps
Yukarıdaki gösterdiği gibi komutların çalışması gerekmektedir. Hatayı nasıl göreceğim diye bir soru sorabilirsiniz. Hata genellikle “sudo docker ps” komutunu yazdıktan sonra görseldeki gibi bir şey çıkmayacak ve aslında hiçbir şey çıkmayacaktır.
Gelelim Docker’in içindeki uygulamanın çalışıp çalışmadığını test etmeye. Bunun için Conduktor uygulamasını kullanacağız.
Uygulamada bu görüntüyü görebilmek için Conduktor sitesine üye olmanız gerekmektedir. Kafka uygulamamızın çalışıp çalışmadığını görmek için “New Kafka Cluster” bölümüne tıklamamız gerekmektedir.
Açılan ekranda “Kafka Cluster” bölümünde Cluster Name kısmına istediğiniz kelime veya kelime gruplarını giriyoruz. Boostrap Servers bölümüne “VM_IP_Adresi:9092” yazmanız yeterlidir. Zookeeper bölümünde ise yine aynı şekilde “VM_IP_Adresi:2181” dedikten sonra Test Zookeeper butonuna tıklayıp bağlanıp bağlanmadığını görebilirsiniz. Eğer test başarısız diyorsa yukarıdaki komutu yani “sudo ufw allow 2181/tcp” komutunu uygulamamışsınız demektir. Son olarak “Test Kafka Connectivity” butonuna basıp bağlanıp bağlanmadığını görebilirsiniz. Eğer tüm testler başarılı derse Save butonuna basıp çıkış yapabilirsiniz.
Son olarak Cluster Name bölümüne ne verdiyseniz aşağıdaki resimde o bölüme tıklamanız gerekmektedir. sonrasında şu bölüm çıkmaktadır.
Eğer Consumer bölümünü Docker’da oluşturmak istiyorsanız buraya tıklayarak bakabilirsiniz.
Tüm bu işlemlerden sonra Kafka ve Zookeeper uygulamalarınının tamamını kurmuşsunuz demektir.
Sonuç olarak Kafka ve Zookeeper uygulamalarını Ubuntu Server 20.04 LTS İşletim Sisteminin içinde bulunan Docker uygulamasının içine kurmuş olduk. Kurulumun tamamı Youtube kanalımda yayınladım. Buradan ve linke tıklayarak kanalımdaki başka videoları da izleyerek destek olabilirsiniz.
İlk Yorumu Siz Yapın