Deckhouse Virtualization Platform на bare metal
Создайте проект и администратора проекта (в примере используется проект test-project
и пользователь test-user@deckhouse.io
, измените их, если необходимо):
d8 k create -f - <<EOF
---
apiVersion: deckhouse.io/v1alpha2
kind: Project
metadata:
name: test-project
spec:
description: test-project
projectTemplateName: default
parameters:
# Квоты проекта.
resourceQuota:
requests:
cpu: 20
memory: 20Gi
limits:
cpu: 20
memory: 20Gi
# Администраторы проекта.
administrators:
- subject: User
name: test-user
---
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: test-user
spec:
# e-mail пользователя.
email: test-user@deckhouse.io
# это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
# сгенерируйте свой или используйте этот, но только для тестирования
# echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2 | base64 -w0
# возможно, захотите изменить
password: <GENERATED_PASSWORD_HASH>
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
namespace: test-project
name: admin
subjects:
- kind: User
name: test-user@deckhouse.io
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
# Роль пользователя.
name: d8:use:role:admin
apiGroup: rbac.authorization.k8s.io
EOF
Откройте веб-интерфейс генерации файла kubeconfig, для удаленного доступа к API-серверу. Адрес веб-интерфейса формируется в соответствии с шаблоном DNS-имен, указанным в глобальном параметре publicDomainTemplate. Например, если publicDomainTemplate: %s.kube.my
, то веб-интерфейс будет доступен по адресу kubeconfig.kube.my
.
Введите логин (в примере — test-user@deckhouse.io
) и пароль созданного пользователя и получите конфигурационный файл для доступа к кластеру:
На компьютере, имеющем сетевой доступ к развернутому кластеру, создайте файл ~/.kube/config
(для Linux/MacOS) или %USERPROFILE%\.kube\config
(для Windows) и вставьте в него конфигурацию kubectl, приведенную на вкладке Raw Config.
Вы настроили kubectl на этом компьютере для управления кластером. Дальнейшие команды выполняйте на этом компьютере.
Создайте виртуальную машину:
kubectl create -f - <<EOF
---
apiVersion: virtualization.deckhouse.io/v1alpha2
kind: VirtualImage
metadata:
name: ubuntu-2204
namespace: test-project
spec:
storage: ContainerRegistry
dataSource:
type: HTTP
http:
url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
---
apiVersion: virtualization.deckhouse.io/v1alpha2
kind: VirtualDisk
metadata:
name: disk
namespace: test-project
spec:
dataSource:
objectRef:
kind: VirtualImage
name: ubuntu-2204
type: ObjectRef
persistentVolumeClaim:
size: 4G
---
apiVersion: virtualization.deckhouse.io/v1alpha2
kind: VirtualMachine
metadata:
name: vm
namespace: test-project
spec:
virtualMachineClassName: generic
runPolicy: AlwaysOn
blockDeviceRefs:
- kind: VirtualDisk
name: disk
cpu:
cores: 1
memory:
size: 1Gi
EOF
Выведите список виртуальных машин, чтобы увидеть статус виртуальной машины:
После успешного старта виртуальная машина должна перейти в статус Running
.
Пример вывода:
# kubectl get vm -o wide
NAME PHASE CORES COREFRACTION MEMORY NEED RESTART AGENT MIGRATABLE NODE IPADDRESS AGE
vm Running 1 100% 1Gi False False True virtlab-pt-1 10.66.10.19 6m18s
Подключитесь к виртуальной машине, введите логин (в примере — test-user@deckhouse.io
) и пароль:
Поздравляем! Вы создали виртуальную машину и подключились к ней.