„Cloud for Education/LBaaS cli” változatai közötti eltérés
a |
(→SSL terminated HTTPS LoadBalancer) |
||
(4 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) | |||
7. sor: | 7. sor: | ||
* Adott két backend server 10.10.1.13 és 10.10.1.18 privát IP címekkel. A gépeken az apache2 hallgat a TCP 80-as porton. | * Adott két backend server 10.10.1.13 és 10.10.1.18 privát IP címekkel. A gépeken az apache2 hallgat a TCP 80-as porton. | ||
− | * Szeretnénk egy SSL terminált loadbalancer-t, amely elérhető a külvilág felől és segítségével eloszthatók a webes kérések a backend szerverek között. | + | * Szeretnénk egy SSL terminált loadbalancer-t, amely elérhető a külvilág felől és segítségével eloszthatók a webes kérések a backend (nem SSL) szerverek között. |
+ | * Adott egy előre igényelt certificate, valamint egy projekthez allokált lebegő IP cím. | ||
'''Példa megoldása:''' | '''Példa megoldása:''' | ||
+ | |||
+ | Első lépésben hozzuk létre a terheléselosztót az alábbi módon, ahol a vip-subnet-id az a subnet, amelyben a backend gépek elhelyezkednek: | ||
+ | <pre> | ||
+ | openstack loadbalancer create --name s3_edu_lb --vip-subnet-id b9bb709a-7249-42ad-96b7-c517204871af | ||
+ | </pre> | ||
+ | |||
+ | A következő két parancs segítségével létrehozzuk a szükséges pkcs12 tanúsítványt, valamint feltöltjük a secret store-ba (Barbican). | ||
+ | <pre> | ||
+ | openssl pkcs12 -export -inkey s3_edu_hu.key -in s3_edu_hu_cert.cer -certfile sectigo_ca_ov.pem -passout pass: -out server.p12 | ||
+ | openstack secret store --name='s3_edu_hu_cert' -t 'application/octet-stream' -e 'base64' --payload="$(base64 < server.p12)" | ||
+ | </pre> | ||
+ | |||
+ | Miután sikeresen feltöltöttük a tanúsítványt, következő lépésben látható parancs segítségével adjunk meg néhány nagyon fontos információt, többek között, hogy milyen protokollt szeretnénk használni, illetve adjuk meg az előzőleg feltöltött tanúsítványt. | ||
+ | <pre> | ||
+ | openstack loadbalancer listener create --protocol-port 443 --protocol TERMINATED_HTTPS --name s3_edu_listener_https --default-tls-container=$(openstack secret list | awk '/ s3_edu_hu_cert / {print $2}') s3_edu_lb | ||
+ | </pre> | ||
+ | |||
+ | Következő lépésként hozzuk létre a pool-t amelyben a backend szerverek fognak elhelyezkedni. | ||
+ | <pre> | ||
+ | openstack loadbalancer pool create --name s3_edu_pool_https --lb-algorithm ROUND_ROBIN --listener s3_edu_listener_https --protocol HTTP | ||
+ | </pre> | ||
+ | |||
+ | Sikeres pool létrehozás után, rendeljük a két backend szervert az előző lépésben létrehozott pool-hoz. | ||
+ | <pre> | ||
+ | openstack loadbalancer member create --subnet-id b9bb709a-7249-42ad-96b7-c517204871af --address 10.10.1.13 --protocol-port 80 s3_edu_pool_https | ||
+ | openstack loadbalancer member create --subnet-id b9bb709a-7249-42ad-96b7-c517204871af --address 10.10.1.18 --protocol-port 80 s3_edu_pool_https | ||
+ | </pre> | ||
+ | |||
+ | Végül rendeljük hozzá a korábban létrehozott publikus lebegő címet a terheléselosztóhoz. | ||
+ | <pre> | ||
+ | openstack floating ip set --port f85476bd-dceb-44a0-b10b-652f5ca45ee9 ee72cb6c-aaac-442d-b062-bd575983f994 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | '''Probléma:''' | ||
+ | |||
+ | Szeretnénk a C4E-ben létrehozott Kubernetes cluster-ben futó konténerekben azonosíti a klienesek IP címeit, a korábbi megoldás nem adta vissza megfelelően az IP címet. | ||
+ | |||
+ | A leírás a C4E-ben található LBaaS szolgáltatást részletezi. | ||
+ | |||
+ | |||
+ | '''Probléma megoldása:''' | ||
+ | |||
+ | Ennek beállításához cli használata szükséges. | ||
+ | Az alábbi péládban egy loadbalancer létrehozást következik: | ||
+ | |||
+ | ==== Loadbalncer létrehozása ==== | ||
+ | <pre> | ||
+ | openstack loadbalancer create --name <name> --vip-subnet-id <subnet_id> | ||
+ | </pre> | ||
+ | |||
+ | ==== Floating IP csatolása ==== | ||
+ | <pre> | ||
+ | openstack floating ip set --port <load_balancer_vip_port_id> <floating_ip_id> | ||
+ | </pre> | ||
+ | |||
+ | ==== Listener létrehozása ==== | ||
+ | <pre> | ||
+ | openstack loadbalancer listener create --name <name> --protocol <proto> --protocol-port <port> loadbalancer_id | ||
+ | </pre> | ||
+ | |||
+ | ==== Pool/poolok létrehozása ==== | ||
+ | <pre> | ||
+ | openstack loadbalancer pool create --name <name> --protocol PROXY --listener e4cca438-3fb7-4134-a135-65830175e724 --lb-algorithm <algorithm> | ||
+ | </pre> | ||
+ | |||
+ | ==== Health monitor létrehozása ==== | ||
+ | <pre> | ||
+ | openstack loadbalancer healthmonitor create --type <type> --delay <delay> --timeout <timeout> --max-retries <max-retries> --name <name> pool_id | ||
+ | </pre> | ||
+ | |||
+ | ==== Members (nodeok) hozzáadása ==== | ||
+ | <pre> | ||
+ | openstack loadbalancer member create --subnet-id private-subnet --name <nodename> --address address --protocol-port port pool_id | ||
+ | </pre> |
A lap jelenlegi, 2020. november 13., 11:23-kori változata
Tartalomjegyzék
SSL terminated HTTPS LoadBalancer
Példa leírása:
- Adott egy publikus (esetünkben Smart1) hálózat, amelyből lebegő publikus IP címet allokálunk a loadbalancer-nek, valamint egy privát subnet.
- Adott két backend server 10.10.1.13 és 10.10.1.18 privát IP címekkel. A gépeken az apache2 hallgat a TCP 80-as porton.
- Szeretnénk egy SSL terminált loadbalancer-t, amely elérhető a külvilág felől és segítségével eloszthatók a webes kérések a backend (nem SSL) szerverek között.
- Adott egy előre igényelt certificate, valamint egy projekthez allokált lebegő IP cím.
Példa megoldása:
Első lépésben hozzuk létre a terheléselosztót az alábbi módon, ahol a vip-subnet-id az a subnet, amelyben a backend gépek elhelyezkednek:
openstack loadbalancer create --name s3_edu_lb --vip-subnet-id b9bb709a-7249-42ad-96b7-c517204871af
A következő két parancs segítségével létrehozzuk a szükséges pkcs12 tanúsítványt, valamint feltöltjük a secret store-ba (Barbican).
openssl pkcs12 -export -inkey s3_edu_hu.key -in s3_edu_hu_cert.cer -certfile sectigo_ca_ov.pem -passout pass: -out server.p12 openstack secret store --name='s3_edu_hu_cert' -t 'application/octet-stream' -e 'base64' --payload="$(base64 < server.p12)"
Miután sikeresen feltöltöttük a tanúsítványt, következő lépésben látható parancs segítségével adjunk meg néhány nagyon fontos információt, többek között, hogy milyen protokollt szeretnénk használni, illetve adjuk meg az előzőleg feltöltött tanúsítványt.
openstack loadbalancer listener create --protocol-port 443 --protocol TERMINATED_HTTPS --name s3_edu_listener_https --default-tls-container=$(openstack secret list | awk '/ s3_edu_hu_cert / {print $2}') s3_edu_lb
Következő lépésként hozzuk létre a pool-t amelyben a backend szerverek fognak elhelyezkedni.
openstack loadbalancer pool create --name s3_edu_pool_https --lb-algorithm ROUND_ROBIN --listener s3_edu_listener_https --protocol HTTP
Sikeres pool létrehozás után, rendeljük a két backend szervert az előző lépésben létrehozott pool-hoz.
openstack loadbalancer member create --subnet-id b9bb709a-7249-42ad-96b7-c517204871af --address 10.10.1.13 --protocol-port 80 s3_edu_pool_https openstack loadbalancer member create --subnet-id b9bb709a-7249-42ad-96b7-c517204871af --address 10.10.1.18 --protocol-port 80 s3_edu_pool_https
Végül rendeljük hozzá a korábban létrehozott publikus lebegő címet a terheléselosztóhoz.
openstack floating ip set --port f85476bd-dceb-44a0-b10b-652f5ca45ee9 ee72cb6c-aaac-442d-b062-bd575983f994
Probléma:
Szeretnénk a C4E-ben létrehozott Kubernetes cluster-ben futó konténerekben azonosíti a klienesek IP címeit, a korábbi megoldás nem adta vissza megfelelően az IP címet.
A leírás a C4E-ben található LBaaS szolgáltatást részletezi.
Probléma megoldása:
Ennek beállításához cli használata szükséges. Az alábbi péládban egy loadbalancer létrehozást következik:
Loadbalncer létrehozása
openstack loadbalancer create --name <name> --vip-subnet-id <subnet_id>
Floating IP csatolása
openstack floating ip set --port <load_balancer_vip_port_id> <floating_ip_id>
Listener létrehozása
openstack loadbalancer listener create --name <name> --protocol <proto> --protocol-port <port> loadbalancer_id
Pool/poolok létrehozása
openstack loadbalancer pool create --name <name> --protocol PROXY --listener e4cca438-3fb7-4134-a135-65830175e724 --lb-algorithm <algorithm>
Health monitor létrehozása
openstack loadbalancer healthmonitor create --type <type> --delay <delay> --timeout <timeout> --max-retries <max-retries> --name <name> pool_id
Members (nodeok) hozzáadása
openstack loadbalancer member create --subnet-id private-subnet --name <nodename> --address address --protocol-port port pool_id