ALT Container OS подветка K8S: различия между версиями
Kaf (обсуждение | вклад) Нет описания правки |
Kaf (обсуждение | вклад) Нет описания правки |
||
Строка 4: | Строка 4: | ||
В настоящее время (16.11.2021) дистрибутив ALTLinux обеспечивает разворачивание kubernetes-кластера под двумя типами | В настоящее время (16.11.2021) дистрибутив ALTLinux обеспечивает разворачивание kubernetes-кластера под двумя типами | ||
"движков" (см. [[Kubernetes]]): | "движков" (см. [[Kubernetes]]): | ||
* ''docker''; | |||
* ''crio'' (''podman'') | |||
В текущей реализации был выбран вариант движка ''crio'' обеспечивающий повышенный уровень защита запускаемых контейнеров. | В текущей реализации был выбран вариант движка ''crio'' обеспечивающий повышенный уровень защита запускаемых контейнеров. | ||
Строка 11: | Строка 11: | ||
в раках данной подветки можно запускать ''docker-контейнеры'', сервисы под ''docker-compose'' и организовавать | в раках данной подветки можно запускать ''docker-контейнеры'', сервисы под ''docker-compose'' и организовавать | ||
параллельно (или вместо) с кластером ''kubernetes'' и ''docker swarm'' кластер. | параллельно (или вместо) с кластером ''kubernetes'' и ''docker swarm'' кластер. | ||
== QCOW2 образ подветки altcos/x86_64/Sisyphus/k8s == | |||
В настоящее время реализован образ ''QCOW2'' подветки '''altcos/x86_64/sisyphus/k8s'''. | В настоящее время реализован образ ''QCOW2'' подветки '''altcos/x86_64/sisyphus/k8s'''. | ||
Так как размер основного диска достаточно небольшой (около 4GB) для хранения образов и запуска pod'ов необходимо создать дополнительный диск. Для этого создайте файл необходимого размера (например 30GB): | |||
<tt> | |||
dd if=/dev/zero of=hdb bs=1G count=30 | |||
</tt> | |||
Строка 21: | Строка 27: | ||
* копирование файлов конфигураций и "перекрытых" при монтировании подкаталогов каталога ''/var/lib/''. | * копирование файлов конфигураций и "перекрытых" при монтировании подкаталогов каталога ''/var/lib/''. | ||
* создание systemd-сервиса для инициализации master-узла kubernetes-кластера. | * создание systemd-сервиса для инициализации master-узла kubernetes-кластера. | ||
Файл конфигурации выглядит следующим образом: | |||
variant: fcos | |||
version: 1.3.0 | |||
passwd: | |||
users: | |||
- name: altcos | |||
groups: | |||
- wheel | |||
- docker | |||
password_hash: $y$j9T$ZEYmKSGPiNFOZNTjvobEm1$IXLGt5TxdNC/OhJyzFK5NVM.mt6VvdtP6mhhzSmvE94 | |||
ssh_authorized_keys: | |||
- ssh-rsa ... user@domain | |||
storage: | |||
disks: | |||
- | |||
device: /dev/sdb | |||
wipe_table: true | |||
partitions: | |||
- number: 1 | |||
label: varlib | |||
filesystems: | |||
- path: /var/lib | |||
device: /dev/sdb1 | |||
format: btrfs | |||
wipe_filesystem: true | |||
label: varlib | |||
with_mount_unit: true | |||
trees: | |||
- local: root # скопировать файловое дерево локального каталога root | |||
path: / | |||
files: | |||
- path: /etc/docker/daemon.json # переписав файл конфигурации dockerd с поддержкой overlay-драйвера BTRFS | |||
overwrite: true | |||
- path: /etc/containers/storage.conf # переписав файл конфигурации crio/podman с поддержкой overlay-драйвера BTRFS | |||
overwrite: true | |||
systemd: | |||
units: | |||
- name: initk8s.service | |||
enabled: true | |||
contents: | | |||
[Unit] | |||
Description=Start up kubernetes in master mode | |||
After=crio.service kube-proxy.service kubelet.service systemd-networkd.service systemd-resolved.service | |||
[Service] | |||
Type=oneshot | |||
RemainAfterExit=yes | |||
Environment="KUBECONFIG=/etc/kubernetes/admin.conf" | |||
ExecStartPre=loadDockerArchiveImages.sh | |||
ExecStart=kubeadm init --cri-socket=/var/run/crio/crio.sock --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification | |||
ExecStartPost=kubectl taint nodes localhost node-role.kubernetes.io/master- | |||
[Install] | |||
WantedBy=multi-user.target |
Версия от 13:51, 16 ноября 2021
Подветка K8S обеспечивает разворачивание серверов для организации kubernetes-кластера.
В настоящее время (16.11.2021) дистрибутив ALTLinux обеспечивает разворачивание kubernetes-кластера под двумя типами "движков" (см. Kubernetes):
- docker;
- crio (podman)
В текущей реализации был выбран вариант движка crio обеспечивающий повышенный уровень защита запускаемых контейнеров. Но, так как подветка K8S наследуется от основной ветки потока, включающей движок docker, в раках данной подветки можно запускать docker-контейнеры, сервисы под docker-compose и организовавать параллельно (или вместо) с кластером kubernetes и docker swarm кластер.
QCOW2 образ подветки altcos/x86_64/Sisyphus/k8s
В настоящее время реализован образ QCOW2 подветки altcos/x86_64/sisyphus/k8s. Так как размер основного диска достаточно небольшой (около 4GB) для хранения образов и запуска pod'ов необходимо создать дополнительный диск. Для этого создайте файл необходимого размера (например 30GB):
dd if=/dev/zero of=hdb bs=1G count=30
Для запуска необходимо подготовить YML butane-файл, обеспечивающий следующий функционал при запуске образа:
- форматирование дополнительного диска под файловую систему BTRFS для размещения образов и контейнеров;
- монтирование его в каталог /var/lib;
- копирование файлов конфигураций и "перекрытых" при монтировании подкаталогов каталога /var/lib/.
- создание systemd-сервиса для инициализации master-узла kubernetes-кластера.
Файл конфигурации выглядит следующим образом:
variant: fcos version: 1.3.0 passwd: users: - name: altcos groups: - wheel - docker password_hash: $y$j9T$ZEYmKSGPiNFOZNTjvobEm1$IXLGt5TxdNC/OhJyzFK5NVM.mt6VvdtP6mhhzSmvE94 ssh_authorized_keys: - ssh-rsa ... user@domain storage: disks: - device: /dev/sdb wipe_table: true partitions: - number: 1 label: varlib filesystems: - path: /var/lib device: /dev/sdb1 format: btrfs wipe_filesystem: true label: varlib with_mount_unit: true trees: - local: root # скопировать файловое дерево локального каталога root path: / files: - path: /etc/docker/daemon.json # переписав файл конфигурации dockerd с поддержкой overlay-драйвера BTRFS overwrite: true - path: /etc/containers/storage.conf # переписав файл конфигурации crio/podman с поддержкой overlay-драйвера BTRFS overwrite: true systemd: units: - name: initk8s.service enabled: true contents: | [Unit] Description=Start up kubernetes in master mode After=crio.service kube-proxy.service kubelet.service systemd-networkd.service systemd-resolved.service [Service] Type=oneshot RemainAfterExit=yes Environment="KUBECONFIG=/etc/kubernetes/admin.conf" ExecStartPre=loadDockerArchiveImages.sh ExecStart=kubeadm init --cri-socket=/var/run/crio/crio.sock --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification ExecStartPost=kubectl taint nodes localhost node-role.kubernetes.io/master- [Install] WantedBy=multi-user.target