Kubernetes, ölçeklenebilir ve yüksek kullanılabilirliğe sahip uygulamaları dağıtmanın artık standart yoludur. Kubernetes, geliştiricilerin içeriğin sorunsuz bir şekilde sunulmasını sağlamak için gerektiğinde örnekleri hızlı bir şekilde başlatıp kapatmasına olanak tanır. Kubernetes hakkında daha fazla bilgi edinmek için ayrıntılı kılavuzumuzu takip edin: Getting to Know Kubernetes.
Helm, Kubernetes üzerinde uygulamalar yüklemek için kullanılan oldukça popüler bir paket yöneticisidir. Helm, Kubernetes kümelerinde uygulamaları dağıtmayı ve yönetmeyi ve bu süreci basitleştirmeyi amaçlar. Ayrıca Kubernetes için paketlenmiş, kullanıma hazır uygulamalara erişim sağlar. Bunlara Charts adı verilir. Kubernetes ve Helm'e aşina olmak, her DevOps uzmanının cephaneliğine önemli bir katkıdır.
WordPress, en popüler İçerik Yönetim sistemlerinden (CMS) biridir. Bunu MySQL veritabanı ile birleştirmek, yüksek performanslı ve son derece ölçeklenebilir web uygulamalarıyla sonuçlanır. MySQL'i harici tutmak, daha fazla uygulamanın kendi kullanım senaryoları için aynı veritabanından yararlanmasına da olanak tanır.
Bu yazıda, Helm paket yöneticisini kullanarak Kubernetes üzerinde WordPress kuracağız ve bunları harici bir MySQL sunucusuna bağlayacağız. Hadi başlayalım!
Gereksinimler
Bu eğitimin başarıyla tamamlanması için aşağıdaki yazılım kurulumuna ihtiyaç duyulacaktır:
- Çalışır durumda bir Kubernetes kümesi. Ubuntu üzerinde Kubernetes kurulum adımları için bu öğreticiyi takip edin.
- Kubernetes komut satırı aracı
kubectl. - Kurulu bir Helm paket yöneticisine ihtiyacınız olacak. Kullanıma hazır bir Helm'iniz yoksa, bunu GitHub – helm/helm: The Kubernetes Package Manager adresindeki resmi sürüm sayfasından indirebilirsiniz. Helm için adım adım bir kılavuzla başlamak için Introduction to Helm: Package Manager for Kubernetes.
- makalesini de okuyabilirsiniz. Root kullanıcısı ve şifresiyle birlikte MySQL'in kurulu olması gerekir. MySQL konusunda yeniyseniz, How to setup MySQL on a server and MySQL basics ve MySQL User – Create and Grant Permissions.
makalelerine göz attığınızdan emin olun. Ayrıca MySQL'e bağlı çalışan bir Kubernetes kümenizin olması gerekir. Birden fazla kümesi olan kullanıcılar için, MySQL'e bağlı mevcut kümeyi bildiğinizden emin olun. kubectl yapılandırma dosyanızda yapılandırılmış tüm farklı kümeleri görmek için aşağıdaki komutu çalıştırın:
|
1 |
kubectl config get-contexts |
Makinenizde aşağıdaki çıktıyı almanız gerekir:
|
Current |
Name |
Cluster |
AuthInfo |
Namespace |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
Kubernetes'i çalıştırmak için Docker Desktop kullandığımızdan, docker-desktop ifadesinin gösterildiğini görürsünüz. Değerleriniz farklı olabilir. Yıldız işareti (*) şu anda hangi kümenin varsayılan bağlam olduğunu gösterir. Mevcut bağlamı değiştirmeniz gerekirse şu komutu çalıştırın:
|
1 |
kubectl config use-context context-name |
Artık eğitimin adımlarını takip etmeye hazırsınız.
MySQL Kurulumu
İlk olarak, WordPress'e bağlanmak için MySQL'de özel bir kullanıcı oluşturacağız. Bu gereklidir çünkü WordPress kurulumumuz Kubernetes kümesi içindeki ayrı bir sunucuda yer alacaktır. MySQL sunucusundan, aşağıdaki komutla MySQL'e giriş yapın:
|
1 |
mysql -u root -p |
Sizden root şifresi istenecektir. Şifreyi girin ve bağlanacaksınız.
-
WordPress için özel bir veritabanı oluşturma
MySQL'de herhangi bir sayıda veritabanı olabilir. Diğer veritabanları uygulamalar arasında da paylaşılabilir. WordPress de kendi veritabanıyla birlikte gelir. Burada WordPress için özel bir veritabanı oluşturmamız gerekiyor. Bu özel veritabanını oluşturmak için MySQL bash üzerinde aşağıdaki ifadeyi çalıştırabilirsiniz:
|
1 |
CREATE DATABASE wordpress |
-
WordPress için özel kullanıcı oluşturma
Veritabanı oluşturulduktan sonra, bu veritabanı için özel bir kullanıcı oluşturacağız. Bu kullanıcıyı yeni oluşturduğumuz veritabanımıza bağlanmak için kullanacağız:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
Yukarıya güçlü bir şifre girin. WordPress için kullanıcıyı oluşturmuş olsak da şu ana kadar herhangi bir yetki eklemedik. Kullanıcılarımıza erişim ve DML (Veri İşleme) işlemleri için yetkiler vermemiz gerekiyor. İşleri basit tutmak adına, kullanıcılarımıza tüm yetkileri vereceğiz. Dikkatli olun, bu işlem Canlı (Production) ortamda önerilmez. MySQL kabuğunda aşağıdaki komutu çalıştırın:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Erişim izinlerini yöneten dahili MySQL tablolarını güncellemek için aşağıdaki ifadeyi kullanın:
|
1 |
FLUSH PRIVILEGES; |
Son olarak, MySQL kabuğunda aşağıdaki komutu çalıştırarak MySQL istemcisini kapatabilirsiniz:
|
1 |
Exit; |
-
Kullanıcımızı ve veritabanımızı doğrulama
Ardından, WordPress kullanıcısının WordPress veritabanına bağlanabildiğini doğrulamamız gerekiyor. Bunu yapmak için MySQL kabuğunu açın ve aşağıdaki komutu çalıştırın:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
MySQL sunucumuza uzaktan bağlantılara izin verme
Şu ana kadar çalışan bir WordPress kullanıcımız ve bir WordPress veritabanımız var. Ancak MySQL sunucumuz ve WordPress veritabanımız ayrı sunuculardadır. Bu nedenle, WordPress'in MySQL veritabanına bağlanabildiğinden emin olmamız gerekir. Bunun için, uzak ana bilgisayarlardan gelen bağlantılara izin vermek üzere MySQL yapılandırmamızı düzenlememiz gerekir. mysqld.cnf dosyasını düzenlemeniz gerekecektir. Linux tabanlı sistemlerde bu dosya şurada bulunur:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
Bundan sonra, dosyayı herhangi bir metin düzenleyici kullanarak açın ve bind-address satırını bulun. bind-address, MySQL'in dinleyebileceği IP'yi belirtir. Varsayılan olarak, MySQL yalnızca 127.0.0.1. adresini dinler. Dış ana bilgisayarlardan gelen bağlantılara izin vermek için, bind-address değerini 0.0.0.0. olarak değiştirin. Bu değişikliklerin geçerli olması için aşağıdaki komutu çalıştırarak MySQL sunucusunu yeniden başlatın:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip bilgisini ekleyin ve çalıştırın. Hata almadan bağlanabiliyorsanız devam edebilirsiniz.
WordPress Kurulumu ve Güncellenmesi
WordPress varsayılan olarak veritabanı olarak MariaDB kullanır. Kendi MySQL veritabanımızı kullanmak istediğimiz için bu veritabanını kullanmak istemiyoruz. Bu değişiklikle birlikte yönetici kullanıcı adını ve şifresini de yapılandırmamız gerekiyor. Bunu komut satırı parametrelerini uygulayarak yapacağız.
İlk olarak, my blog-settings adında yeni bir klasör oluşturun. Klasörün içinde values.yaml adında yeni bir dosya oluşturun. values.yaml dosyasına aşağıdaki içerikleri girin:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## WordPress Ayarları wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: Benim Blog! ## Veritabanı Ayarları externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Maria DB'yi Etkinleştir mariadb: enabled: false |
Bu dosya kendi kendini açıklamaktadır. Aşağıda MariaDB'yi devre dışı bıraktığımıza dikkat edin. Artık yapılandırmamız hazır olduğuna göre, çalıştırma zamanı geldi: helm bir WordPress kurulumu için. PowerShell'de aşağıdaki komutu çalıştırın:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. WordPress'in kullanıma hazır hale gelmesi biraz zaman alacaktır. Çalışan servisleri bulmak için aşağıdaki komutu çalıştırın:|
1 |
kubectl get services |
|
NAME |
TYPE |
CLUSTER-IP |
EXTERNAL-IP |
PORT |
|
myblog-wordpress |
ClusterIP |
10.96.0.1 |
<none> |
80:31403/TCP,443:30879/TCP |
Burada çalışan servisler hakkında çok yararlı bilgilere sahibiz. Harici IP ve Port'a dikkat etmemiz gerekiyor. Harici IP, WordPress'inizin sunulduğu IP'dir. Docker Desktop kullandığımız için harici IP altında none (hiçbiri) alıyoruz. Sisteminize bağlı olarak IP'yi alacaksınız. Web tarayıcınızı açın ve bu IP'yi girin. WordPress giriş sayfasını göreceksiniz:
Bunlar yukarıdaki YAML dosyasında belirttiğimiz kimlik bilgileridir. Bu kimlik bilgilerini girin; WordPress üzerinde web sitenizi yapılandırmaya ve yeni oluşturduğumuz MySQL veritabanında içerik depolamaya hazır olacaksınız.
WordPress'i Güncelleme
WordPress, güvenlik açıklarını kapatmak ve daha fazla özellik/hata düzeltmesi vb. sunmak için güncellemeler yayınlar. PowerShell'de aşağıdaki komutu çalıştırarak WordPress kurulumunu güncelleyebilirsiniz:
|
1 |
helm upgrade |
Güncellemeden önce, yayınların listesini görmek isterseniz aşağıdaki komutu çalıştırabilirsiniz:
|
1 |
helm list |
Aşağıdaki gibi bir çıktı alacaksınız:
|
1 2 3 |
Bekleyin sıkı iken biz alırken en son itibaren sizin grafik depoları… …Atla yerel grafik deposu …Başarıyla alındı bir güncelleme kaynağından ilgili “stable” grafik deposu |
Yeni bir WordPress deposu sürümünün mevcut olup olmadığını görmek isterseniz aşağıdaki komutu çalıştırabilirsiniz:
|
1 |
helm inspect chart stable/wordpress |
WordPress sürümünüzü en son WordPress grafiğine yükseltmek istediğinizde şunu çalıştırmalısınız:
|
1 |
helm upgrade -f values.yaml <your_name> stable/wordpress |
Yapılandırma değerlerinin değişmemesi için daha öncekiyle aynı yapılandırma dosyasını kullanmalıyız.
Bir Sürümü Geri Alma
Helm kullanarak her güncelleme gerçekleştirdiğinizde, Helm sürümün bir kontrol noktasını oluşturur. İşler beklendiği gibi gitmezse geri dönebilirsiniz. Sürümler karşılaştırılabilir ve geri alınabilir. Güncelleme işlemi herhangi bir sorundan dolayı ters giderse, önceki sürüme geri dönebilirsiniz. Geri almak için aşağıdaki komutu çalıştırın:
|
1 |
helm rollback release-name revision-number |
Bizim durumumuzda, önceki sürüme geri dönmek için aşağıdaki komutu çalıştırın:
|
1 |
helm rollback myblog 1 |
Geri alma işleminin başarıyla tamamlandığını doğrulamak için şimdi şu komutu çalıştırabilirsiniz: helm list komutu.
Sonuç
Bu kapsamlı eğitimde, MySQL'i nasıl kuracağınızı ve bu harici MySQL ile WordPress'i nasıl yükleyeceğinizi gösterdik. Helm paket yöneticisini kullanarak Kubernetes üzerinde WordPress kurulumu yaptık ve ayrıca WordPress güncellemelerini gerçekleştirdik.
Artık Helm kullanarak Kubernetes üzerinde kurulum yapmayı bildiğinize göre, burada durmayın. Kubernetes hakkında daha fazla bilgi edinmek için CloudSigma bloguna göz atmaktan çekinmeyin:
- Ubuntu 18.04 ile Kubernetes Kümesinde PHP Uygulaması Dağıtma
- Ubuntu 18.04 üzerinde Kubeadm Kullanarak Kubernetes Kümesi Nasıl Oluşturulur
- Docker Nedir? Docker Ekosistemine Genel Bir Bakış
Keyifli Çalışmalar!

Yorumlar
Henüz yorum yapılmamış. İlk siz olun.