:::: MENU ::::

Terraform Kullanarak AWS Data Lifecycle Manager Kullanmak

Bu blogda, AWS EC2’ların anlık görüntülerini almanıza, bunları birkaç gün boyunca saklamanıza ve ayrıca güncel olmayan yedekleri silmenize yardımcı olan AWS service Data Lifecycle Manager, hakkında konuşacağız .

Bu hizmeti kullanmanın avantajları şunlardır:

  1. Otomatik.
  2. Düzenli veri yedeklemelerini zorunlu kılarak değerli verilerin korunması.
  3. Güncel olmayan yedekleri otomatik olarak silerek maliyet tasarrufu.

Bu hizmeti EC2 panosunda Elastic Block Store menüsü altında bulabilirsiniz.

Şekil 1: EC2 dashboard > EBS > Lifecycle Manager

Manuel yöntemle giderseniz, sizden bazı bilgileri doldurmanız istenecek ve bu sizin için policy oluşturacaktır. Ancak burada, tüm bu politikayı Terraform kullanarak oluşturacağız . Altyapınızı verimli bir şekilde dağıtmak için kullanılabilecek harika bir açık kaynaklı ‘kod olarak altyapı’ (IaC) aracıdır. Bunun anlamı, yerel bilgisayarınızdan bir Terraform kodu çalıştırırsınız ve kod, örnekleri ve diğer kaynakları sizin için otomatik olarak dağıtır.

Continue Reading

Kubernetes Nginx Controller Kurulumu ve Ingress Kullanımı

Bu yazımda, Nginx ingress controller kullanarak Kubernetes’de nasıl ingress kullancağımızı ve trafiği joker karakter’li DNS kaydı kullanarak deployment’lara nasıl yönlendireceğinizi öğreneceksiniz.

Kubernetes ingress’in nasıl çalıştığını anlamak istiyorsanız, lütfen Yeni Başlayanlar İçin Kubernetes Ingress Eğitimi’daki bu blog gönderisini okuyun.

İşte Nginx ingress controller kullanan Kubernetes ingress örnek mimarisi

kubernetes ingress controller

Ön şartlar:

  1. Bir Kuberntes cluster.
  2. kubectl yardımcı programı.
  3. Kubernetes cluster’a yönetici erişimi.
  4. Ingress controller load balancer’ına işaret etmek için geçerli bir etki alanı.

Not: Bu eğitici, AWS üzerinde buluan bir kubernetes cluster’ında denendi. Mantıken tüm bulut ortamlarında çalışmalıdır. Eğer herhangi bir hatayla karşılaşırsanız, kurulumda bazı ayarlamalar yapmanız gerekebilir.

Nginx Ingress Controller Kurulumu

İki adet nginx ingress controller vardır.

  1. Kubernetes topluluğu tarafından sunulan Nginx ingress controller
  2. Nginx Inc tarafından üretilen Nginx ingress controller

Ben Kubernetes topluluğu tarafından sunulan Nginx ingress controller‘ı kullanacağım.

Ingress controller’ın belirli bir namespace, service account, cluster role vb. bağlarına, yapılandırmalara İhtiyacı vardır. Resmi ingress deposundan yaml dosyasını kullanarak belirtilen tüm kubernetes nesnelerini oluşturabilirsiniz .

Resmi ingress deposundaki mandatory.yaml dosyasını kullanarak ingress controller’ı deploy edelim.

Kubectl kullanarak Nginx ingress deployment oluşturalım.

İpucu: Eğer 1.14 önceki bir Kubernetes sürümünü kullanıyorsanız, mandatory.yaml  dosyasının 217. satırında kubernetes.io/os satırını beta.kubernetes.io/os ile değiştirin. bkz. Etiketler.

Dosyayı indirip vim ile düzenleyelim.

217. satırda bulunan kubernetes.io/os: linux kısmı beta.kubernetes.io/os: linux ile değiştirip dosyayı kaydedip çıkalım ve bu şekilde deployment oluşturalım.

sonrasında bu şekilde bir output görmeniz gerekiyor.

Ingress Controller pod’larının doğru ayarlandığından emin olmak için kontrol edelim.

Ingress controller için LoadBalancer service’ini ayarlama

Sonraki adım, nginx ingress deployment’ını kümenin dışına erişime açmak için Type’ı Loadbalancer olan bir service oluşturmaktır.

Bu kurulumda, ELB’yi hangi katmanda (L4 veya L7) yapılandırmak istediğimizi seçmenizi gerektirir:

  • Layer 4 : 80 ve 443 numaralı bağlantı noktaları için listener protokolü olarak TCP kullanın.
  • Layer 7 : 80 numaralı bağlantı noktası için listener protokolü olarak HTTP kullanın ve ELB’de TLS’yi sonlandırın

Ben layer 7 olarak bir yapılandırma yapacağım. bkz

Adım 1: daha önceden oluşturduğumuz nginx-configiration configmap aşağıdaki şekilde güncellememiz gerekiyor.

Adım 2: Yerel olarak bir proje dizini oluşturun ve bu dizine geçin.

Adım 3: nginx-ingress.yaml adlı bir dosya oluşturun

Adım 4: Aşağıdaki içeriği dosyaya kopyalayın.

Not : Etiketlerin altındaki ek açıklamalar, nginx denetleyicisi dağıtımıyla entegrasyon için çok önemlidir.

Adım 5: Ingress Controller service’ini oluşturun.

Adım 5: Oluşturulan service’i kontrol edin.

Bir Alan Adını Loadbalancer IP’siyle Eşleme

Ingress ayarlarımızın çalışmasını sağlamak için, loadbalancer IP’siyle (veya CNAME) bir alan adı eşlememiz gerekir. Bunu iki şekilde yapabilirsiniz.

Tek DNS Eşlemesi:

Tek etki alanını doğrudan yük dengeleyici IP’sine A kaydı olarak eşleyebilirsiniz. Bunu kullanarak, giriş denetleyicisi için yalnızca bir etki alanına ve birden çok path’e dayalı trafik yönlendirmesine sahip olabilirsiniz.

Örneğin,

www.omeroner.com –> Loadbalancer IP / CNAME

Bu modeli kullanarak yola dayalı yönlendirmeye sahip olabilirsiniz.

Birkaç örnek,

http://demo2.omeroner.com/app/api
http://demo2.omeroner.com/app1/api
http://demo2.omeroner.com/app2/api

Joker Karakter DNS Eşlemesi:

Bir joker karakter DNS’sini load balancer ile eşlerseniz, giriş sırasında dinamik DNS uç noktalarınız olabilir.

Örneğin,

*.omeroner.com

Bu şekilde, tek giriş denetleyicisi aracılığıyla birden çok dinamik alt etki alanına sahip olabilirsiniz ve her DNS’nin kendi yol tabanlı yönlendirmesi olabilir.

Örneğin,

http://demo.omeroner.com/api
http://demo.omeroner.com/api/v1
http://demo.omeroner.com/api/v2

http://demo2.omeroner.com/api
http://demo2.omeroner.com/api/v1
http://demo2.omeroner.com/api/v2

http://test.omeroner.com/
http://test2.omeroner.com/
http://test3.omeroner.com/

Demo amaçlı olarak, bir joker karakter DNS’sini LoadBalancer IP/CNAME ile eşledik. DNS sağlayıcınıza bağlı olarak, bu ayarı yapabilirsiniz.

Demo Uygulama Kurulumu

Test amacıyla, bir demo uygulaması deploy edip bir ClusterIp service’i ekleyeceğiz.

1.Adım: Dev adlı bir ad alanı oluşturun

Adım 2: hello-app.yaml adlı bir dosya oluşturun.

Adım 3: Aşağıdaki içeriği kopyalayın ve dosyayı kaydedin.

Adım 4: Kubectl kullanarak deployment oluşturma.

Dağıtım durumunu kontrol edin.

Adım 5: hello-app-service.yaml adlı bir dosya oluşturun.

Adım 6: Aşağıdaki içeriği kopyalayın ve dosyayı kaydedin.

Adım 7: Kubectl kullanarak service’i oluşturun.

Servis durumunu kontrol edin

Kubernetes Ingress Oluşturma

Şimdi hello uygulamamıza bir DNS kullanarak erişmek için bir ingress nesnesi oluşturalım. Bir ingress nesnesi, yönlendirme kurallarının tanımından başka bir şey değildir.

Ingress nesnesinin Nginx controller’ına nasıl bağlandığını merak ediyorsanız ingress controller pod kuralları denetlemek için ingress API’sine bağlanır ve nginx.conf öğesini buna göre günceller.

Adım 1: ingress.yaml adlı bir dosya oluşturun

Adım 2: Aşağıdaki içeriği kopyalayın ve dosyayı kaydedin.

 Dns’de *.omeroner.com ile load balancer ip/cname ini eşleştirdiğimizden trafik nginx controller servisine gelecek.

Adım 3: Yapılandırmaları kontrol etmek için oluşturulan oluşturulan giriş nesnesini açıklayın.

Artık test.omeroner.com etki alanına erişmeye çalışırsanız (etki alanı adınızla değiştirmeniz gerekir.), deploy ettiğimiz örnek uygulamamıza erişebilmeniz gerekir.


Yeni Başlayanlar İçin Kubernetes Ingress Eğitimi

Kubernetes Ingress, dış kaynaklardan kubernetes cluster’daki service’lere kurallar ekleyerek trafik yönlendirmek için kullanılan bir kaynaktır.

Bu Kubernetes giriş eğitim serisinde, dış trafiği Kubernetes deployment’larına yönlendirmek için kullanılan ingress ve ingress controller kavramını öğreneceksiniz. 

Kubernetes Ingress Eğitimi

Başlamak için iki önemli şeyi anlamanız gerekir.

  1. Kubernetes Ingress
  2. Kubernetes Ingress Controller

Bu kavramların her birine bir göz atalım.

Kubernetes Ingress:

Kubernetes Ingress, trafiği harici bir kaynaktan cluster içinde bulunan service endpoint’lerine yönlendirmek için kurallara sahip olabileceğiniz yerel bir kubernetes kaynağıdır.Ingress’de belirtilen kuralları yönlendirmek için bir ingress controller gerektirir. Bir ingress nesnesi aşağıdakine benzer.

Yukarıdaki ingress, test.omeroner.com‘a yapılan tüm çağrıların development namespace’inde bulunan hello-service ismindeki service’e yönlendirilmesi gerektiği anlamına gelir.

Ingress hakkında anlaşılması gereken önemli noktalar.

  • Service’lerin dağıtıldığı namespace’de ingress kuralları oluşturmalısınız. Trafiği, ingress’e sahip olmadığınız farklı bir namespace’deki bir service’e yönlendiremezsiniz.
  • Bir ingress, trafiği yönlendirmek için bir ingress controller gerektirir.
  • Harici trafik, ingress API’na vurmaz, bunun yerine ingress controller service’ine vurur

Kubernetes Ingress Controller

Ingress controller, genellikle cluster’da dağıtılan bir proxy service’idir.  service ile expose edilmiş kubernetes deployment’dan başka birşey değildir. Aşağıda kubernetes için kullanılabilen ingress controller bulunmaktadır.

Genellikle, Nginx bir ingress controller olarak yaygın olarak kullanılmaktadır. Nginx ingress controller şu şekilde çalışır.

  • Nginx controller pod’unun içindeki nginx.conf dosyası, Kubernetes ingress API’siyle konuşabilen ve trafik yönlendirmesi için en son değerleri gerçek zamanlı olarak alabilen bir go template’idir.
  • Nginx controller, trafik yönlendirmesi için oluşturulmuş bir kural olup olmadığını kontrol etmek için Kubernetes ingress API’sı ile konuşur.
  • Herhangi bir ingress kuralı bulursa , go template’inde kullanan pod içindeki bir dosya olan nginx.conf nginx controller yapılandırmasına uygulanır .

Pod’a exec kullanarak bağlanır ve /etc/nginx/nginx.conf dosyasını kontrol ederseniz, conf dosyasında uygulanan ingress nesnesinde belirtilen tüm kuralları görebilirsiniz.

Örnek olarak;

yukardaki komutun sonucunda gelen pod ismi ile aşağıdaki gibi ilgili config dosyası görünebilir.

İşte kubernetes cluster’da ingress kurulumunu açıklayan mimari diyagram.


setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory Hatası ve Çözümü

setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory:

 

Böyle bir hata aldığınızda aşağıdaki çözümü uygulayabilirsiniz.

/etc/ssh/ssh_config dosyasında aşağıdaki içeriği düzenleyerek çözüm bulabilirsiniz.

SendEnv LANG LC_ * değerin  

 


Mysql Root Parolası Restleme Bash Script

Mysql root parolasını reset’lemek için kullanabileceğiniz bir script 🙂

github linki…

 


Komut Satırından Netapp Snapshot Restore

Netapp storage kullanıyorsak snapshot’ın nekadar değerli bir nimet olduğunu söylemeye gerek yok. Bazen bir volume için aldığımız ss’ı başka bir volume restore etme ihtiyacı olabilir. Bu durumda aşağıdaki adımları takip edebilrisiniz.

 


nrpe installation error(configure: error: Cannot find ssl libraries)

nrpe installation error(configure: error: Cannot find ssl libraries)
HATA:
ÇÖZÜM:

 


Servis Durum Kontrol Script

Çok gelişmiş monitoring sistemleri olmasına rağmen bazen ihtiyaç olduğunda kullanabileceğiniz,linux ortamlarda çalıştırdığınız servisleri check etmek için basit bir Servis Durum Kontrol Scripti;

Github linki;

https://github.com/omeroner/sysadmin/blob/master/scripts/bash/service_check.sh


Nginx’e Letsencrypt ile SSL Kurmak

Web sitenizin güvenliğini , ziyaretçilerinizin sitenize olan güvenini  artırabilir. Web sunucunuzda şifrelemenin(https) ayarlanması, genellikle çoğu kişiye karmaşık ve pahalı gelmiştir. Letsencrypt,  bu karmaşıklığı sadeleştirerek bunu değiştirmeyi hedefliyor. Basit, otomatikleştirilmiş komutlarla sertifikaların alınmasına ve yüklenmesine izin veren açık ve ücretsiz bir projedir.

Letsencrypt, IdentTrust tarafından çapraz imzalanan ve son sertifikalarının tüm önemli tarayıcılar tarafından kabul edilmesine izin veren sertifikaları verebilen yeni bir Sertifika Yetkilisidir. Bu kılavuz, certbot istemcisi  sürüm 0.11.1’i yükleme adımlarını ve nginx çalıştıran CentOS 7 sunucunuzdaki sertifikaları yönetmek için Nginx’e Letsencrypt ile SSL Kurmak için gerekli adımları  özetlemektedir  .

certbot kurulumu

nginx kurulumu

güvenlik duvarı yapılandırması

centos üzerinde güvenlik duvarı varsa :

certbot  oluştur

nginx yapılandırmasını güncelle

nginx  servisini başlatma

SSL için otomatik yenileme oluştur

letsencryst’i oluşturduğumuz sertifikanın bir süresi var , otomatik yenilemek için yenileme komut dosyası oluştur

yenileme script’in içeriği

günde 2 kez güncellemeyi başlat

Manuel yenileme


Linux Komut Satırında Kullanıcıları Listelemek

Linux’ta iki tür kullanıcı bulunur; (useradd komutu kullanılarak yaratılan) ve sistem kullanıcıları. Sistem kullanıcılarının çoğu, çeşitli paket yüklemeleri sırasında oluşturulan ve OS’yi kurarken oluşturulan kullanıcılardır. Sistem kullanıcıları, /etc/login.defs dosyasında tanımlandığı gibi düşük UID değerlerine (genellikle 0-99) sahip olmalıdır. Continue Reading


Sayfalar:1234567...17