Kubernetes Nedir?
Kubernetes, konteyner uygulamalarını otomatikleştirmek ve yönetmek için kullanılan açık kaynaklı bir platformdur. Otomasyon, ölçeklenebilirlik ve hizmetlerin sürekli entegrasyonu gibi özellikler sunar. Kubernetes, konteynerlerin dağıtımını, ölçeklenmesini ve yönetimini etkili bir şekilde gerçekleştirmek için tasarlanmıştır. Çeşitli bulut ortamlarında ve yerel sunucularda çalışabilir.
MySQL Nedir?
MySQL, popüler bir açık kaynaklı veritabanı yönetim sistemidir. SQL (Structured Query Language) kullanarak veri işleme, kaydetme ve yönetme işlemleri yapar. MySQL, birçok geliştirici ve işletme tarafından tercih edilen, yüksek performans ve güvenilirlik sunan bir sistemdir.
MySQL’in Kubernetes Üzerinde Çalıştırılması
MySQL’in Kubernetes üzerinde çalıştırılması, yüksek kullanılabilirlik, ölçeklenebilirlik ve kolay yönetim sağlamak amacıyla tercih edilmektedir. Kubernetes, MySQL uygulamasının yük dengelemesini, yeniden başlatılmasını ve güncellenmesini otomatikleştirir. Aşağıda, MySQL’in Kubernetes ortamında çalıştırılması için gereken adımlar açıklanmaktadır.
Adım 1: Kubernetes Ortamının Hazırlanması
MySQL’i Kubernetes üzerinde çalıştırmadan önce, bir Kubernetes kümesi oluşturulmalıdır. Bu amaçla, Minikube, Google Kubernetes Engine (GKE) veya Amazon EKS gibi platformlar kullanılabilir. Seçilen platforma göre bir adet Kubernetes kümesi kurulmalıdır. Ayrıca, kubectl komut satırı aracı da kurularak Kubernetes ile etkileşim sağlanmalıdır.
Adım 2: MySQL Konfigürasyon Dosyasının Oluşturulması
MySQL için bir yapılandırma dosyası (YAML dosyası) oluşturulmalıdır. Bu dosyada MySQL’in konteyner görüntüsünü ve gerekli konfigürasyonları belirten bilgiler yer almalıdır. Basit bir MySQL yapılandırma dosyası aşağıdaki gibi olabilir:
“`yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
– name: mysql
image: mysql:5.7
env:
– name: MYSQL_ROOT_PASSWORD
value: rootpassword
ports:
– containerPort: 3306
“`
Adım 3: MySQL Servisinin Oluşturulması
Kubernetes ortamında MySQL’in erişilebilir olması için bir servis tanımlanmalıdır. Bu, MySQL uygulamasına dışarıdan erişim sağlayacaktır. Aşağıdaki örnek, MySQL servisini tanımlayan bir YAML dosyasıdır:
“`yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
type: ClusterIP
ports:
– port: 3306
targetPort: 3306
selector:
app: mysql
“`
Adım 4: MySQL Uygulamasının Dağıtılması
Yapılandırma dosyaları oluşturulduktan sonra, Kubernetes’e bu dosyaları uygulayarak MySQL uygulaması dağıtılmalıdır. Aşağıdaki komutla dağıtım işlemi gerçekleştirilebilir:
“`
kubectl apply -f mysql-deployment.yaml
kubectl apply -f mysql-service.yaml
“`
Bu komutlar, MySQL uygulamasını Kubernetes kümesine dağıtır ve gerekli servis ayarlarını yapar.
Adım 5: MySQL ile Etkileşim
MySQL servisi oluşturulduktan sonra, MySQL’e erişim sağlanabilir. Bunun için öncelikle etkileşimli bir terminal konteyneri oluşturulmalıdır. Aşağıdaki komutla MySQL servisine erişim sağlamak mümkündür:
“`
kubectl exec -it
“`
Burada `
Yedekleme ve Kurtarma
Kubernetes üzerinde çalışan MySQL uygulamasında veri kaybını önlemek için düzenli yedekleme ve kurtarma planları oluşturulmalıdır. MySQL verileri genellikle bir Persistent Volume (PV) aracılığıyla depolanır. Bu sayede verilerin Kubernetes pod’ları arasında kalıcı olması sağlanır. Yedekleme, mysqldump gibi araçlarla gerçekleştirilerek, veritabanının düzenli olarak yedeklenmesi sağlanabilir.
MySQL ile Ağ Geçidi Kullanımı
Kubernetes içerisinde MySQL ile diğer uygulamalar arasında iletişim sağlamak amacıyla bir ağ geçidi (Ingress) yapılandırması yapılabilir. Bu, dış dünyadan MySQL sunucusuna erişimi kontrol etmeye yarar. Ancak, bu genellikle ek güvenlik önlemleri gerektirir ve yalnızca gerektiğinde gerçekleştirilmelidir.
İzleme ve Yönetim
Kubernetes üzerinde çalışan MySQL uygulaması, izlenmeli ve yönetilmelidir. Bu amaçla Prometheus veya Grafana gibi araçlar kullanılabilir. Uygulama metrikleri ve performansı izlenerek, gerektiğinde müdahaleler yapılabilir.
Sonuç
MySQL’in Kubernetes üzerinde çalıştırılması, çevik ve yüksek ölçeklenebilir bir veri yönetimi sunar. Uygulamanın dağıtımı, yönetimi ve izlenmesi, Kubernetes tarafından otomatikleştirilerek yönlendirilir. Doğru yapılandırma ve izleme ile güçlü bir veritabanı hizmeti sağlanabilir.