Deckhouse Kubernetes Platform на Huawei Cloud

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

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

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

Для взаимодействия с ресурсами в облаке Huawei Cloud компоненты Deckhouse используют 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», «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"
          }
      ]
  }