Deckhouse Kubernetes Platform на Huawei Cloud

Установка Deckhouse Kubernetes Platform на Huawei Cloud возможна только в Enterprise Edition. Ознакомиться с условиями и ценами.

Перед началом установки убедитесь в наличии квот облачного провайдера, необходимых для развертывания вашего кластера.

Чтобы использовать ContainerdV2 в качестве container runtime на узлах кластера, ОС на виртуальных машинах должны соответствовать следующим требованиям:

  • ядро Linux версии 5.8 и новее;
  • поддержка CgroupsV2;
  • systemd версии 244 и новее;
  • поддержка модуля ядра erofs.

Подробнее — в документации.

Deckhouse Kubernetes Platform, начиная с версии 1.74, имеет механизм контроля целостности модулей, который защищает их от подмены и изменения. Этот механизм включается автоматически при поддержке операционной системой на узлах, где установлен Deckhouse, модуля ядра erofs. При отсутствии этого модуля ядра Deckhouse продолжит работу без механизма контроля целостности модулей, при этом появится алерт о неработоспособности этой функциональности.

На виртуальных машинах должен быть установлен пакет cloud-init. После запуска виртуальной машины должны быть запущены следующие службы, связанные с этим пакетом :

  • cloud-config.service;
  • cloud-final.service;
  • cloud-init.service.

Провайдер поддерживает работу только с одним диском в шаблоне виртуальной машины. Убедитесь, что шаблон содержит только один диск.

Для взаимодействия с ресурсами в облаке Huawei Cloud компоненты Deckhouse Kubernetes Platform используют API Huawei Cloud. Для настройки этого подключения требуется создать пользователя в сервисе Huawei Cloud IAM и назначить ему соответствующие права доступа.

Настройка IAM через веб-интерфейс

Для настройки IAM через веб-интерфейс создайте новую группу пользователей и назначьте ей необходимые права. Для этого выполните следующие шаги:

  1. Перейдите в раздел «Identity and Access Management (IAM)».
  2. Откройте страницу «User Groups» и нажмите «Create User Group».
  3. В поле «Name» укажите имя группы (например, deckhouse).
  4. Нажмите «OK» для создания группы.
  5. Выберите созданную группу из списка.
  6. На вкладке «Permissions» нажмите «Authorize».
  7. Укажите следующие политики: «ECS Admin», «VPC Administrator», «NAT Admin», «ELB FullAccess», «DEW KeypairFullAccess».
  8. Нажмите «Next», затем «OK» и завершите настройку, нажав «Finish».

Добавьте нового пользователя. Для этого выполните следующие шаги:

  1. Перейдите на страницу «Users» в разделе IAM и нажмите «Create User».
  2. В поле «Username» введите имя пользователя (например, deckhouse).
  3. Установите «Access type» в значение «Programmatic access» и убедитесь, что «Management console access» отключен.
  4. Выберите «Access key» в качестве «Credential Type».
  5. Нажмите «Next».
  6. Выберите ранее созданную группу пользователей.
  7. Нажмите «Create», чтобы завершить создание пользователя.
  8. Нажмите «OK», чтобы загрузить Access Key ID и Secret Access Key. Убедитесь, что вы сохранили эти данные в надёжном месте, так как они понадобятся для доступа к API.

JSON-политики

Далее приведено содержание политик в формате JSON:

Политика «ECS Admin»

  {
  "Version": "1.1",
  "Statement": [
  {
      "Action": [
      "ecs:*:*",
      "evs:*:get",
      "evs:*:list",
      "evs:volumes:create",
      "evs:volumes:delete",
      "evs:volumes:attach",
      "evs:volumes:detach",
      "evs:volumes:manage",
      "evs:volumes:update",
      "evs:volumes:use",
      "evs:volumes:uploadImage",
      "evs:snapshots:create",
      "vpc:*:get",
      "vpc:*:list",
      "vpc:networks:create",
      "vpc:networks:update",
      "vpc:subnets:update",
      "vpc:subnets:create",
      "vpc:ports:*",
      "vpc:routers:get",
      "vpc:routers:update",
      "vpc:securityGroups:*",
      "vpc:securityGroupRules:*",
      "vpc:floatingIps:*",
      "vpc:publicIps:*",
      "ims:images:create",
      "ims:images:delete",
      "ims:images:get",
      "ims:images:list",
      "ims:images:update",
      "ims:images:upload"
      ],
      "Effect": "Allow"
  }
  ]
  }

Политика «VPC Administrator»

  {
      "Version": "1.1",
      "Statement": [
          {
              "Action": [
                  "vpc:vpcs:*",
                  "vpc:routers:*",
                  "vpc:networks:*",
                  "vpc:subnets:*",
                  "vpc:ports:*",
                  "vpc:privateIps:*",
                  "vpc:peerings:*",
                  "vpc:routes:*",
                  "vpc:lbaas:*",
                  "vpc:vpns:*",
                  "ecs:*:get",
                  "ecs:*:list",
                  "elb:*:get",
                  "elb:*:list"
              ],
              "Effect": "Allow"
          }
      ]
  }

Политика «NAT Admin»

  {
      "Version": "1.1",
      "Statement": [
          {
              "Action": [
                  "nat:*:*",
                  "vpc:*:*"
              ],
              "Effect": "Allow"
          }
      ]
  }

Политика «DEW KeypairFullAccess»

  {
      "Version": "1.1",
      "Statement": [
          {
              "Action": [
                  "kps:domainKeypairs:*",
                  "ecs:serverKeypairs:*"
              ],
              "Effect": "Allow"
          }
      ]
  }

Политика «ELB FullAccess»

  {
    "Version": "1.1",
    "Statement": [
        {
            "Action": [
                "elb:*:*",
                "vpc:*:get*",
                "vpc:*:list*",
                "ecs:*:get*",
                "ecs:*:list*"
            ],
            "Effect": "Allow"
        }
    ]
  }