OpenShift - Kümeler

OpenShift, OpenShift kümesini kurmak için iki yükleme yöntemi kullanır.

  • Hızlı kurulum yöntemi
  • Gelişmiş yapılandırma yöntemi

Küme Ayarlama

Hızlı Kurulum Yöntemi

Bu yöntem, hızlı, elde edilmeyen bir küme kurulum yapılandırmasını çalıştırmak için kullanılır. Bu yöntemi kullanmak için önce yükleyiciyi kurmamız gerekiyor. Bu, aşağıdaki komutu çalıştırarak yapılabilir.

Interactive method

$ atomic-openshift-installer install

Bu, etkileşimli bir kurulum yapmak istendiğinde kullanışlıdır.

Unattended installation method

Bu yöntem, katılımsız bir kurulum yöntemi kurmak istendiğinde kullanılır, burada kullanıcı bir yapılandırma yaml dosyası tanımlayabilir ve bunu altına yerleştirebilir. ~/.config/openshift/installer.cfg.yml adıyla. Ardından, aşağıdaki komut çalıştırılabilir.–u tag.

$ atomic-openshift-installer –u install

Varsayılan olarak, altında bulunan yapılandırma dosyasını kullanır ~/.config/openshift/. Ansible ise kurulumun yedeği olarak kullanılır.

version: v2
variant: openshift-enterprise
variant_version: 3.1
ansible_log_path: /tmp/ansible.log

deployment:
   ansible_ssh_user: root
   hosts:
   - ip: 172.10.10.1
   hostname: vklnld908.int.example.com
   public_ip: 24.222.0.1
   public_hostname: master.example.com
   roles:
      - master
      - node
   containerized: true
   connect_to: 24.222.0.1
   
   - ip: 172.10.10.2
   hostname: vklnld1446.int.example.com
   public_ip: 24.222.0.2
   public_hostname: node1.example.com
   roles:
      - node
   connect_to: 10.0.0.2
   
   - ip: 172.10.10.3
   hostname: vklnld1447.int.example.com
   public_ip: 10..22.2.3
   public_hostname: node2.example.com
   roles:
      - node
   connect_to: 10.0.0.3

roles:
   master:
      <variable_name1>: "<value1>"
      <variable_name2>: "<value2>"
   node:
      <variable_name1>: "<value1>"

Burada, belirli bir değişken oluşturmak istendiğinde tanımlanabilen role özgü değişkenimiz var.

Tamamlandığında, aşağıdaki komutu kullanarak kurulumu doğrulayabiliriz.

$ oc get nodes
NAME                    STATUS    AGE
master.example.com      Ready     10d
node1.example.com       Ready     10d
node2.example.com       Ready     10d

Gelişmiş Kurulum

Gelişmiş kurulum, tamamen Ansible konfigürasyonuna dayanmaktadır; burada, ana ve düğüm konfigürasyonuna ilişkin eksiksiz ana bilgisayar yapılandırması ve değişken tanımları mevcuttur. Bu, yapılandırmayla ilgili tüm ayrıntıları içerir.

Kurulumu yaptıktan ve başucu kitabı hazır olduktan sonra, kümeyi kurmak için aşağıdaki komutu çalıştırabiliriz.

$ ansible-playbook -i inventry/hosts ~/openshift-ansible/playbooks/byo/config.yml

Bir Kümeye Ana Bilgisayar Ekleme

Kullanarak kümeye bir ana bilgisayar ekleyebiliriz -

  • Hızlı kurulum aracı
  • Gelişmiş yapılandırma yöntemi

Quick installation toolhem etkileşimli hem de etkileşimli olmayan modda çalışır. Aşağıdaki komutu kullanın.

$ atomic-openshift-installer -u -c </path/to/file> scaleup

Uygulama yapılandırma dosyası görünümlerini ölçeklendirme biçimi, hem ana hem de düğüm eklemek için kullanılabilir.

Gelişmiş Yapılandırma Yöntemi

Bu yöntemde, Ansible'ın ana bilgisayar dosyasını güncelliyoruz ve ardından bu dosyaya yeni bir düğüm veya sunucu ayrıntıları ekliyoruz. Yapılandırma dosyası aşağıdaki gibi görünür.

[OSEv3:children]
masters
nodes
new_nodes
new_master

Aynı Ansible hosts dosyasına, aşağıda gösterildiği gibi yeni düğümle ilgili değişken ayrıntıları ekleyin.

[new_nodes]
vklnld1448.int.example.com openshift_node_labels = "{'region': 'primary', 'zone': 'east'}"

Son olarak, güncellenmiş ana bilgisayar dosyasını kullanarak, yeni yapılandırmayı çalıştırın ve aşağıdaki komutu kullanarak kurulumu yapmak için yapılandırma dosyasını çağırın.

$ ansible-playbook -i /inventory/hosts /usr/share/ansible/openshift-ansible/playbooks/test/openshift-node/scaleup.yml

Küme Günlüklerini Yönetme

OpenShift küme günlüğü, kümenin ana ve düğüm makinelerinden üretilen günlüklerden başka bir şey değildir. Bunlar, sunucu günlüğü, ana günlüğü, kapsayıcı günlüğü, bölme günlüğü, vs.'den başlayarak her tür günlüğü yönetebilir. Kapsayıcı günlüğü yönetimi için birden fazla teknoloji ve uygulama mevcuttur.

Araçların birkaçı listelendiği gibidir ve günlük yönetimi için uygulanabilir.

  • Fluentd
  • ELK
  • Kabna
  • Nagios
  • Splunk

ELK stack- Bu yığın, tüm düğümlerden günlükleri toplamaya ve bunları sistematik bir biçimde sunmaya çalışırken kullanışlıdır. ELK yığını esas olarak üç ana kategoriye ayrılmıştır.

ElasticSearch - Esas olarak tüm konteynerlerden bilgi toplamak ve merkezi bir yere koymaktan sorumludur.

Fluentd - Toplanan tomrukları elasticsearch konteyner motoruna beslemek için kullanılır.

Kibana - Toplanan verileri grafik arayüzde yararlı bilgiler olarak sunmak için kullanılan bir grafik arayüz.

Unutulmaması gereken önemli bir nokta, bu sistemin küme üzerine konuşlandırıldığında tüm düğümlerden günlükleri toplamaya başlamasıdır.

Günlük Tanılama

OpenShift'in dahili bir oc adm dignosticsBirden fazla hata durumunu analiz etmek için kullanılabilen OC ile komut. Bu araç, ana bilgisayardan küme yöneticisi olarak kullanılabilir. Bu yardımcı program, bilinen sorunları gidermek ve ortaya çıkarmak için çok yararlıdır. Bu, ana istemcide ve düğümlerde çalışır.

Herhangi bir agrument veya bayrak olmadan çalıştırılırsa, istemci, sunucu ve düğüm makinelerinin konfigürasyon dosyalarını arayacak ve bunları teşhis için kullanacaktır. Aşağıdaki argümanları ileterek tanılamayı ayrı ayrı çalıştırabilirsiniz -

  • AggregatedLogging
  • AnalyzeLogs
  • ClusterRegistry
  • ClusterRoleBindings
  • ClusterRoles
  • ClusterRouter
  • ConfigContexts
  • DiagnosticPod
  • MasterConfigCheck
  • MasterNode
  • MetricsApiProxy
  • NetworkCheck
  • NodeConfigCheck
  • NodeDefinitions
  • ServiceExternalIPs
  • UnitStatus

Bunları aşağıdaki komutla çalıştırabilirsiniz.

$ oc adm diagnostics <DiagnosticName>

Bir Kümeyi Yükseltme

Kümenin yükseltilmesi, küme içindeki birden çok şeyin yükseltilmesini ve kümenin yeni bileşenler ve yükseltmelerle güncellenmesini içerir. Bu şunları içerir -

  • Ana bileşenlerin yükseltilmesi
  • Düğüm bileşenlerinin yükseltilmesi
  • Politikaların yükseltilmesi
  • Rotaların yükseltilmesi
  • Görüntü akışının yükseltilmesi

Tüm bu yükseltmeleri gerçekleştirmek için, önce hızlı yükleyicileri veya araçları yerinde tutmamız gerekiyor. Bunun için aşağıdaki yardımcı programları güncellememiz gerekiyor -

  • atomic-openshift-utils
  • atomic-openshift-excluder
  • atomic-openshift-docker-excluder
  • etcd paketi

Yükseltmeye başlamadan önce, aşağıdaki komutlar kullanılarak yapılabilen ana makinede etcd yedeklememiz gerekir.

$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd
$ etcdctl backup \
   --data-dir $ETCD_DATA_DIR \
   --backup-dir $ETCD_DATA_DIR.bak.<date>

Ana Bileşenlerin Yükseltilmesi

OpenShift master'da etcd dosyasını güncelleyerek ve ardından Docker'a geçerek yükseltmeyi başlatıyoruz. Son olarak, kümeyi gerekli konuma getirmek için otomatik yürütücüyü çalıştırıyoruz. Bununla birlikte, yükseltmeye başlamadan önce, her bir master üzerindeki atomik openshift paketlerini etkinleştirmemiz gerekir. Bu, aşağıdaki komutlar kullanılarak yapılabilir.

Step 1 - Atomic-openshift paketlerini kaldırın

$ atomic-openshift-excluder unexclude

Step 2 - Tüm ustalarda etcd'yi yükseltin.

$ yum update etcd

Step 3 - etcd hizmetini yeniden başlatın ve başarıyla başlayıp başlamadığını kontrol edin.

$ systemctl restart etcd
$ journalctl -r -u etcd

Step 4 - Docker paketini yükseltin.

$ yum update docker

Step 5 - Docker hizmetini yeniden başlatın ve doğru şekilde çalışıp çalışmadığını kontrol edin.

$ systemctl restart docker
$ journalctl -r -u docker

Step 6 - Tamamlandığında, aşağıdaki komutlarla sistemi yeniden başlatın.

$ systemctl reboot
$ journalctl -r -u docker

Step 7 - Son olarak, paketleri yum hariç tutulanlar listesine geri getirmek için atomik yürütücüyü çalıştırın.

$ atomic-openshift-excluder exclude

Politikayı yükseltmek için böyle bir zorunluluk yoktur, yalnızca tavsiye edilirse yükseltilmesi gerekir ve aşağıdaki komutla kontrol edilebilir.

$ oadm policy reconcile-cluster-roles

Çoğu durumda, politika tanımını güncellememiz gerekmez.

Düğüm Bileşenlerinin Yükseltilmesi

Ana güncelleme tamamlandığında, düğümleri yükseltmeye başlayabiliriz. Akılda tutulması gereken bir şey, kümede herhangi bir sorunu önlemek için yükseltme süresinin kısa olması gerektiğidir.

Step 1 - Yükseltmeyi gerçekleştirmek istediğiniz tüm düğümlerden tüm atomik OpenShift paketlerini kaldırın.

$ atomic-openshift-excluder unexclude

Step 2 - Ardından, yükseltmeden önce düğüm planlamasını devre dışı bırakın.

$ oadm manage-node <node name> --schedulable = false

Step 3 - Geçerli ana bilgisayardan diğer ana bilgisayara tüm düğümü çoğaltın.

$ oadm drain <node name> --force --delete-local-data --ignore-daemonsets

Step 4 - Ana bilgisayarda Docker kurulumunu yükseltin.

$ yum update docker

Step 5 - Docker hizmetini yeniden başlatın ve ardından Docker hizmet düğümünü başlatın.

$systemctl restart docker
$ systemctl restart atomic-openshift-node

Step 6 - Her ikisinin de doğru şekilde başlayıp başlamadığını kontrol edin.

$ journalctl -r -u atomic-openshift-node

Step 7 - Yükseltme tamamlandıktan sonra düğüm makinesini yeniden başlatın.

$ systemctl reboot
$ journalctl -r -u docker

Step 8 - Düğümlerde planlamayı yeniden etkinleştirin.

$ oadm manage-node <node> --schedulable.

Step 9 - OpenShift paketini düğümde geri almak için atomic-openshift yürütücüsünü çalıştırın.

$ atomic-openshift-excluder exclude

Step 10 - Son olarak, tüm düğümlerin kullanılabilir olup olmadığını kontrol edin.

$ oc get nodes

NAME                 STATUS   AGE
master.example.com   Ready    12d
node1.example.com    Ready    12d
node2.example.com    Ready    12d