GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat OpenShift 4.9 na Bare Metal (UPI)

Ahoj technici, jak víte, Openshift poskytuje kontejnerovou platformu a lze ji nainstalovat buď na onprem, nebo do veřejného cloudu pomocí různých metod, jako je IPI (Installer Provisioned Installer), UPI (User Provisioned Infrastructure) a Assisted Bare Metal installer.

V tomto příspěvku si ukážeme, jak nainstalovat Openshift 4.9 na holé kovové uzly s přístupem UPI.

Pro demonstrační účely používám virtuální stroje KVM. Níže jsou uvedeny podrobnosti o nastavení mé laboratoře,

Celkový počet virtuálních strojů:7

Bastion Node: 

  • OS – Rocky Linux 8 / CentOS 8,
  • RAM – 4 GB, vPCU-4,
  • Disk – 120 GB
  • Síť:Správa N/w – (169.144.104.228), OCP interní n/w – (192.168.110.115)

Bootstrap Node:

  • OS:Základní OS
  • RAM:8 GB
  • vCPU:4
  • Disk:40 GB
  • Síť:Interní síť OCP (192.168.110.116)

Uzel řídicí roviny 1:

  • OS:Základní OS
  • RAM:10 GB
  • vCPU:6
  • Disk:60 GB
  • Síť:Interní síť OCP (192.168.110.117)

Uzel řídicí roviny 2:

  • OS:Základní OS
  • RAM:10 GB
  • vCPU:6
  • Disk:60 GB
  • Síť:Interní síť OCP (192.168.110.118)

Uzel řídicí roviny 3:

  • OS:Základní OS
  • RAM:10 GB
  • vCPU:6
  • Disk:60 GB
  • Síť:Interní síť OCP (192.168.110.119)

Pracovní uzel 1:

  • OS:Základní OS
  • RAM:12 GB
  • vCPU:8
  • Disk:60 GB
  • Síť:Interní síť OCP (192.168.110.120)

Pracovní uzel 2:

  • OS:Základní OS
  • RAM:12 GB
  • vCPU:8
  • Disk:60 GB
  • Síť:Interní síť OCP (192.168.110.121)

Poznámka: V KVM hypervisoru jsme vytvořili pouze hostitelskou síť pro ocp-internal.

Pomocí následujícího souboru a příkazů vytvořte v KVM síť pouze hostitele,

$ cat hostonly.xml  hostnet            
$ sudo virsh net-define hostonly.xml$ virsh net-start net-hostnet$ virsh autostart hostnet$ sudo systemctl restart libvirtd

Stáhněte si Openshift Software z portálu Red Hat

a)    Přihlaste se k portálu Red Hat pomocí následující adresy URL:

https://cloud.redhat.com/openshift

b)    Klikněte na Vytvořit cluster

c)     Vyberte kartu Datacenter –> Klikněte na BareMetal

d)    Vyberte Typ instalace jako „UPI“ (Infrastruktura poskytovaná uživatelem)

e)    Stáhněte si následující

  • Instalační program OpenShift
  • Vytáhněte tajemství
  • Rozhraní příkazového řádku
  • RHCOS ISO
  • RHCOS RAW

Pojďme nyní přejít k instalačním krokům OpenShift

Krok 1) Připravte Bastion Node

Vytvořte virtuální stroj s výše uvedenými prostředky pro baštu, můžete nainstalovat OS Rocky Linux 8 nebo CentOS 8.  Přidělte IP adresu ze správy a vnitřní sítě ocp.

Podobně vytvořte bootstrap, řiďte virtuální počítače a pracovní virtuální počítače a připojte síť OCP (hostnet) k rozhraní a poznamenejte si jejich mac adresu. Takže v mém případě následují MAC adresy,

  • Bootstrap:  52:54:00:bf:60:a3
  • ocp-cp1:52:54:00:98:49:40
  • ocp-cp2:52:54:00:fe:8a:7c
  • ocp-cp3:52:54:00:58:d3:31
  • ocp-w1:52:54:00:38:8c:dd
  • ocp-w2:52:54:00:b8:84:40

Krok 2) Nakonfigurujte služby v uzlu bastion

Přeneste stažený software Openshift včetně tajemství do uzlu bastion do kořenové složky.

Extrahujte soubor tar klienta openshift pomocí následujícího příkazu tar,

# tar xvf openshift-client-linux.tar.gz# mv oc kubectl /usr/local/bin

Potvrďte instalaci klientského nástroje openshift a jeho verzi spuštěním

# oc verze# verze kubectl

Výstup výše uvedeného příkazu bude vypadat následovně:

Rozbalte soubor tar instalačního programu Openshift,

# tar xpvf openshift-install-linux.tar.gzREADME.mdopenshift-install#

Konfigurace zón a maskování (SNAT)

V mém bastionovém uzlu mám dvě lan karty, ens3 a ens8. Na ens3 je nakonfigurována externí síť nebo síť pro správu a na ens8 je nakonfigurována interní síť ocp. Definujte tedy následující zóny a povolte maskování v obou zónách.

# připojení nmcli upravit ens8 connection.zone internal# nmcli connection upravit ens3 connection.zone external# firewall-cmd --get-active-zones# firewall-cmd --zone=external --add-masquerade --permanent# firewall-cmd --zone=internal --add-masquerade --permanent# firewall-cmd --reload

Ověřte nastavení zóny spuštěním následujících příkazů firewall-cmd,

# firewall-cmd --list-all --zone=internal# firewall-cmd --list-all --zone=external

Nyní nakonfigurujeme DNS, DHCP, Apache, HAProxy a NFS Service.

Poznámka:Pro účely demonstrace používám „linuxtechi.lan“ jako základní doménu.

Konfigurace serveru DNS

Chcete-li nainstalovat DNS server a jeho závislosti, spusťte následující příkaz dnf

# dnf install bind bind-utils -y

Upravte /etc/named.conf a ujistěte se, že soubor má následující obsah,

# vi /etc/named.conf

Nyní vytvořte soubor dopředné a zpětné zóny

# mkdir /etc/named/zones# vi /etc/named/zones/db.linuxtechi.lan

Uložte a ukončete soubor.

Vytvořte soubor reverzní zóny s následujícími položkami,

# vi /etc/named/zones/db.reverse

Uložte a zavřete soubor a poté spusťte a povolte službu DNS

# spuštění systemctl pojmenované# povolení systemctl pojmenované

Povolte port DNS ve firewallu, spusťte

# firewall-cmd --add-port=53/udp --zone=internal --permanent# firewall-cmd --reload

Konfigurace serveru DHCP 

Nainstalujte a nakonfigurujte server dhcp, svažte mac adresu bootstrapu, řídicích rovin a pracovních uzlů s jejich příslušnými IP. Spusťte níže uvedený příkaz a nainstalujte balíček dhcp,

# dnf install -y dhcp-server

Upravte soubor /etc/dhcp/dhcpd.conf a přidejte následující obsah, použijte mac adresy, které jsme shromáždili v kroku 1, a zadejte IP adresy uzlů podle záznamů DNS. Takže v mém případě bude obsah souboru vypadat níže,

[[email protected] ~]# vi /etc/dhcp/dhcpd.confauthoritative;ddns-update-style interim;allow booting;allow bootp;allow unknown-clients;ignore client-updates;default-lease-time 14400;max-lease-time 14400;subnet 192.168.110.0 maska ​​sítě 255.255.255.0 { option routers                  192.168.110.215; # lan option maska ​​podsítě              255.255.255.0; možnost název domény              „linuxtechi.lan“; možnost servery doménových jmen       192.168.110.215; rozsah 192.168.110.216 192.168.110.245;}hostitel ocp-bootstrap { hardwarový ethernet 52:54:00:bf:60:a3; pevná adresa 192.168.110.216;}host cp1 { hardwarový ethernet 52:54:00:98:49:40; pevná adresa 192.168.110.217;}host cp2 { hardwarový ethernet 52:54:00:fe:8a:7c; pevná adresa 192.168.110.218;}host cp3 { hardwarový ethernet 52:54:00:58:d3:31; pevná adresa 192.168.110.219;}hostitel w1 { hardwarový ethernet 52:54:00:38:8c:dd; pevná adresa 192.168.110.220;}hostitel w2 { hardwarový ethernet 52:54:00:b8:84:40; pevná adresa 192.168.110.221;}

Uložte a zavřete soubor.

Spusťte službu DHCP a povolte službu dhcp pro vnitřní zónu ve firewallu, spusťte

[[e-mail chráněný] ~]# systemctl spuštění dhcpd[[e-mail chráněný] ~]# systemctl povolení dhcpd[[e-mail chráněný] ~]# firewall-cmd --add-service=dhcp --zone=internal -- permanentsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#

Konfigurace webového serveru Apache

Potřebujeme apache, aby obsluhoval zapalování a soubor rhcos, takže jej nejprve nainstalujme pomocí níže uvedeného příkazu,

[[email protected] ~]# instalace dnf -y  httpd

Změňte výchozí port pro naslouchání Apache z 80 na 8080 spuštěním příkazu sed

[[email protected] ~]# sed -i 's/Listen 80/Listen 0.0.0.0:8080/' /etc/httpd/conf/httpd.conf

Spusťte a povolte službu apache pomocí níže uvedeného příkazu,

[[e-mail chráněný] ~]# systemctl start httpd[[email protected] ~]# systemctl povolení httpd

Povolit port služby Apache (8080) pro vnitřní zónu,

[[e-mail chráněný] ~]# cmd brány firewall --add-port=8080/tcp --zone=internal --permanent[[e-mail chráněný] ~]# cmd brány firewall --reload

Nakonfigurujte HAProxy

K vyvážení zatížení služeb Openshift jako ectd, ingress http a ingress https a aplikací jako konzole openshift použijeme haproxy.

Nejprve tedy nainstalujme haproxy spuštěním následujícího příkazu dnf,

[[email protected] ~]#  dnf install -y haproxy

Upravte haproxy confile a přidejte do něj následující obsah

[[email protected] ~]# vi /etc/haproxy/haproxy.cfg# Globální nastavení#-------------------------- -------------------------------------------globální    maxconn     20000    log         /dev/ log local0 info    chroot      /var/lib/haproxy    pidfile     /var/run/haproxy.pid    uživatel        haproxy    skupina       haproxy    démon -------------------------------------------------- ----------# běžné výchozí hodnoty, které všechny sekce 'naslouchat' a 'backend' # použijí, pokud nejsou označeny ve svém bloku#---------------- -------------------------------------------------- --- Výchozí hodnoty protokolu Globální režim HTTP HTTPLOG Volba HTTPlog Volba HTTP-Server-Close Option Option Redispatch Coption FordFor s výjimkou 127.0.0.0/8 opakování 3 MAXCONN 20000 TIMEOUT HTTP-PLATBA 10000MS TIMEOUT HTTP -Keepe-Alive 10000ms Timeout Check 10000ms Timeout Connect 40000ms Timeout Connect 40000ms Timeout Client 300000ms Timeout Server 300000ms TimeOut Queue 0000MS # Povolit HAPROXY Statistika Statistiky Bind:9000 Statistiky HAPROXY Statistika Statistiky:9000 Statistiky URI / statistiky Statistiky Aktualizace 10000ms # Kube API ServerFrontend K8S_API_FRONTEND VÁS:6443 Default_backend K8S_API_BACKEND TCPBACKEND K8S_API_BACBACEND MODE TCPBACKEND K8S_API_BAPENDENT TCP bilance zdrojový server ocp-bootstrap 192.168.110.216:6443 kontrola serveru CP1 192.168.110.217:6443 check serveru CP2 192.168.110.218:6443 check serveru CP3 192.168.110.219:6443 check # OCP Machine Config Serverfrontend ocp_machine_config_server_frontend režim tcp bind:22.623 default_backend ocp_machine_config_server_backendbackend ocp_machine_config_server_backend režim tcp    zdroj zůstatku    server      ocp-bootstrap 192.168.110.216:22623 kontrola    server      cp1 192.168.110.217:22623 kontrola    server 0.2 18. 11 server 22623 check    server      cp3 192.168.110.219:22623 check# OCP Ingress – režim tcp vrstvy 4 pro každého. Ingress Controller bude zpracovávat vrstvu 7.Frontend OCP_HTTP_ingress_frontend vázat:80 Default_backend OCP_HTTP_INGRESS_BACKENDENT TCPBACKEND OCP_HTTP_INGRESS_BACKEND Zůstatek Zdrojový režim TCP Server CP1 192.168.110.217:80 Zkontrolujte server CP2 192.168.110.218:80 Zkontrolujte server CP3 192.168.110.219:80 Zkontrolujte server W1 192.168.110.220 :80 Kontrola serveru W2 192.168.110.221:80 CheckFrontend OCP_HTTPS_INGRESS_FRONTEND BIND *:443 Default_backend OCP_HTTPS_INGRESS_BACKENDENT TCPBACKEND OCP_HTTPS_INGRESS_BACKEND MODE OCP_HTTPS_INGRESS_BACKENDENT OCP_HTTPS_INGRESS_BACKENDENT OCP_HTTPS_INGRESS_BACKENDENT w1 192.168.110.220:443 zkontrolovat server w2 192.168.110.221:443 zkontrolovat

uložte a ukončete soubor.

Spusťte a povolte haproxy k provedení výše uvedených změn v efektu

[[email protected] ~]# setsebool -P haproxy_connect_any 1[[email protected] ~]# systemctl start haproxy[[email protected] ~]# systemctl povolení haproxy

Povolit HAProxy porty, které jsme definovali v jeho konfiguračním souboru v OS firewall. Spustit pod příkazy,

[[e-mail chráněný] ~]# firewall-cmd --add-port=6443/tcp --zone=interní --permanent[[e-mail chráněný] ~]# firewall-cmd --add-port=6443/ tcp --zone=external --permanent[[e-mail protected] ~]# firewall-cmd --add-port=22623/tcp --zone=internal --permanent[[e-mail protected] ~]# firewall-cmd -- add-service=http --zone=internal --permanent[[e-mail protected] ~]# firewall-cmd --add-service=http --zone=external --permanent[[email protected] ~]# firewall-cmd --add-service=https --zone=interní --permanent[[e-mail chráněný] ~]# firewall-cmd --add-service=https --zone=external --permanent[[e-mail chráněný] ~]# firewall -cmd --add-port=9000/tcp --zone=external --permanent[[e-mail chráněný] ~]# firewall-cmd --reload[[e-mail chráněný] ~]#

Konfigurace serveru NFS

Potřebujeme server NFS, který poskytne trvalé úložiště registru OpenShift.

Spusťte následující příkaz pro instalaci serveru nfs,

[[e-mail chráněný] ~]# instalace dnf nfs-utils -y

Vytvořte následující adresář a nastavte požadovaná oprávnění. Tento adresář bude exportován jako sdílená složka NFS,

[[e-mail chráněný] ~]# mkdir -p /shares/registry[[email protected] ~]# chown -R Nobody:nobody /shares/registry[[email protected] ~]# chmod -R 777 /shares /registry

Nyní exportujte sdílenou složku přidáním následujícího řádku do souboru /etc/exports.

[[email protected] ~]# vi /etc/exports/shares/registry  192.168.110.0/24(rw,sync,root_squash,no_subtree_check,no_wdelay)

Uložte a zavřete soubor a spusťte ‚exportfs -rv‘ pro export adresáře

[[email protected] ~]# exportfs -rvexporting 192.168.110.0/24:/shares/registry[[email protected] ~]#

Spusťte a povolte službu NFS

[[e-mail chráněný] ~]# systemctl start nfs-server rpcbind nfs-mountd[[email protected] ~]# systemctl povolení nfs-server rpcbind

Povolte službu NFS v bráně firewall OS, spusťte následující příkazy

[[chráněno e-mailem] ~]# firewall-cmd --zone=interní --add-service mountd --permanent[[email protected] ~]# firewall-cmd --zone=internal --add-service rpc -bind --permanent[[email protected] ~]# firewall-cmd --zone=internal --add-service nfs --permanent[[email protected] ~]# firewall-cmd --reload

Krok 3) Vygenerujte soubory manifestů a zapalování

Chcete-li vygenerovat zapalovací soubory pro bootstrap, řídicí rovinu a pracovní uzly, postupujte podle následujících kroků

a)    Vygenerujte klíče SSH

[[email protected] ~]# ssh-keygen

Tyto ssh klíče budou použity pro vzdálený přístup k bootstrapu, řídicí rovině a pracovním uzlům.

b)    Vytvořte soubor install-config.yaml s následujícím obsahem

[[email protected] ~]# vi /ocp-install/install-config.yamlapiVersion:v1baseDomain:linuxtechi.lan        #základní název doménycompute:  - hyperthreading:Povoleno    název:worker    repliky:0 # Musí být nastaveno na 0 pro Uživatelem zajišťovaná instalace jako pracovní uzly bude nasazena ručně.controlPlane:  hyperthreading:Povoleno  název:hlavní  repliky:3metadata:  název:laboratoř # Název clusteru síť:  clusterNetwork:    - cidr:10.128.0.0/14   3 síť Předpona T7: 3 Síť 3 Předpona hostiteleT7: 0 .0.0/16platform:  none:{}fips:falsepullSecret:'{"auths":...}'            # Zkopírujte pullsecret heresshKey:"ssh-ed25519 AAAA..."          # Sem zkopírujte veřejný klíč ssh 

Na řádku 23 a 24 zkopírujte obsah vyžádaného tajného a veřejného klíče, který jsme vygenerovali výše.

Po provedení změn bude soubor vypadat takto:

c)   Vygenerujte soubor manifestů

Spusťte následující příkaz openshift-install

[[email protected] ~]# ~/openshift-install vytvořit manifest --dir ~/ocp-install

Výše uvedená varovná zpráva říká, že hlavní uzly jsou plánovatelné, to znamená, že můžeme mít pracovní zátěž na řídicích rovinách (kontrolní roviny budou také fungovat jako pracovní uzly). Pokud to chcete zakázat, spusťte následující příkaz sed,

# sed -i 's/mastersSchedulable:true/mastersSchedulable:false/' ~/ocp-install/manifests/cluster-scheduler-02-config.yml

Poznámka:V mém případě to nevypínám.

d)    Generovat zapalování a auth soubor

Spusťte pod příkazem openshift-install,

[[email protected] ~]# ~/openshift-install vytvoření zapalování-configs --dir ~/ocp-install/

Výstup,

e)    Poskytovat manifesty, zapalování a soubor obrazu jádra OS prostřednictvím webového serveru

Vytvořte adresář /var/www/html/ocp4 a zkopírujte všechny soubory z „/root/ocp-install“ do ocp4.

[[chráněn e-mailem] ~]# mkdir /var/www/html/ocp4[[chráněn e-mailem] ~]# cp -R ~/ocp-install/* /var/www/html/ocp4[[chráněn e-mailem ] ~]# mv ~/rhcos-metal.x86_64.raw.gz /var/www/html/ocp4/rhcos

Nastavte požadovaná oprávnění pro adresář ocp4

[[e-mail chráněný] ~]# chcon -R -t httpd_sys_content_t /var/www/html/ocp4/[[e-mail chráněný] ~]# chown -R apache:/var/www/html/ocp4/[[ e-mail chráněno] ~]# chmod 755 /var/www/html/ocp4/

Ověřte, zda jsou tyto soubory přístupné nebo ne pomocí příkazu curl

[[email protected] ~]# curl 192.168.110.215:8080/ocp4/

Výstup by měl vypadat takto

Perfektní, nyní jsme připraveni zahájit nasazení.

Krok 4) Spusťte nasazení OpenShift

Spusťte bootstrap VM pomocí souboru ISO rhcos-live. Zobrazí se nám následující obrazovka

Když se spustí se souborem ISO, zobrazí se následující obrazovka,

Zadejte příkaz coreos-installer a stiskněte enter

$ instalace sudo coreos-installer /dev/sda --insecure --image-url http://192.168.110.215:8080/ocp4/rhcos  --ignition-url http://192.168.110.215:8080/ocp4 /bootstrap.ign --insecure-ignition

Po dokončení instalace se zobrazí následující obrazovka

Restartujte uzel bootstrap, aby se tentokrát spustil z pevného disku.

Restart $ sudo

Podobně spusťte všechny uzly tří řídicích rovin pomocí souboru ISO RHEL Core OS (rhcos). Po spuštění řídicích uzlů spusťte následující příkaz a stiskněte enter

$ instalace sudo coreos-installer /dev/sda --insecure --image-url http://192.168.110.215:8080/ocp4/rhcos  --ignition-url http://192.168.110.215:8080/ocp4 /master.ign --insecure-ignition

Restartujte řídicí rovinu a spusťte ji z pevného disku.

Opakujte tento postup pro zbytek řídicích rovin a sledujte proces bootstrap pomocí následujícího příkazu.

[[email protected] ~]# ~/openshift-install --dir ~/ocp-install wait-for bootstrap-complete --log-level=debug

Nyní spusťte oba pracovní uzly pomocí souboru ISO Core OS a jakmile se spustí, spusťte na uzlech následující příkaz

$ instalace sudo coreos-installer /dev/sda --insecure --image-url http://192.168.110.215:8080/ocp4/rhcos  --ignition-url http://192.168.110.215:8080/ocp4 /worker.ign --insecure-ignition

Proces bootstrapu pro řídicí roviny a pracovní uzly může trvat 10 až 15 minut v závislosti na vaší infrastruktuře. Zkontrolujte stav uzlů pomocí následujících příkazů

[[email protected] ~]# export KUBECONFIG=~/ocp-install/auth/kubeconfig[[email protected] ~]# oc get nodesNAME                       STAV   ROLE         tech 9          tech    master     VERZE .22.0-rc.0+894a78bcp2.lab.linuxtechi.lan   Připraveno    master,worker   66m   v1.22.0-rc.0+894a78bcp3.lab.linuxtechi.lan [.   Připraveno        master,worker .8 e-mail chráněný] ~]#

Nyní schvalte všechny čekající CSR pro pracovní uzly, aby se mohly připojit ke clusteru a být připraveny. Spuštěním následujícího příkazu oc zobrazíte čekající CSR

[[email protected] ~]# oc get csr

Spusťte následující příkaz oc pro schválení čekajících CSR

[[email protected] ~]# oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n" }}{{end}}{{end}}' | xargs oc adm certifikát schválen

Výstup dvou výše uvedených příkazů bude vypadat takto:

Po několika minutách by se pracovní uzly měly připojit ke clusteru a měly by být v připraveném stavu, spusťte pod příkazy totéž.

[[email protected] ~]# oc get uzly

Skvělé, výše potvrzuje, že se oba pracovní uzly připojí ke clusteru a jsou ve stavu připravenosti.

Zkontrolujte také stav bootstrapu a ve výstupu bychom měli dostat následující,

[[email protected] ~]# ~/openshift-install --dir ~/ocp-install wait-for bootstrap-complete --log-level=debug

Výše uvedené potvrzuje, že proces bootstrap je také dokončen a je dobré zastavit a odstranit prostředky bootstrap VM a položky bootstrap ze souboru haproxy.

Tímto končí článek; Doufám, že to považujete za informativní. Podělte se prosím o své názory a komentáře.

Přečtěte si také :Jak nastavit jeden uzel OpenShift Cluster na RHEL 8


Linux
  1. Jak nainstalovat VnStat Network Monitoring na CentOS 7

  2. Jak nainstalovat Wireshark na Ubuntu 16.04 LTS

  3. Jak nainstalovat server Ubuntu bez síťového připojení?

  1. Jak nainstalovat Linux ve 3 krocích

  2. Jak nainstalovat Python na Linux

  3. Jak migrovat holou instalaci Linuxu na virtuální počítač

  1. Jak nainstalovat Kubernetes na Bare Metal Server

  2. Jak nasadit Bare Metal Cloud Server

  3. Jak nainstalovat iperf na RHEL 8