Linux-Centos

Docker Swarm Nedir? Centos 7 Docker Swarm Oluşturma

Docker Swarm Nedir?

Docker Swarm, fiziksel veya sanal sunucuların bir küme(cluster) halinde Docker uygulamalarını yönetildiği orkestrasyon aracıdır. Docker Swarm ile yoğun sunucu yüklerini istediğiniz şekilde dağıtan, bir sorun olması halinde sistemin sürekli çalışır halde kalmasını sağlayan bir alt yapı oluşturmamızı sağlar.

Docker Swarm ile;

  1. Container Orchestrating
  2. Ölçekleme
  3. Güvenlik
  4. Yük Dağılımı (Load Balancing)
  5. DNS Sunucusu

Docker Swarm'ın sağladıkları;

Swarm ile Hangi konteyner hangi makinede çalışacak.
Hangi konteyner’den kaç kopya(replica) çalışacak.
Makinelerden biri düştüğünde onun çalıştırdığı konteynerler nerede tekrar ayağa kaldırılacak.
High Availability (Yüksek kullanılabilirlik)
Yük dağılımı (Load balancing) özelliklerini sağlar.

Hostname IP Adresi Özellik
Master Sunucu 157.230.21.198 Manager
Node Sunucu 142.93.169.168 Worker

Sunucuları güncelleyip docker engine kurulumu yapıldıktan sonra Docker Swarm için token oluşturulmalıdır.

Master Sunucuda;

 

docker init –advertise-addr 157.230.21.198:2377 --listen-addr 157.230.21.198:2377

Komutu çalıştırılarak Docker Engine Master Sunucu olduğu belirtilir. Bunun sonunda token oluşturmuş olur.

Docker Engine swarm için 2 tip token oluşturur. Master Sunucu için Master Token, node sunucuları için ise Worker Token.

Node1 ve Node2 sunucuları worker olarak tanımlanacağından dolayı.

Master Sunucuda;

 

docker join-token worker

 

komutu çalıştırılarak worker için gerekli token elde edilir.

Node1 Sunucusu Worker olarak ayarlamak için; Node1 Sunucusunda;

docker swarm join \
--token SWMTKN-1-50lcx78nk4e3azfrv4pbw12gvizkonz112y9j0yqxs30r8za76-emzbxep991nil7d5iim3s3251 \
157.230.21.198:2377 –advertise-addr 142.93.169.168 –listen-addr 142.93.169.168

Komutu çalıştırılarak node1 sunucusu master sunucuya worker olarak eklenir.

Master Sunucuda;

Docker Swarm Genel Yapısı:

docker swarm init –advertise—addr Master_Sunucu_IP –listen-addr Master_Sunucu_IP ile docker swarm oluşturma

docker swarm init TOKEN_BİLGİSİ Master_Sunucu_IP –advertise-addr WORKER_IP –listen-addr WORKER_IP ile worker veya master ekleme

 

 

Centos 7 Docker Kurulumu

Centos 7 İşletim Sistemini Güncelleyelim

yum update -y

Docker Kurulumu Yapalım

yum install docker

Kurulum Tamamlandıktan Sonra Docker Servisini Çalıştıralım ve Sürekli Hale Getirelim

systemctl start docker 
systemctl enable docker

Docker Servisini Çalıştırdıktan Sonra Örnek Bir Docker Container Oluşturalım

docker container run hello-world

Container Çalıştırma Komutundan Sonra Görseldeki Çıktıyı Aldıysanız Kurulum Başarılı Olmuş Demektir

Linux Disk Kullanım Kontrolü - Bash Script

Linux tabanlı sunucunuz var ve disk kullanım alanını sürekli takip etmeniz gerekiyorsa küçük bir bash script işinizi kolaylaştırabilir,

Bash script kullanarak disk kullanım kontrolü sağlayabilir belli bir eşiğin üzerinde sistemin bize mail atmasını sağlayabiliriz,

Aşağıdaki adımları izleyerek bash scriptinizi oluşturabilirsiniz,

# vi disk_kontrol.sh //Bash script dosyamızı oluşturuyoruz.

#!/bin/sh
# mail gönderileccek olan admin mail adresimizi yazıyoruz
ADMIN="destek@sunucupark.com"
# Disk kullanım alanı yüzde kaç olduğunda bize mail atılsın
ALERT=90
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  partition=$(echo $output | awk '{ print $2 }' )
  if [ $usep -ge $ALERT ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
     mail -s "Alert: Almost out of disk space $usep" $ADMIN
  fi
done

Scriptimizi oluşturduk kaydedip çıkış yapıyoruz,

Bash scriptimizi çalıştırmak için # sh disk_kontrol.sh komutunu çalıştırabiliriz,

Tabiki bu komutu bir crona bağlayıp her gün sistemin otomatik olarak çalıştırmasını sağlamalıyız,

# crontab -e  //komutunu kullanarak cron oluşturabilirsiniz.

10 0 * * * disk_kontrol.sh

Örnek cronu kendinize göre düzenleyerek crontab'a ekleyebilirsiniz.

SunucuPark tüm Linux Sanal Sunucu paketlerinde bu bash scripti kullanabilirsiniz.

 

 

Faydalı Olması Dileğiyle..

SunucuPark Destek

 

 

Kubeadm kullanarak Centos 7'ye Kubernetes Cluster Kurulumu

Kubeadm kullanarak Centos 7'ye Kubernetes Cluster Kurulumu

Role FQDN IP OS RAM CPU
Master kmaster.example.com 192.168.100.10 CentOS 7 2G 2
Worker kworker.example.com 192.168.100.20 CentOS 7 1G 1

Kmaster ve Kworker Sunucuları için yapılacaklar.

 Güvenlik Duvarını Devre Dışı Bırakma

systemctl disable firewalld; systemctl stop firewalld

Swap Devre Dışı Bırakma

swapoff -a; sed -i '/swap/d' /etc/fstab

SElinux Devre Dışı Bırakma

setenforce 0
sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

Kubernetes Ağ İletişimi için sysctl ayarlarını güncelleyin

cat >>/etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

Docker Engine Kurulumu

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce-19.03.12
systemctl enable --now docker

Kubernetes Kurulumu

yum deposunu ekleme

cat >>/etc/yum.repos.d/kubernetes.repo<<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

Kubernetes componentlerinin kurulumu

yum install -y kubeadm-1.18.5-0 kubelet-1.18.5-0 kubectl-1.18.5-0

Kubelet servislerini başlatma ve etkinleştirme

systemctl enable --now kubelet

Sadece Kmaster Sunucusunda Yapılacaklar

Kubernetes Cluster Başlatın

kubeadm init --apiserver-advertise-address=192.168.100.10 --pod-network-cidr=192.168.0.0/16

Calico Ağını Dağıtın

kubectl --kubeconfig=/etc/kubernetes/admin.conf create -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

Cluster Birleştirme

kubeadm token create --print-join-command
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Sadece Kworker Sunucusunda Yapılacaklar

Kubernetes Clusterına Giriş için Ana sunucudan önceki adımda kubeadm token create komutunun çıktısını kullanın ve burada çalıştırın.

Giriş yaptıktan sonra 

kubectl get nodes

ile nodeları listeleyebilirsiniz.

kubectl get ns

ile namespace'leri listeleyebilirsiniz.

 

OpenVPN Nedir ? Nasıl Kurulur ?

OPENVPN NEDİR?

VPN'in açılımı virtual private network'tür.Türkçe karşılığı sanal özel ağdır.Uzaktan erişim yolu ile farklı ağlara bağlanmamızı sağlayan bir teknolojidir.VPN kullanarak bağlanacağımız ağa sanki fiziksel olarak bağlıymışız gibi o ağ üzerinden veri alışverişinde bulunabiliriz.

Openvpn de açık kaynak kodlu ücretsiz bir VPN yazılımıdır.Peki OpenVPN ile neler yapabilirim?

  • Güvenli network ulaşımı sağlanabilir.
  • Uzak networkleri birbirine bağlayabilir.
  • Point to point
  • Client to server
  • Sunucular arasında güvenli köprüler oluşturabilir.
  • Sistemlerinizde kullanarak güvenli veri alışverişi sağlayabilirsiniz.

OpenVPN açık kaynak kodlu ücretsiz sürümünü Sanal sunucularınıza kurarak sınırsız bir şekilde kullanabilirsiniz.Ücretsiz sürümde yalnızca iki bağlantı hakkına sahip olabilmektesiniz.OpenVPN Kurulumlarınızı Ubuntu veya Centos işletim sistemli sunucularınızda daha optimize kullanabileceğinizin altını çizmekteyiz.

OpenVPN yazılımını SunucuPark Linux sanal sunucular üzerine kurabilirsiniz.Dilerseniz SunucuPark destek ekibi OpenVPN kurulumunuzu ücretsiz bir şekilde gerçekleştirebilmektedir.SunucuPark SSD Sanal Sunucularını incelemek için tıklayınız.

OpenVPN kurulum aşamalarını bir önceki makalelerimizde (buraya tıklayarak) bulabilirsiniz..

 

Faydalı Olması Dileğiyle,

SunucuPark