Alpine Linux 3.9.0da bir Docker Sürüsü oluşturma

Giriş

Bu kılavuz, birden fazla Alpine Linux 3.9.0 sunucusu ve Portainer kullanarak bir Docker sürüsü oluşturmayı ve yapılandırmayı gösterecektir. Vultr'un şu anda hem CentOS 7 x64 hem de Ubuntu 16.04 x64'ü destekleyen bir Tek Tıklama Docker Uygulaması sunduğunu lütfen unutmayın .

Ön şartlar

Başlamak için Alpine Linux 3.9.0 çalıştıran en az iki VC2 sunucusuna ihtiyacınız olacaktır. Docker sürünüz içinde, bu sunuculardan biri manager nodeharici ağlarla arabirim oluşturma ve işleri çalışan düğümlerine devretme görevi görür . Diğer sunucu daha sonra worker nodeyönetici düğümü tarafından kendisine devredilen bir yürütme işi olarak işlev görür .

Uygulamanız yedeklilik ve / veya daha fazla bilgi işlem gücü gerektiriyorsa ikiden fazla sunucuyu başlatabileceğinizi ve bu kılavuzda sağlanan adımların geçerli olacağını unutmayın.

yayılma

Vultr sunucusu dağıtım arayüzünü ziyaret edin .

Vultr Cloud (VC2)Sekmenin sayfanın üstünde seçildiğinden emin olun .

Bölümden herhangi bir konum seçebilirsiniz Server Location, ancak tüm sunucuların aynı konumda olması gerekir , aksi takdirde onlara Docker sürüsü yerleştirmek mümkün olmayacaktır.

Seç ISO Librarysekmesini Server Typebölümü ve seçim Alpine Linux 3.9.0 x86_64görüntü.

Bölümden uygun bir seçenek belirleyin Server Size. Bu kılavuz 25 GB SSD sunucu boyutunu kullanacaktır, ancak bu, uygulamanızın kaynak gereksinimlerini karşılamak için yetersiz olabilir. Vultr, başlatıldıktan sonra bir sunucunun boyutunu yükseltmeyi kolaylaştırırken, yine de uygulamanızın en iyi performansı göstermesi için gereken sunucu boyutunu dikkatlice düşünmelisiniz.

In Additional Featuresbölümünde özelleştirmek istediğinizde Enable Private Networkingseçeneği. Bu kılavuzu takip etmek için diğer seçeneklerin gerekli olmasa da, her birinin uygulamanız bağlamında anlamlı olup olmadığını düşünmelisiniz.

Multiple Private NetworksHesabınızdaki seçeneği daha önce etkinleştirdiyseniz, mevcut bir sunucuyu seçmeniz veya sunucularınız için yeni bir özel ağ oluşturmanız gerekir. Etkinleştirmediyseniz, bu bölümü yok sayabilirsiniz. Özel ağları manuel olarak yapılandırma hakkında bilgi için bu kılavuza bakın .

Firewall GroupŞimdilik bölümü atla . Yalnızca Docker sürüsü içinde yönetici düğümü olarak işlev gören sunucunun açık bağlantı noktalarına ihtiyacı vardır ve bu, sunucu dağıtımından sonra yapılandırılmalıdır.

Sayfanın en altına Server Qtyen az iki taneden bir tane girmelisiniz . Daha önce de belirtildiği gibi, ikiden fazla sunucuya ihtiyacınız olabilir, ancak ikisi bu kılavuzu takip etmek için yeterlidir.

Son olarak, Server Hostname & Labelbölüme her sunucu için anlamlı ve akılda kalıcı ana bilgisayar adları ve etiketler girin. Bu kılavuzun amacına uygun olarak, birinci sunucusunun ana bilgisayar adı ve etiket olacak docker-managerve Docker Managerve respectively- docker-workerve Docker Workersırasıyla saniye.

Tüm yapılandırmalarınızı iki kez kontrol ettikten sonra Deploy Now, sunucularınızı başlatmak için sayfanın altındaki düğmeyi tıklayabilirsiniz .

Sunuculara Alpine Linux 3.9.0'ı yükleyin

Vultr'un ISO kütüphanesinden bir işletim sistemi seçtiğiniz için, Alpine Linux 3.9.0'ı her sunucuya manuel olarak kurmanız ve yapılandırmanız gerekir.

Vultr'a sunucularınızı ayırması için bir iki dakika verdikten sonra , sunucu yönetimi arabiriminde sunucunun üçlü nokta more optionssimgesini tıklatın ve ardından seçeneği belirleyin.Docker ManagerView Console

Oturum açma istemi olan bir konsola yönlendirilmelisiniz. Değilse, lütfen Vultr'un sunucularınızı dağıtmayı bitirmesi için bir dakika daha bekleyin.

Bu giriş isteminde rootkullanıcı adı olarak girin . Alpine Linux 3.9.0'ın canlı sürümü (sunucularınızın şu anda çalıştığı şeydir), oturum açarken süper kullanıcının bir parola girmesini gerektirmez.

Kök hesabına başarıyla giriş yaptıktan sonra, bir hoş geldiniz mesajı ve ardından aşağıdakine benzeyen bir kabuk istemi göreceksiniz:

localhost:~# 

Alpine Linux yükleyicisini başlatmak için aşağıdaki komutu girin:

# setup-alpine

İlk olarak, uygun bir klavye düzeni seçin. Bu kılavuz usmizanpajı ve varyantı kullanacaktır .

Ana bilgisayar adını ayarlarken, dağıtım sırasında bu sunucu için ayarladığınız ana bilgisayar adını seçin. Bu kılavuzu tam olarak izliyorsanız, ana bilgisayar adı olmalıdır docker-manager.

İki ağ arayüzü mevcut olmalıdır: eth0ve eth1. Sadece görürseniz eth0, sunucularınızın özel ağını doğru şekilde yapılandırmamışsınız demektir. Başlatma eth0kullanarak dhcpve initialize eth1, ağ maskesi özel IP adresini kullanarak ve bu sunucu dağıtımı sırasında atandı ağ geçidi. Bu ayrıntılara sunucunuzun ayarlar arayüzünden erişebilirsiniz. İstendiğinde, manuel ağ yapılandırması gerçekleştirmeyin.

Kök hesabı için yeni bir parola girin ve ardından bu sunucuları dağıtmayı seçtiğiniz konuma uygun bir saat dilimi seçin.

Bir HTTP / FTP proxy'si kullanmak istiyorsanız, URL'sini girin, aksi takdirde bir proxy URL'si ayarlamayın.

Sistem saati senkronizasyonunu yönetmek için bir NTP istemcisi seçin. Bu kılavuz kullanılacaktır busybox.

Bir paket havuz aynasının kullanılması istendiğinde, numarasını girerek açıkça birini seçin; girerek en hızlı olanı otomatik olarak algılar ve seçer f; veya eAlpine Linux'u bilmiyorsanız tavsiye edilmeyen depo yapılandırma dosyasını el ile düzenleyin . Bu kılavuz ilk aynayı kullanacaktır.

Sunucularınıza erişmek veya SSH tabanlı bir dosya sistemini barındırmak için SSH kullanmayı planlıyorsanız, kullanılacak bir SSH sunucusu seçin. Bu kılavuz kullanılacaktır openssh.

Bir diskin kullanılması istendiğinde, diski tür vdaolarak seçin sys.

Şimdi sunucunuza Alpine Linux 3.9.0 kurulu olmalıdır. Ana bilgisayar adı ve eth1ağ arabirimi için doğru değerleri değiştirdiğinizden emin olarak bu işlemi daha önce dağıttığınız diğer tüm sunucular için tekrarlayın .

Yükleme sonrası sunucu yapılandırması

Bu noktada, sunucularınız hala Alpine Linux 3.9.0'ın canlı ISO sürümünü çalıştırıyor. SSD kurulumundan önyükleme yapmak için sunucunuzun ayarlar arayüzünü ziyaret edin, Custom ISOyan menü girişine gidin ve Remove ISOdüğmesine tıklayın. Bu sunucuyu yeniden başlatmalıdır. Başlamazsa, manuel olarak yeniden başlatın.

Sunucu yeniden başlatmayı tamamladıktan sonra, sunucunun web konsoluna geri dönün Docker Manager.

Yükleme işlemi sırasında daha önce ayarladığınız şifreyi kullanarak kök hesaba giriş yapın.

Üçüncü çizgi uncommenting topluluk paket deposu etkinleştirme /etc/apk/repositorieskullanarak vi. Kenar ve test havuzlarını benzer bir şekilde etkinleştirebilirsiniz, ancak bu kılavuzu izlemeleri gerekmez.

Aşağıdaki kabuk komutunu girerek sunucunun yerel paket dizinini daha önce seçtiğiniz uzak havuzla senkronize edin:

# apk update

Ardından eski paketleri yükseltin:

# apk upgrade

Daha önce olduğu gibi, bu yapılandırma işlemini daha önce dağıttığınız her sunucu için tekrarlayın.

Docker'ı sunucularınıza yükleyin

Docker paketinin kendisini yüklemeden önce ayrı bir dockerkullanıcı oluşturmak isteyebilirsiniz . Aşağıdaki komutu kullanarak bunu yapabilirsiniz:

# adduser docker

Not: Bu yeni kullanıcı ve yeni dockergruba eklenen tüm kullanıcılar , Docker paketi yüklendikten sonra kök ayrıcalıklarına sahip olacaktır. Moby Github deposundan aşağıdaki konuya bakın :

--privilegedIn docker nedeniyle , 'docker' grubuna eklenen herkes kök eşdeğeri. Liman işçisi grubundaki herkesin sistemde tüm ayrıcalık yükseltme politikası ve denetimi etrafında bir arka kapısı vardır.

Bu, birisinin sudo to root çalıştırabilmesinden, politikaya sahip olduğu ve onlara uygulanan denetimden farklıdır.

dockerKullanıcıya sudo izni vermek istiyorsanız , önce sudopaketi yükleyin :

# apk add sudo

Ardından bir sudogrup oluşturun :

# addgroup sudo

Son olarak, dockerkullanıcıyı sudogruba ekleyin :

# adduser docker sudo

Şimdi sudo yapılandırmasını tamamlamak için bu kılavuzun 4. adımını takip edebilirsiniz .

Bu noktada, Docker paketini yüklemeye hazırsınız. dockerDocker'ı kurmak ve yapılandırmak için ayrı, sudo özellikli bir kullanıcıya sahip olmanın kesinlikle gerekli olmadığını unutmayın , ancak bu kılavuz bu kurala uyar.

Docker paketini aşağıdaki komutla yükleyin:

# apk add docker

Ardından Docker başlangıç ​​komut dosyasını etkinleştirin:

# rc-update add docker

Son olarak Docker arka plan programını başlatın:

# rc-service docker start

Docker'ın şu komutla çalıştığını doğrulayabilirsiniz:

# docker info

Son kez olduğu gibi, başlangıçta dağıttığınız her sunucu için bu Docker kurulum işlemini tekrarlayın.

Bir yönetici düğümü ve bir çalışan düğümü ile bir Docker sürüsü başlatma

Tüm bu kurulum ele alındığında, sonunda Docker sürüsü yaratmaya hazırsınız.

Sürü oluşturma ve yönetici düğümü ekleme

Docker ManagerSunucunuzun web konsoluna geri dönün . Bu sunucuyu sürünüzde yönetici düğümü olarak yapılandıracaksınız. dockerKullanıcıyı daha önce oluşturmayı seçtiyseniz , süper kullanıcı yerine bu hesabı kullanarak giriş yapın.

Aşağıdaki komutu girin, ancak sunucunuza atanan 192.0.2.1özel (genel değil) IP adresiyle değiştirin Docker Manager:

$ docker swarm init --advertise-addr 192.0.2.1

Docker, bu yeni sürüme işçi düğümü olarak eklemek için özel ağdaki diğer sunucularda yürütebileceğiniz bir komut görüntüler. Bu komutu kaydedin.

Çalışan düğümü ekle

Şimdi Docker Workersunucunuzdaki web konsoluna gidin ve dockeroluşturduysanız kullanıcıyla oturum açın .

Bu sunucuyu, az önce oluşturduğunuz sürüye işçi düğümü olarak eklemek için sürüsü oluşturma komutunun çıktısından kaydettiğiniz komutu yürütün. Aşağıdakine benzer görünecektir:

$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377

Docker, düğümün sürüye katılıp katılamayacağını çıkarır. Sürüme çalışan düğümleri eklerken sorun yaşıyorsanız, özel ağ yapılandırmanızı tekrar kontrol edin ve sorun giderme için bu kılavuza başvurun .

Başlangıçta ikiden fazla sunucu dağıtıyorsanız, yukarıdaki komutu kullanarak geri kalanını sürünüze işçi düğümleri olarak ekleyebilirsiniz, böylece uygulamanız için kullanılabilir kaynak miktarını yükseltebilirsiniz. Alternatif olarak, ek yönetici düğümleri ekleyebilirsiniz, ancak bu kılavuzun kapsamı dışındadır.

Docker sürülerinizi yönetmek için Portainer'ı SSL ile dağıtın

Bu noktada Docker sürünüz kullanıma hazırdır. Bununla birlikte, isteğe bağlı olarak, sürünüzdeki yönetici düğümünde bir Portainer yığını başlatabilirsiniz. Portainer sürünüzü ve içindeki düğümleri yönetmek için uygun bir web arayüzü sunar.

Artık sürünüz için bir güvenlik duvarı grubu oluşturma zamanı. Uygulamanız özellikle gerektirmedikçe, yalnızca yönetici düğümlerinizdeki bağlantı noktalarını gösterin . Çalışan düğümlerinizdeki bağlantı noktalarını dikkatli bir şekilde değerlendirmeden açığa çıkarmak güvenlik açıklarına neden olabilir.

Güvenlik duvarı yönetimi arayüzüne gidin ve yeni bir güvenlik duvarı grubu oluşturun. Başvurunuz hangi portların açığa 9000çıkacağını dikte etmelidir, ancak en azından Portainer için portu açmanız gerekir. Bu güvenlik duvarı grubunu Docker Managersunucuya uygulayın .

Gerekli olmasa da, Portainer'ı SSL ile güvence altına almanız önemle tavsiye edilir. Bu kılavuz adına yalnızca kendinden imzalı bir OpenSSL sertifikası kullanacaksınız, ancak üretimde Let's Encrypt'i kullanmayı düşünmelisiniz .

Docker ManagerSunucunun web konsoluna gidin , dockerkullanıcıyı kullanarak oturum açın ve kendinden imzalı bir OpenSSL sertifikası oluşturmak için aşağıdaki komutları kullanın:

$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650

~/portainer-agent-stack.ymlAşağıdaki içeriklerle yeni bir dosya oluşturun :

version: '3.2'

services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      CAP_HOST_MANAGEMENT: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /:/host
    networks:
      - agent_network
    deploy:
      mode: global

  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
    ports:
      - target: 9000
        published: 9000
        protocol: tcp
        mode: host
    volumes:
      - portainer_data:/data
      - /home/docker/certs:/certs
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  agent_network:
    driver: overlay
    attachable: true

volumes:
  portainer_data:

Bu Docker yığını yapılandırma dosyasını gereksinimlerinize uyacak şekilde değiştirdikten sonra dağıtabilirsiniz:

$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer

Portainer'ın çalıştığını doğrulamak için Docker'a yığını dağıtması için bir veya iki dakika verdikten sonra aşağıdaki komutu yürütün:

$ docker ps

Görüntülerle birlikte iki kap göreceksiniz portainer/portainer:latestve portainer/agent:latestPortainer'ın doğru şekilde başlatıldığını doğrulayacaksınız.

Artık HTTPS kullanarak Docker Managersunucunuzdaki genel IP adresini ziyaret ederek Docker sürülerinizi yapılandırabilir ve yönetebilirsiniz 9000.



Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?