Ручной запуск инсталлятора
Установите компоненты Платформы в следующем порядке:
Чтобы установить Base, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s base
Чтобы проверить результат установки Base:
-
Подключитесь к любому серверу кроме Deploy, например, к контроллеру:
ssh cpn003 -
Проверьте синхронизацию времени:
chronyc sourcesПример ожидаемого результата210 Number of sources = 1MS Name/IP address Stratum Poll Reach LastRx Last sample===============================================================================^* 10.31.0.22 3 8 377 130 -241us[ -264us] +/- 23ms -
Проверьте установку сервиса Consul:
consul catalog servicesПример ожидаемого результатаdashboard-metrics-scraper-kubernetes-dashboardelkhaproxykube-dns-kube-systemkube-dns-upstream-kube-systemkube-state-metrics-kube-systemkubernetes-dashboard-headless-kubernetes-dashboardkubernetes-dashboard-kubernetes-dashboardkubernetes-defaulttrove-rabbit-persistent -
Подключитесь к любому Controlplane-серверу:
ssh cpn003 -
Проверьте статус Public HAProxy:
systemctl status public_haproxy.serviceПример ожидаемого результатаpublic_haproxy.service - HAProxy Load Balancer...Active: active (running) since Mon 2022-10-24 11:17:29 MSK; 1 day 7h ago... -
Проверьте статус Private HAProxy:
systemctl status private_haproxy.serviceПример ожидаемого результатаprivate_haproxy.service - HAProxy Load Balancer...Active: active (running)... -
Подключитесь к RS-серверу:
ssh rs1 -
Проверьте статус сервиса bird:
systemctl status birdПример ожидаемого результатаbird.service - BIRD Internet Routing DaemonLoaded: loaded (/usr/lib/systemd/system/bird.service; enabled; vendor preset: disabled)Active: active (running)... -
Проверьте работу сервиса маршрутизации Bird:
sudo birdcl show routeПример ожидаемого результатаBIRD 1.6.4 ready.10.16.8.192/26 via 10.30.3.11 on eth0 [calico_c1 2022-10-24] * (100) [AS65433i]... -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Проверьте конфигурационный файл Kubernetes:
kubectl config viewПример ожидаемого результатаapiVersion: v1clusters: nullcontexts: nullcurrent-context: ""kind: Configpreferences: {}users: null -
Выведите все поды Kubernetes:
kubectl get podsПример ожидаемого результатаNAME READY STATUS RESTARTS AGEconsul-sync-catalog-7f48466df6-rk44n 1/1 Running 0 32h -
Подключитесь к Logging или Monitoring серверу:
ssh lm001 -
Проверьте контейнеры OpenSearch
sudo docker ps --format {{.Names}}Пример ожидаемого результатаopensearch_dashboardsopensearch -
Проверьте статус сервиса Kafka на подключенном сервере:
systemctl status kafka-<ИМЯ_СЕРВЕРА>Пример ожидаемого результатаkafka-lm001.service - Apache Kafka server kafka-lm001...Active: active (running)... -
Выведете список групп читателей в Kafka:
/srv/kafka/kafka-<ИМЯ_СЕРВЕРА>/kafka_2.13-2.6.0/bin/kafka-consumer-groups.sh --bootstrap-server <АДРЕС_MANAGEMENT_СЕТИ>:9092 --listПример ожидаемого результатаlogstash_kube_mainlogstash_haproxylogstash_linux_systemlogstash_libvirtdlogstash_iamlogstash_dmesglogstash_openstack_main -
Проверьте статус сервиса logstash:
systemctl status logstash-<ИМЯ_СЕРВЕРА>Пример ожидаемого результатаlogstash-lm001.service - Logstash node logstash-lm001...Active: active (running)... -
Проверьте статус сервиса logstash:
curl -XGET 'localhost:9600/?pretty'Пример ожидаемого результата{"host" : "lm001","version" : "7.8.0","http_address" : "127.0.0.1:9600","id" : "6f7f9146-f22e-41b5-bb91-b2697d5fb4a1","name" : "lm001","ephemeral_id" : "134f3b62-0da9-4aba-8307-8dfe1b60158c","status" : "green","snapshot" : false,"pipeline" : {"workers" : 2,"batch_size" : 125,"batch_delay" : 50},"build_date" : "2020-06-14T21:31:02+00:00","build_sha" : "eb0e63abb332df668328ba540cea0f4dc7b5c892","build_snapshot" : false} -
Подключитесь к любому Controlplane-серверу:
ssh cpn003 -
Проверьте сервис ZooKeeper:
echo ruok | nc localhost 2181Пример ожидаемого результатаimok
Чтобы установить Ceph, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s ceph --ceph-cfg-path ${CEPH_CFG_PATH} --ceph-path ${CEPH_ANSIBLE_PATH}
Чтобы проверить результат установки Ceph:
-
Зайдите на storage-ноду:
ssh cph1 -
Проверьте поднятые контейнеры:
sudo docker psПример ожидаемого результатаCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES769822d0870b deploy001.local:5553/ceph/daemon:latest-octopus-zabbix "/usr/bin/ceph-crash" 45 minutes ago Up 45 minutes ceph-crash-csn001b8b0687444b1 deploy001.local:5553/ceph/daemon:latest-octopus-zabbix "/opt/ceph-container…" 46 minutes ago Up 46 minutes ceph-mds-csn0013e264bbc1bcf deploy001.local:5553/ceph/daemon:latest-octopus-zabbix "/opt/ceph-container…" 47 minutes ago Up 47 minutes ceph-osd-0a677c29f69ee deploy001.local:5553/ceph/daemon:latest-octopus-zabbix "/opt/ceph-container…" 47 minutes ago Up 47 minutes ceph-mgr-csn00128ecf2ad802f deploy001.local:5553/ceph/daemon:latest-octopus-zabbix "/opt/ceph-container…" 48 minutes ago Up 48 minutes ceph-mon-csn001 -
Проверьте состояние Ceph:
sudo docker exec -it ceph-mon-csn001 ceph -sПример ожидаемого результатаcluster:id: 5456e034-c7a6-4a7d-af66-1e95be8e50b1health: HEALTH_OK(muted: POOL_NO_REDUNDANCY)services:mon: 1 daemons, quorum csn001 (age 50m)mgr: csn001(active, since 47m)mds: cephfs:1 {0=csn001=up:active}osd: 1 osds: 1 up (since 48m), 1 in (since 48m)data:pools: 7 pools, 193 pgsobjects: 22 objects, 2.8 KiBusage: 1.0 GiB used, 299 GiB / 300 GiB availpgs: 193 active+clean
Чтобы установить Main, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s main
Чтобы проверить результат установки Main:
-
Зайдите на Controlplane-сервер, являющийся куб-мастером:
ssh cpn003 -
Проверьте сервис Memcached.
-
Получите список подов сервиса memcached:
kubectl -n memcached-vkcloud get pods -o wide -
Из полученного списка выберите IP-адрес любого пода и получите по нему статистику сервиса memcached:
echo stats | nc <ВЫБРАННЫЙ_IP_АДРЕС> 11211Пример ожидаемого результатаCSTAT pid 1STAT uptime 46852STAT time 1666767662STAT version 1.4.39STAT libevent 2.0.21-stableSTAT pointer_size 64
-
-
Проверьте БД.
-
Получите список всех БД:
systemctl | grep mariadb -
Подключитесь к БД:
sudo mysql -S /srv/mysql/nova/socket/nova.sock -u rootПример ожидаемого результатаWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 12896Server version: 10.2.43-MariaDB-log MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> -
Проверьте статус прокси-сервера БД:
systemctl status proxysqlПример ожидаемого результатаproxysql.service - High Performance Advanced Proxy for MySQLLoaded: loaded (/etc/systemd/system/proxysql.service; enabled; vendor preset: disabled)Active: active (running) since Tue 2022-10-25 21:38:37 MSK; 12h ago
-
-
Проверьте сервис очередей RabbitMQ.
-
Проверьте количество готовых подов (столбец READY):
kubectl -n rabbitmq get statefulsetПример ожидаемого результатаNAME READY AGErabbitmq-ceilometer 3/3 12hrabbitmq-celery 3/3 12hrabbitmq-cinder 3/3 12hrabbitmq-gb 3/3 12hrabbitmq-heat 3/3 12hrabbitmq-katana 3/3 12hrabbitmq-magnum 3/3 12hrabbitmq-manila 3/3 12hrabbitmq-neutron 3/3 12hrabbitmq-nova 3/3 12h -
Получите полный список подов RabbitMQ:
kubectl -n rabbitmq get podsПример ожидаемого результатаNAME READY STATUS RESTARTS AGErabbitmq-ceilometer-0 1/1 Running 0 12hrabbitmq-ceilometer-1 1/1 Running 0 12hrabbitmq-ceilometer-2 1/1 Running 0 12hrabbitmq-celery-0 1/1 Running 0 12hrabbitmq-celery-1 1/1 Running 0 12hrabbitmq-celery-2 1/1 Running 0 12hrabbitmq-cinder-0 1/1 Running 0 12hrabbitmq-cinder-1 1/1 Running 0 12h... -
Из полученного списка выберите один из подов и получите по нему статистику:
kubectl -n rabbitmq exec -it <НАЗВАНИЕ_ПОДА> rabbitmqctl cluster_statusПример ожидаемого результатаRABBITMQ_ERLANG_COOKIE env variable support is deprecated and will be REMOVED in a future version. Use the $HOME/.erlang.cookie file or the --erlang-cookie switch instead.Cluster status of node rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kube ...BasicsCluster name: rabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kubeDisk Nodesrabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kuberabbit@rabbitmq-neutron-1.rabbitmq-neutron.rabbitmq.svc.kuberabbit@rabbitmq-neutron-2.rabbitmq-neutron.rabbitmq.svc.kubeRunning Nodesrabbit@rabbitmq-neutron-0.rabbitmq-neutron.rabbitmq.svc.kuberabbit@rabbitmq-neutron-1.rabbitmq-neutron.rabbitmq.svc.kuberabbit@rabbitmq-neutron-2.rabbitmq-neutron.rabbitmq.svc.kube...
-
-
Проверьте сервис RABBIT_PERSISTENT:
sudo docker exec rabbit_persistent rabbitmqctl cluster_statusПример ожидаемого результатаCluster status of node rabbit@cpn003 ...BasicsCluster name: trove_rabbit_persistentDisk Nodesrabbit@cpn001rabbit@cpn002rabbit@cpn003Running Nodesrabbit@cpn001rabbit@cpn002rabbit@cpn003 -
Проверьте статус хранилища ETCD:
etcdctl --endpoints=localhost:22379 --write-out=table endpoint statusПример ожидаемого результата+-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |+-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+| localhost:22379 | 4c4ac234a21a8a2b | 3.4.7 | 20 kB | false | false | 54 | 27905 | 27905 | |+-----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -
Проверьте сервис мониторинга Zabbix.
-
Подключитесь к узлу мониторинга:
ssh lm001 -
Проверьте состояние сервера Zabbix:
systemctl status zabbix-serverПример ожидаемого результатаzabbix-server.service - Zabbix ServerLoaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)Active: active (running)
-
Чтобы установить IAM, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s iam
Чтобы проверить результат установки IAM:
-
Получите пароль из переменной
vault_keycloak_password, которая задана в файле${INVENTORY_DIR}/vkcloud/group_vars/vkcloud/vault.yml. -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Подключитесь к поду KeyCloak:
kubectl -n keycloak-vkcloud exec vk-keycloak-0 bash -it/opt/jboss/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin -
Введите пароль из переменной
vault_keycloak_password. -
Получите данные о состоянии сервера:
/opt/jboss/keycloak/bin/kcadm.sh get serverinfoПример ожидаемого результата...SEND_VERIFY_EMAIL", "SEND_VERIFY_EMAIL_ERROR", "TOKEN_EXCHANGE", "TOKEN_EXCHANGE_ERROR", "UNREGISTER_NODE", "UNREGISTER_NODE_ERROR", "UPDATE_CONSENT", "UPDATE_CONSENT_ERROR", "UPDATE_EMAIL", "UPDATE_EMAIL_ERROR", "UPDATE_PASSWORD", "UPDATE_PASSWORD_ERROR", "UPDATE_PROFILE", "UPDATE_PROFILE_ERROR", "UPDATE_TOTP", "UPDATE_TOTP_ERROR", "USER_INFO_REQUEST", "USER_INFO_REQUEST_ERROR", "VALIDATE_ACCESS_TOKEN", "VALIDATE_ACCESS_TOKEN_ERROR", "VERIFY_EMAIL", "VERIFY_EMAIL_ERROR" ],"resourceType" : [ "AUTHENTICATOR_CONFIG", "AUTHORIZATION_POLICY", "AUTHORIZATION_RESOURCE", "AUTHORIZATION_RESOURCE_SERVER", "AUTHORIZATION_SCOPE", "AUTH_EXECUTION", "AUTH_EXECUTION_FLOW", "AUTH_FLOW", "CLIENT", "CLIENT_INITIAL_ACCESS_MODEL", "CLIENT_ROLE", "CLIENT_ROLE_MAPPING", "CLIENT_SCOPE", "CLIENT_SCOPE_MAPPING", "CLUSTER_NODE", "COMPONENT", "CUSTOM", "GROUP", "GROUP_MEMBERSHIP", "IDENTITY_PROVIDER", "IDENTITY_PROVIDER_MAPPER", "PROTOCOL_MAPPER", "REALM", "REALM_ROLE", "REALM_ROLE_MAPPING", "REALM_SCOPE_MAPPING", "REQUIRED_ACTION", "USER", "USER_FEDERATION_MAPPER", "USER_FEDERATION_PROVIDER", "USER_LOGIN_FAILURE", "USER_SESSION" ]}} -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Проверьте статусы сервисов IAM:
-
Breeze:
echo 'box.info.status' | sudo tarantoolctl eval breeze_03Пример ожидаемого результатаconnected to unix/:/var/run/tarantool/breeze_03.control---- running... -
Apex_Breeze:
echo 'box.info.status' | sudo tarantoolctl eval apex_breeze_03Пример ожидаемого результатаconnected to unix/:/var/run/tarantool/apex_breeze_03.control---- running... -
Dusk:
echo 'box.info.status' | sudo tarantoolctl eval dusk_03Пример ожидаемого результатаconnected to unix/:/var/run/tarantool/dusk_03.control---- running...
-
-
Просмотрите пользователей:
echo 'box.space.users:select()' | sudo tarantoolctl eval breeze_03Пример ожидаемого результатаconnected to unix/:/var/run/tarantool/breeze_03.control---- - ['52e5f673a24f4462994cb73df84d0a57', 2746600586, 'superadmin', 'users', 1666779781.7184,1666779781.7184, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},true]- ['a35e510fcbc340ceaf5e8811566e8066', 2300553501, 'odmin@vk.team', 'users', 1666779781.7129,1666779781.7129, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},true]- ['ea1efb5835fa427288b5df1a0e2a9427', 2829308088, 'proj2@vk.team', 'users', 1666779781.716,1666779781.716, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},true]- ['ef158c5586b447f492e05263dce30ff7', 2177923669, 'proj1@vk.team', 'users', 1666779781.7149,1666779781.7149, true, '', 0, {'phone': true, 'email': true}, {'keycloack_sync': true},true]- ['f77518ef345c4cd7b3690af4ca6a4edb', 1432812437, 'iam', 'users', 1666779857.4096,1666779857.4096, true, '', 0, {'phone': true, 'email': true}, {}, null]...
Чтобы установить Core, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s core
Чтобы проверить результат установки Core:
-
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Проверьте наличие пользователей:
openstack user listПример ожидаемого результата+----------------------------------+-----------+| ID | Name |+----------------------------------+-----------+| 25d691a195684e6c875edeb940e4f329 | neutron || 30ec3d69d40747018054e68f64ce9ee6 | nova || 4da084ae9e7844e5891e98438fb22797 | cinder || 4ff1cfa3ef7442ce91991df67c7c14ff | barbican || 70638cc02a7a4269835f1abf00c4bd50 | glance || ba8b626432a54530b80436d661d7db86 | katana || cfbbe7cce2ff4e839c1b7b4374de21ca | admin || f151ca96325c47bebfbc5f36048bd858 | placement |+----------------------------------+-----------+ -
Проверьте создание токена для пользователя
admin:openstack token issueПример ожидаемого результата+------------+-------------------------------------------+| Field | Value |+------------+-------------------------------------------+| expires | 2022-10-28T15:54:18+0000 || id | gAAAAA.....r- || | w5s......zOne3Jdjto || project_id | e01b26b84caa463f9c1691720fba5d53 || user_id | cfbbe7cce2ff4e839c1b7b4374de21ca |+------------+-------------------------------------------+ -
Создайте тестовый секрет:
openstack secret storeПример ожидаемого результата+---------------+-------------------------------------------------------------------------------------------------+| Field | Value |+---------------+-------------------------------------------------------------------------------------------------+| Secret href | https://overcloud.private.infra.devmail.ru:9311/v1/secrets/f6082920-abfd-4773-a311-fb8338859cec || Name | None || Created | 2022-10-28 14:58:16+00:00 || Status | ACTIVE || Content types | None || Algorithm | aes || Bit length | 256 || Secret type | opaque || Mode | cbc || Expiration | None |+---------------+-------------------------------------------------------------------------------------------------+ -
Проверьте, что список CA-сертификатов не пустой:
openstack ca listПример ожидаемого результата+---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+| CA href | Name | Description | Created | Updated | Status | Plugin Name | Plugin CA ID | Expiration |+---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+| https://overcloud.p | Simple CA | Certificate | 2022-10-27 | 2022-10-28 | ACTIVE | barbican.plugin.sim | Simple CA | 2022-10-29 || rivate.infra.devmai | | Authority - Simple | 06:35:08+00:00 | 16:14:16+00:00 | | ple_certificate_man | | 16:14:16+00:00 || l.ru:9311/v1/cas | | CA | | | | ager.SimpleCertific | | || /424acbaa-6b8e-46af | | | | | | atePlugin | | || -b633-7235d88d0c31 | | | | | | | | |+---------------------+-----------+--------------------+----------------+----------------+--------+---------------------+--------------+----------------+ -
Проверьте, что список типов диска не пустой:
openstack volume type listПример ожидаемого результата+--------------------------------------+------+-----------+| ID | Name | Is Public |+--------------------------------------+------+-----------+| e8ef1421-f258-4dad-b9b2-5f921140974f | ceph | True |+--------------------------------------+------+-----------+ -
Проверьте что список правил QoS для сети не пустой:
openstack volume qos listПример ожидаемого результата+--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+| ID | Name | Consumer | Associations | Properties |+--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+| d6573c1b-1238-479c-9e9d-45e4917ce5c3 | ceph | both | ceph | cache_mode='none', read_iops_sec_per_gb='30', || | | | | read_iops_sec_per_gb_max='16000', read_iops_sec_per_gb_min='1000', || | | | | write_iops_sec_per_gb='15', write_iops_sec_per_gb_max='8000', || | | | | write_iops_sec_per_gb_min='500' |+--------------------------------------+------+----------+--------------+---------------------------------------------------------------------+ -
Подключитесь к Deploy-ноде:
ssh deploy -
Получите пароль для Katana:
grep katana inventory/vkcloud/group_vars/vkcloud/vault.ymlПример ожидаемого результата...password: <PASSWORD> # It's password used for access to katana (web) - "katana/{{ vault_katana.openstack.password }}" -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Получите IP-адрес Katana
kubectl -n sre-vkcloud get endpoints | grep nginxПример ожидаемого результатаkatana-nginx-headless 10.220.1.20:80,10.220.1.84:80 33h -
Запросите у сервиса Katana статус:
curl -u katana:dd02c15e52ab74d79a40 10.220.1.20/statusПример ожидаемого результата{"status": true} -
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Проверьте наличие гипервизоров:
openstack hypervisor listПример ожидаемого результата+----+---------------------+-----------------+------------+-------+| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |+----+---------------------+-----------------+------------+-------+| 2 | kcn002 | QEMU | 10.30.3.15 | down || 5 | kcn001 | QEMU | 10.30.3.14 | down |+----+---------------------+-----------------+------------+-------+ -
Проверьте, что список агрегаторов сети не пустой:
openstack aggregate listПример ожидаемого результата+----+------+-------------------+| ID | Name | Availability Zone |+----+------+-------------------+| 2 | AZ1 | AZ1 |+----+------+-------------------+ -
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Выведете список всех сетей. Команда должна вывести пустой список:
openstack network list -
Создайте сеть:
openstack network create net-testПример ожидаемого результата+---------------------------+--------------------------------------+| Field | Value |+---------------------------+--------------------------------------+| admin_state_up | UP || availability_zone_hints | || availability_zones | || created_at | 2022-10-28T18:17:46Z || description | || dns_domain | None || id | fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 || ipv4_address_scope | None || ipv6_address_scope | None || is_default | None || mtu | 1400 || name | net-test || port_security_enabled | True || project_id | e01b26b84caa463f9c1691720fba5d53 || provider:network_type | vxlan || provider:physical_network | None || provider:segmentation_id | 9 || qos_policy_id | None || revision_number | 4 || router:external | Internal || segments | None || shared | False || status | ACTIVE || subnets | || updated_at | 2022-10-28T18:17:46Z |+---------------------------+--------------------------------------+ -
Выведете список всех сетей. Команда должна вывести список, где будет присутствовать ранее созданная сеть:
openstack network listПример ожидаемого результата+--------------------------------------+----------+---------+| ID | Name | Subnets |+--------------------------------------+----------+---------+| fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 | net-test | |+--------------------------------------+----------+---------+ -
Удалите ранее созданную сеть. Команда должна отработать без ошибок:
openstack network delete net-testПример ожидаемого результата+--------------------------------------+----------+---------+| ID | Name | Subnets |+--------------------------------------+----------+---------+| fe9dc7f1-08ec-4a46-98c0-04047f6c4f21 | net-test | |+--------------------------------------+----------+---------+ -
Выведете список всех сетей. Команда должна вывести список, где не будет присутствовать ранее созданная сеть:
openstack network list -
Выведете список всех образов:
openstack image list -
Создайте тестовый образ:
openstack image create image-testПример ожидаемого результата+------------------+------------------------------------------------------+| Field | Value |+------------------+------------------------------------------------------+| checksum | None || container_format | bare || created_at | 2022-10-28T18:21:11Z || disk_format | raw || file | /v2/images/4d3afeba-e7e2-4a08-9190-e3dac8ac5352/file || id | 4d3afeba-e7e2-4a08-9190-e3dac8ac5352 || min_disk | 0 || min_ram | 0 || name | image-test || owner | e01b26b84caa463f9c1691720fba5d53 || properties | locations='[]' || protected | False || schema | /v2/schemas/image || size | None || status | queued || tags | || updated_at | 2022-10-28T18:21:11Z || virtual_size | None || visibility | shared |+------------------+------------------------------------------------------+ -
Выведете список всех образов. В списке должен присутствовать ранее созданный образ:
openstack image listПример ожидаемого результата+--------------------------------------+------------+--------+| ID | Name | Status |+--------------------------------------+------------+--------+| 4d3afeba-e7e2-4a08-9190-e3dac8ac5352 | image-test | queued |+--------------------------------------+------------+--------+ -
Удалите ранее созданный образ. Команда должна отработать без ошибок:
openstack image delete image-test -
Выведите список всех образов. В списке не должно быть ранее созданного образа:
openstack image list
Чтобы установить IaaS, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s iaas
Чтобы проверить результат установки IaaS:
-
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Проверьте список сервисов Manila:
manila service-listПример ожидаемого результата+----+------------------+-------------+------+---------+-------+----------------------------+| Id | Binary | Host | Zone | Status | State | Updated_at |+----+------------------+-------------+------+---------+-------+----------------------------+| 3 | manila-scheduler | cpn001 | AZ1 | enabled | up | 2022-10-29T10:31:03.000000 || 6 | manila-scheduler | cpn003 | AZ1 | enabled | up | 2022-10-29T10:31:12.000000 || 9 | manila-scheduler | cpn002 | AZ1 | enabled | up | 2022-10-29T10:31:03.000000 || 12 | manila-share | cpn001@ceph | AZ1 | enabled | up | 2022-10-29T10:31:08.000000 || 15 | manila-share | cpn003@ceph | AZ1 | enabled | up | 2022-10-29T10:31:06.000000 || 18 | manila-share | cpn002@ceph | AZ1 | enabled | up | 2022-10-29T10:31:04.000000 |+----+------------------+-------------+------+---------+-------+----------------------------+ -
Проверьте доступные пулы для выделения ресурсов на создание хранилища:
manila pool-listПример ожидаемого результата+------------------+--------+---------+------+| Name | Host | Backend | Pool |+------------------+--------+---------+------+| cpn001@ceph#ceph | cpn001 | ceph | ceph || cpn002@ceph#ceph | cpn002 | ceph | ceph || cpn003@ceph#ceph | cpn003 | ceph | ceph |+------------------+--------+---------+------+ -
Проверьте все дополнительные конфигурации:
manila extra-specs-listПример ожидаемого результата+--------------------------------------+--------------------+-------------------------------------------+| ID | Name | all_extra_specs |+--------------------------------------+--------------------+-------------------------------------------+| b1aa5e73-ff63-4d07-8c02-1d4d0d3ad74f | default_share_type | create_share_from_snapshot_support : True || | | snapshot_support : True || | | driver_handles_share_servers : True |+--------------------------------------+--------------------+-------------------------------------------+ -
Проверьте все доступные зоны:
openstack loadbalancer availabilityzone listПример ожидаемого результата+------+--------------------------------------+---------+| name | availability_zone_profile_id | enabled |+------+--------------------------------------+---------+| AZ1 | 7fe03e65-ccec-4211-b387-339cd0d018d6 | True |+------+--------------------------------------+---------+ -
Проверьте список балансировщиков нагрузки:
openstack loadbalancer provider listПример ожидаемого результата+---------+-------------------------------------------------+| name | description |+---------+-------------------------------------------------+| amphora | The Octavia Amphora driver. || octavia | Deprecated alias of the Octavia Amphora driver. |+---------+-------------------------------------------------+ -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Получите адрес Front:
frontIP=$(kubectl get -n mcs-front-vkcloud pods -l=app.kubernetes.io/instance=mcs -o=custom-columns='IP:.status.podIP' --no-headers | head -n 1)echo $frontIPПример ожидаемого результата10.220.1.26 -
Выполните запрос на Front, чтобы убедиться, что он отвечает на запросы:
curl $frontIP/appПример ожидаемого результата<!doctype html><html lang="ru"><head><title>Личный кабинет VK Cloud</title><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="robots" content="noindex,nofollow"/><meta name="viewport" content="width=1280"/><meta name="format-detection" content="email=no"/><meta name="theme-color" content="#ffffff"/><meta name="msapplication-TileColor" content="#060540"/><meta name="description" content="Полный доступ ко всем облачным сервисам: Виртуальные серверы, S3 - совместимое хранилище, базы данных, кластеры Kubernetes, большие данные, ML."/><meta name="keywords" content="s3,hotbox,icebox,backup,архив,infra,openstack,cloud,storge,облако,b2b"/><link rel="shortcut icon" type="image/x-icon" href="/private/static/6ce1562b/favicon.ico" data-react-helmet="true"/><link rel="icon" type="image/png" sizes="32x32" href="/private/static/6ce1562b/favicon-32x32.png" data-react-helmet="true"/><link rel="icon" type="image/png" sizes="16x16" href="/private/static/6ce1562b/favicon-16x16.png" data-react-helmet="true... -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Получите адрес price-api и выведите его:
PRICE_API=$(sudo netstat -tln | grep -m1 3112 | awk '{print $4}')echo $PRICE_APIПример ожидаемого результата10.30.4.5:3112 -
Получите ответ с доступными api-эндпоинтами, чтобы убедиться, что биллинг отвечает на запросы:
curl $PRICE_API/v1/Пример ожидаемого результата["resource_types", "units", "calculators", "rules", "plans"] -
Подключитесь к Controlplane-серверу, на котором установлена служба scrooge-billing:
ssh cpn001 -
Зафиксируйте время последнего запуска биллинга:
systemctl status scrooge-billingПример ожидаемого результатаscrooge-billing.service - Scrooge Billing script...Active: inactive (dead) since Mon 2022-10-31 09:04:33 MSK; 1min 26s ago -
Запустите пересчет биллинга:
systemctl start scrooge-billingЗапуск должен отработать без ошибок.
-
Проверьте измененное время запуска биллинга:
systemctl status scrooge-billingПример ожидаемого результатаscrooge-billing.service - Scrooge Billing script...Active: inactive (dead) since Mon 2022-10-31 09:06:10 MSK; 1s ago
Чтобы установить PaaS, выполните команду:
${ANSIBLE_DIR}/tools/box.sh deploy -b ${ANSIBLE_DIR} -i ${INVENTORY_DIR}/vkcloud.yml -s paas
Чтобы проверить результат установки PaaS:
-
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Получите список эндпоинтов Trove:
openstack endpoint list --service trove --interface internal -
Убедитесь, что полученный эндпоинт отвечает на запросы:
curl <ЭНДПОИНТ_TROVE>Пример ожидаемого результата{"versions": [{"id": "v1.0", "status": "CURRENT", "updated": "2012-08-01T00:00:00Z", "links": [{"rel": "self", "href": "http://internal.private.infra.devmail.ru:8779/v1.0/"}]}]} -
Подключитесь к Controlplane-серверу, который является куб-мастером:
ssh cpn003 -
Выполните команду для проверки сервиса Karboii:
kubectl -n paas-vkcloud get pods -o wide | grep karboiiПример ожидаемого результатаkarboii-karti-api-dbd7c8b9f-4r27f 1/1 Running 0 11h 10.220.1.233 cpn003 <none> <none>karboii-karti-api-dbd7c8b9f-jff74 1/1 Running 0 11h 10.220.1.38 cpn002 <none> <none>... -
Подключитесь к Controlplane-серверу, на котором находится bash-скрипт
openrc.sh:ssh cpn001 -
Переключитесь на пользователя
rootи выполните bash-скрипт для загрузки в переменные окружения параметров подключения к кластеру:sudo -i. openrc.sh -
Убедитесь что список кластеров Magnum не пустой:
magnum cluster-template-listПример ожидаемого результата+--------------------------------------+-------------------------------------------+| uuid | name |+--------------------------------------+-------------------------------------------+| 5405db84-5e79-4058-8951-afd734ea97b7 | Kubernetes-almalinux-v1.22.6-mcs.external |+--------------------------------------+-------------------------------------------+ -
Убедитесь, что список сервисов Magnum не пустой:
magnum service-listПример ожидаемого результата+----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+| id | host | binary | state | disabled | disabled_reason | created_at | updated_at |+----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+| 2 | 10.220.1.45 | magnum-periodic | up | | - | 2022-10-30T21:06:07+00:00 | 2022-10-31T20:50:10+00:00 || 5 | 10.220.1.236 | magnum-periodic | up | | - | 2022-10-30T21:06:34+00:00 | 2022-10-31T20:50:23+00:00 |+----+--------------+-----------------+-------+----------+-----------------+---------------------------+---------------------------+ -
Проверьте статистику Magnum:
magnum stats-listПример ожидаемого результата+----------+-------+| Property | Value |+----------+-------+| clusters | 0 || nodes | 0 |+----------+-------+ -
Проверьте списки образов, так как одной из функций роли postdeploy является загрузка образов:
openstack image listПример ожидаемого результата+--------------------------------------+---------------------------------------------------+--------+| ID | Name | Status |+--------------------------------------+---------------------------------------------------+--------+| a2922ba5-e78d-4f0b-9503-cd28ee8ee40e | Almalinux-8-v1.22.6-mcs.8-private-magnum-03082022 | active || 95ab409e-e1b0-4791-97ba-ea5ff2cc5a43 | CentOS-7.9-22082022 | active || d23b6c48-0e19-4465-b7a2-9d5b93df9cdb | CentOS-7.9-Marketplace-Basic | active || adc1d014-450b-4d62-8c1e-47d71382ae10 | Clickhouse-20--1.12.19--2022-02-22_01-14-44 | active || 09c9fe67-4a6d-41b0-b2d9-d28f15c02ef4 | MongoDB-v4dot0--1.12.21--2022-03-18_10-15-48 | active || 9d020809-db21-4e66-9739-b78b2e716886 | MySQL-v5dot7--1.12.14--2021-11-25_06-42-20 | active || 380235f7-5504-40a1-8f0a-09afd9c240aa | PostgreSQL-12--1.12.23--2022-04-20_10-57-50 | active || f485c6f5-3687-46b2-ab31-c1e77ed2e603 | Redis-5--1.12.12--2021-11-10_05-47-15 | active || 14251f6a-7b1f-46de-bc0f-fcc033e7b52f | Ubuntu-22.04-202208 | active || b0a08bae-8da5-4940-9c34-28965aa7537e | amphora-x64-haproxy-202110110805.gitf2ca0ca2 | active || cf9dd0ab-1067-4085-bcb2-57d043ab478c | cirros-0.5.1-x86_64 | active || 0aaaaacd-9cd1-4540-bf77-0ef8d9cef855 | manila-service-image-20220426 | active |+--------------------------------------+---------------------------------------------------+--------+