Deckhouse Virtualization Platform на bare metal
Создайте проект и администратора проекта (в примере используется проект test-project
и пользователь test-user@deckhouse.io
, измените их, если необходимо):
1d8 k create -f - <<EOF
2---
3apiVersion: deckhouse.io/v1alpha2
4kind: Project
5metadata:
6 name: test-project
7spec:
8 description: test-project
9 projectTemplateName: default
10 parameters:
11 # Квоты проекта.
12 resourceQuota:
13 requests:
14 cpu: 20
15 memory: 20Gi
16 limits:
17 cpu: 20
18 memory: 20Gi
19 # Администраторы проекта.
20 administrators:
21 - subject: User
22 name: test-user
23---
24apiVersion: deckhouse.io/v1
25kind: User
26metadata:
27 name: test-user
28spec:
29 # e-mail пользователя.
30 email: test-user@deckhouse.io
31 # это хэш пароля k7q8e3m7g5, сгенерированного сейчас
32 # сгенерируйте свой или используйте этот, но только для тестирования
33 # echo -n 'k7q8e3m7g5' | htpasswd -BinC 10 "" | cut -d: -f2 | tr -d '\n' | base64 -w0; echo
34 # возможно, захотите изменить
35 password: 'JDJhJDEwJFByNDVGbU10ZWJROWZBVjVudi9XVHVucHFMZWp5NS9aeHB5Wlg4a1BoN3dYUjl1VlpBWnVP'
36---
37apiVersion: rbac.authorization.k8s.io/v1
38kind: RoleBinding
39metadata:
40 namespace: test-project
41 name: admin
42subjects:
43 - kind: User
44 name: test-user@deckhouse.io
45 apiGroup: rbac.authorization.k8s.io
46roleRef:
47 kind: ClusterRole
48 # Роль пользователя.
49 name: d8:use:role:admin
50 apiGroup: rbac.authorization.k8s.io
51EOF
Откройте веб-интерфейс генерации файла 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 на этом компьютере для управления кластером. Дальнейшие команды выполняйте на этом компьютере.
Создайте виртуальную машину:
1kubectl create -f - <<EOF
2---
3apiVersion: virtualization.deckhouse.io/v1alpha2
4kind: VirtualImage
5metadata:
6 name: ubuntu-2204
7 namespace: test-project
8spec:
9 storage: ContainerRegistry
10 dataSource:
11 type: HTTP
12 http:
13 url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
14---
15apiVersion: virtualization.deckhouse.io/v1alpha2
16kind: VirtualDisk
17metadata:
18 name: disk
19 namespace: test-project
20spec:
21 dataSource:
22 objectRef:
23 kind: VirtualImage
24 name: ubuntu-2204
25 type: ObjectRef
26 persistentVolumeClaim:
27 size: 4G
28---
29apiVersion: virtualization.deckhouse.io/v1alpha2
30kind: VirtualMachine
31metadata:
32 name: vm
33 namespace: test-project
34spec:
35 virtualMachineClassName: generic
36 runPolicy: AlwaysOn
37 blockDeviceRefs:
38 - kind: VirtualDisk
39 name: disk
40 cpu:
41 cores: 1
42 memory:
43 size: 1Gi
44EOF
Выведите список виртуальных машин, чтобы увидеть статус виртуальной машины:
1kubectl get vm -o wide
После успешного старта виртуальная машина должна перейти в статус Running
.
Пример вывода:
1$ kubectl get vm -o wide
2NAME PHASE CORES COREFRACTION MEMORY NEED RESTART AGENT MIGRATABLE NODE IPADDRESS AGE
3vm Running 1 100% 1Gi False False True virtlab-pt-1 10.66.10.19 6m18s
Подключитесь к виртуальной машине, введите логин (в примере — test-user@deckhouse.io
) и пароль:
1d8 v console -n test-project vm
Поздравляем! Вы создали виртуальную машину и подключились к ней.