Deckhouse Kubernetes Platform на Deckhouse Virtualization Platform (DVP)
Перед установкой обязательно проверьте:
- Квоты облачного провайдера для развёртывания кластера.
- На ВМ установлен пакет
cloud-init. После старта ВМ запущены службыcloud-config.service,cloud-final.service,cloud-init.service. - В шаблоне виртуальной машины присутствует только один диск.
Чтобы развернуть Deckhouse Kubernetes Platform на DVP, выполните предварительную настройку в системе виртуализации. Для этого создайте пользователя (ServiceAccount), назначьте ему права и получите kubeconfig.
-
Создайте пользователя (ServiceAccount и токен), выполнив следующую команду:
d8 k create -f -<<EOF apiVersion: v1 kind: ServiceAccount metadata: name: sa-demo namespace: default --- apiVersion: v1 kind: Secret metadata: name: sa-demo-token namespace: default annotations: kubernetes.io/service-account.name: sa-demo type: kubernetes.io/service-account-token EOF -
Назначьте созданному пользователю роль. Для этого выполните:
d8 k create -f -<<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: sa-demo-rb namespace: default subjects: - kind: ServiceAccount name: sa-demo namespace: default roleRef: kind: ClusterRole name: d8:use:role:manager apiGroup: rbac.authorization.k8s.io EOF -
Включите выдачу kubeconfig через API. Откройте настройки модуля
user-authn(создайте ресурс ModuleConfiguser-authn, если его нет):d8 k edit mc user-authn -
Добавьте следующую секцию в блок
settingsи сохраните изменения:publishAPI: enabled: true -
Сгенерируйте kubeconfig, который будет использоваться в файле первичной конфигурации кластера на следующем шаге:
cat <<EOF > kubeconfig apiVersion: v1 clusters: - cluster: server: https://<KUBE-APISERVER-URL> # Замените на реальный адрес API-сервера кластера. name: <CLUSTER-NAME> # Замените на имя кластера. contexts: - context: cluster: <CLUSTER-NAME> # Замените на имя кластера. user: sa-demo namespace: default name: sa-demo-context current-context: sa-demo-context kind: Config preferences: {} users: - name: sa-demo user: token: $(d8 k get secret sa-demo-token -n default -o json | jq -rc .data.token | base64 -d) EOFЗакодируйте сгенерированный kubeconfig в кодировке Base64 (он указывается в файле первичной конфигурации в таком виде):
base64 kubeconfig | tr -d '\n'