How do I set up LoadBalancer? | Как настроить LoadBalancer? | ||||||||||||||||
|
| ||||||||||||||||
An example of IngressNginxController | Пример IngressNginxController | ||||||||||||||||
Below is a simple example of the `IngressNginxController’ configuration: | Ниже представлен простой пример конфигурации | ||||||||||||||||
yaml apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: main spec: ingressClass: nginx inlet: LoadBalancerWithProxyProtocol loadBalancerWithProxyProtocol: annotations: loadbalancer.openstack.org/proxy-protocol: “true” loadbalancer.openstack.org/timeout-member-connect: “2000” nodeSelector: node-role.deckhouse.io/frontend: “” tolerations:
| yaml apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: main spec: ingressClass: nginx inlet: LoadBalancerWithProxyProtocol loadBalancerWithProxyProtocol: annotations: loadbalancer.openstack.org/proxy-protocol: “true” loadbalancer.openstack.org/timeout-member-connect: “2000” nodeSelector: node-role.deckhouse.io/frontend: “” tolerations:
| ||||||||||||||||
How do I set up security policies on cluster nodes? | Как настроить политики безопасности на узлах кластера? | ||||||||||||||||
There may be many reasons why you may need to restrict or expand incoming/outgoing traffic on cluster VMs in OpenStack: | Вариантов, зачем может понадобиться ограничить или, наоборот, расширить входящий или исходящий трафик на виртуальных машинах кластера, может быть множество. Например: | ||||||||||||||||
|
| ||||||||||||||||
For all this, additional security groups should be used. You can only use security groups that are created in the cloud tentatively. | Для всего этого следует применять дополнительные группы безопасности (security groups). Можно использовать только группы безопасности, предварительно созданные в облаке. | ||||||||||||||||
Enabling additional security groups on static and master nodes | Установка дополнительных групп безопасности (security groups) на статических и master-узлах | ||||||||||||||||
This parameter can be set either in an existing cluster or when creating one. In both cases, additional security groups are declared in the | Данный параметр можно задать либо при создании кластера, либо в уже существующем кластере. В обоих случаях дополнительные
группы безопасности указываются в | ||||||||||||||||
|
| ||||||||||||||||
The | Поле | ||||||||||||||||
Enabling additional security groups on ephemeral nodes | Установка дополнительных групп безопасности (security groups) на ephemeral-узлах | ||||||||||||||||
You have to set the | Необходимо прописать параметр | ||||||||||||||||
How do I create a hybrid cluster? | Как поднять гибридный кластер? | ||||||||||||||||
A hybrid cluster combines bare metal and OpenStack nodes. To create such a cluster, you need an L2 network between all nodes of the cluster. | Гибридный кластер представляет собой кластер, в котором могут быть как узлы bare metal, так и узлы OpenStack. Для создания такого кластера необходимо наличие L2-сети между всеми узлами кластера. | ||||||||||||||||
To set up a hybrid cluster, follow these steps: | Чтобы поднять гибридный кластер, выполните следующие шаги: | ||||||||||||||||
|
| ||||||||||||||||
|
| ||||||||||||||||
Attaching storage devices to instances in a hybrid cluster | Подключение storage в гибридном кластере | ||||||||||||||||
To use PersistentVolumes on OpenStack nodes, you must create StorageClass with the appropriate OpenStack volume type. The | Если вам требуются PersistentVolumes на узлах, подключаемых к кластеру из OpenStack, необходимо создать StorageClass с нужным OpenStack volume type. Получить список типов можно с помощью команды | ||||||||||||||||
Here is the example config for the | Например, для volume type | ||||||||||||||||
yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ceph-ssd provisioner: csi-cinderplugin # have to be like this parameters: type: ceph-ssd volumeBindingMode: WaitForFirstConsumer | yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ceph-ssd provisioner: csi-cinderplugin # Обязательно должно быть так. parameters: type: ceph-ssd volumeBindingMode: WaitForFirstConsumer | ||||||||||||||||
How do I create an image in OpenStack? | Как загрузить образ в OpenStack? | ||||||||||||||||
|
| ||||||||||||||||
shell curl -L https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img –output ~/ubuntu-18-04-cloud-amd64 | shell curl -L https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img –output ~/ubuntu-18-04-cloud-amd64 | ||||||||||||||||
|
| ||||||||||||||||
|
| ||||||||||||||||
|
| ||||||||||||||||
Also, you can run the container and mount an openrc file and a downloaded Ubuntu image in it: | Также можно запустить контейнер, смонтировать в него openrc-файл и скачанный локально образ Ubuntu: | ||||||||||||||||
shell docker run -ti –rm -v ~/ubuntu-18-04-cloud-amd64:/ubuntu-18-04-cloud-amd64 -v ~/.openrc:/openrc jmcvea/openstack-client | shell docker run -ti –rm -v ~/ubuntu-18-04-cloud-amd64:/ubuntu-18-04-cloud-amd64 -v ~/.openrc:/openrc jmcvea/openstack-client | ||||||||||||||||
|
| ||||||||||||||||
shell source /openrc | shell source /openrc | ||||||||||||||||
|
| ||||||||||||||||
shell / # openstack volume type list +————————————–+—————+———–+ | ID | Name | Is Public | +————————————–+—————+———–+ | 8d39c9db-0293-48c0-8d44-015a2f6788ff | ko1-high-iops | True | | bf800b7c-9ae0-4cda-b9c5-fae283b3e9fd | dp1-high-iops | True | | 74101409-a462-4f03-872a-7de727a178b8 | ko1-ssd | True | | eadd8860-f5a4-45e1-ae27-8c58094257e0 | dp1-ssd | True | | 48372c05-c842-4f6e-89ca-09af3868b2c4 | ssd | True | | a75c3502-4de6-4876-a457-a6c4594c067a | ms1 | True | | ebf5922e-42af-4f97-8f23-716340290de2 | dp1 | True | | a6e853c1-78ad-4c18-93f9-2bba317a1d13 | ceph | True | +————————————–+—————+———–+ | shell / # openstack volume type list +————————————–+—————+———–+ | ID | Name | Is Public | +————————————–+—————+———–+ | 8d39c9db-0293-48c0-8d44-015a2f6788ff | ko1-high-iops | True | | bf800b7c-9ae0-4cda-b9c5-fae283b3e9fd | dp1-high-iops | True | | 74101409-a462-4f03-872a-7de727a178b8 | ko1-ssd | True | | eadd8860-f5a4-45e1-ae27-8c58094257e0 | dp1-ssd | True | | 48372c05-c842-4f6e-89ca-09af3868b2c4 | ssd | True | | a75c3502-4de6-4876-a457-a6c4594c067a | ms1 | True | | ebf5922e-42af-4f97-8f23-716340290de2 | dp1 | True | | a6e853c1-78ad-4c18-93f9-2bba317a1d13 | ceph | True | +————————————–+—————+———–+ | ||||||||||||||||
|
| ||||||||||||||||
shell
openstack image create –private –disk-format qcow2 –container-format bare | shell
openstack image create –private –disk-format qcow2 –container-format bare | ||||||||||||||||
|
| ||||||||||||||||
text / # openstack image show ubuntu-18-04-cloud-amd64 +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | Field | Value | +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | checksum | 3443a1fd810f4af9593d56e0e144d07d | | container_format | bare | | created_at | 2020-01-10T07:23:48Z | | disk_format | qcow2 | | file | /v2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/file | | id | 01998f40-57cc-4ce3-9642-c8654a6d14fc | | min_disk | 0 | | min_ram | 0 | | name | ubuntu-18-04-cloud-amd64 | | owner | bbf506e3ece54e21b2acf1bf9db4f62c | | properties | cinder_img_volume_type=’dp1-high-iops’, direct_url=’rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/snap’, locations=’[{u’url’: u’rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/snap’, u’metadata’: {}}]’ | | protected | False | | schema | /v2/schemas/image | | size | 343277568 | | status | active | | tags | | | updated_at | 2020-05-01T17:18:34Z | | virtual_size | None | | visibility | private | +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | text / # openstack image show ubuntu-18-04-cloud-amd64 +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | Field | Value | +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | checksum | 3443a1fd810f4af9593d56e0e144d07d | | container_format | bare | | created_at | 2020-01-10T07:23:48Z | | disk_format | qcow2 | | file | /v2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/file | | id | 01998f40-57cc-4ce3-9642-c8654a6d14fc | | min_disk | 0 | | min_ram | 0 | | name | ubuntu-18-04-cloud-amd64 | | owner | bbf506e3ece54e21b2acf1bf9db4f62c | | properties | cinder_img_volume_type=’dp1-high-iops’, direct_url=’rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/snap’, locations=’[{u’url’: u’rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/01998f40-57cc-4ce3-9642-c8654a6d14fc/snap’, u’metadata’: {}}]’ | | protected | False | | schema | /v2/schemas/image | | size | 343277568 | | status | active | | tags | | | updated_at | 2020-05-01T17:18:34Z | | virtual_size | None | | visibility | private | +——————+——————————————————————————————————————————————————————————————————————————————————————————————-+ | ||||||||||||||||
How to check whether the provider supports SecurityGroups? | Как проверить, поддерживает ли провайдер группы безопасности (security groups)? | ||||||||||||||||
Run the following command: | Достаточно выполнить команду | ||||||||||||||||
How to set up online disk resize | Как настроить работу онлайн-изменения размера дисков? | ||||||||||||||||
The OpenStack API states that the resize is completed successfully. However, Nova does not get any information about the resize from Cinder. As a result, the size of the disk in the guest OS remains the same. | OpenStack API успешно рапортует об изменении размера диска, но Cinder никак не оповещает Nova о том, что диск изменился, поэтому диск внутри гостевой ОС остается старого размера. | ||||||||||||||||
To get rid of this problem, you need to insert the Nova API access parameters into the | Для устранения проблемы необходимо прописать в | ||||||||||||||||
ini [nova] interface = admin insecure = {{ keystone_service_internaluri_insecure | bool }} auth_type = {{ cinder_keystone_auth_plugin }} auth_url = {{ keystone_service_internaluri }}/v3 password = {{ nova_service_password }} project_domain_id = default project_name = service region_name = {{ nova_service_region }} user_domain_id = default username = {{ nova_service_user_name }} | ini [nova] interface = admin insecure = {{ keystone_service_internaluri_insecure | bool }} auth_type = {{ cinder_keystone_auth_plugin }} auth_url = {{ keystone_service_internaluri }}/v3 password = {{ nova_service_password }} project_domain_id = default project_name = service region_name = {{ nova_service_region }} user_domain_id = default username = {{ nova_service_user_name }} | ||||||||||||||||
How to use
| Как использовать
| ||||||||||||||||
Disks in OpenStack | Диски в OpenStack | ||||||||||||||||
The node disk can be local or network. A local disk in OpenStack, is an ephemeral disk, and a network disk is a persistent disk (cinder storage). The first one is deleted along with the VM, and the second one remains in the cloud when the VM is deleted. | Диск узла может быть локальным или сетевым. В терминологии OpenStack локальный диск — это ephemeral disk, а сетевой — persistent disk (cinder storage). Первый удаляется вместе с ВМ, а второй остается в облаке, когда ВМ удаляется. | ||||||||||||||||
|
| ||||||||||||||||
|
| ||||||||||||||||
The
| Параметр
| ||||||||||||||||
The | В | ||||||||||||||||
| Какой диск закажется в зависимости от комбинации параметров, указано в таблице: | ||||||||||||||||
Network disk is recommended for master nodes and bastion host |
| ||||||||||||||||
| Рекомендация для master-узлов и бастиона — сетевой диск | ||||||||||||||||
Local disk is recommended for ephemeral nodes |
| ||||||||||||||||
| Рекомендация для ephemeral-узлов — локальный диск | ||||||||||||||||
How do I check the disk volume in a flavor? |
| ||||||||||||||||
shell | Как проверить объем диска в flavor? | ||||||||||||||||
openstack flavor show m1.medium-50g -c disk +——-+——-+ | Field | Value | +——-+——-+ | disk | 50 | +——-+——-+ | shell | ||||||||||||||||
How to override a default volume type of cloud provider? | openstack flavor show m1.medium-50g -c disk +——-+——-+ | Field | Value | +——-+——-+ | disk | 50 | +——-+——-+ | ||||||||||||||||
If there are several types of disks in a cloud provider, you can set a default disk type for the image in order to select a specific VM’s disk type. To do this, specify the name of a disk type in the image metadata. | Как переопределить тип диска по умолчанию cloud-провайдера? | ||||||||||||||||
Also, you may need to create a custom OpenStack image; the “How do I create an image in OpenStack” section describes how to do it | Если у cloud-провайдера доступно несколько типов, вы можете указать тип диска по умолчанию для образа. Для этого необходимо указать название типа диска в метаданных образа. Тогда все ВМ, создаваемые из этого образа, будут использовать указанный тип сетевого диска. | ||||||||||||||||
Example: | Также вы можете создать новый образ OpenStack следующим образом. | ||||||||||||||||
shell openstack volume type list openstack image set ubuntu-18-04-cloud-amd64 –property cinder_img_volume_type=VOLUME_NAME | Пример: | ||||||||||||||||
OFFLINE disk resize | shell openstack volume type list openstack image set ubuntu-18-04-cloud-amd64 –property cinder_img_volume_type=VOLUME_NAME | ||||||||||||||||
Some cloud providers may not support ONLINE disk resizing. If you get the following error, then you need to reduce the number of StatefulSet replicas to 0, wait for disk resizing and return the number of replicas that was before the start of the operation. | Оффлайн-изменение размера диска | ||||||||||||||||
text
Warning VolumeResizeFailed 5s (x11 over 41s) external-resizer cinder.csi.openstack.org | Некоторые облачные провайдеры (например, VK Cloud) могут не поддерживать онлайн-изменение дисков. Если при изменении размера диска вы получаете следующую ошибку, необходимо уменьшить количество реплик StatefulSet до 0, подождать изменения размера дисков и вернуть обратно количество реплик, которое было до начала операции. | ||||||||||||||||
text
Warning VolumeResizeFailed 5s (x11 over 41s) external-resizer cinder.csi.openstack.org |