kubernetes
Роль Kubernetes
Эта роль Ansible устанавливает кластер Kubernetes.
Переменные роли
Переменные, которые можно передать этой роли, и краткое описание их назначения:
# Версия для установки или последняя
kube_version: 1.28.7
# Тип узла: front или wn
kube_type_of_node: front
# IP-адрес или имя узла Kube front
kube_server: "{{ ansible_default_ipv4.address }}"
# Токен безопасности
kube_token: "kube01.{{ lookup('password', '/tmp/tokenpass chars=ascii_lowercase,digits length=16') }}"
# Время действия токена (0 - не истекает)
kube_token_ttl: 0
# CIDR сети POD
kube_pod_network_cidr: 10.244.0.0/16
# Дополнительные аргументы kubelet
kubelet_extra_args: ''
# Флаг для установки HELM
kube_install_helm: true
# Если true, запуск kubernetes etcd в ramdisk
etcd_in_RAM: true
# Развертывание панелей управления
kube_deploy_dashboard: true
# Значение для параметра kubeadm init --apiserver-advertise-address
kube_api_server: 0.0.0.0
# Набор git-репозиториев и путей, которые будут применены в кластере. Следует этому формату:
# kube_apply_repos: [{repo: "https://github.com/kubernetes-incubator/metrics-server", version: "master", path: "deploy/1.8+/"}]
kube_apply_repos: []
# Флаг для установки Metrics-Server
kube_install_metrics: false
# Флаг для включения поддержки GPU
enable_gpu: false
# Имя (и версия) роли Ansible, которая будет включена, если `enable_gpu == true'
gpu_support_role: git+https://baltig.infn.it/infn-cloud/ansible-role-gpu-support,vX.Y.Z
Зависимости
- ansible-role-gpu-support (если
enable_gpu == true
) - ansible-role-containerd (от geerlingguy)
ETCD в RAM
Требования
Кластер должен использовать containerd в качестве контейнерного времени выполнения, и etcd должен работать как pod в кластере kubernetes, как при установке кластера с помощью kubeadm.
Ручная установка для существующего кластера
Сначала скачайте nerdctl здесь и переместите исполняемый файл в /usr/local/bin
. Затем скопируйте содержимое папки files_etcdRAM
следующим образом:
files_etcdRAM/usr/lib/systemd/system/kubelet.service.d ---> /usr/lib/systemd/system/kubelet.service.d
files_etcdRAM/etc/cron.d ---> /etc/cron.d
files_etcdRAM/opt/etcdRAM/bin ---> /opt/etcdRAM/bin
Перезапустите daemon
и обновите crontab
:
systemctl daemon-reload
crontab /etc/cron.d/etcdRAM-etcd
Чтобы смонтировать директорию хранения /var/lib/etcd
как ramdisk, необходимо добавить одну строку в /etc/fstab
:
tmpfs /var/lib/etcd tmpfs defaults,noatime,size=2g 0 0
Наконец, удалите все содержимое из директории /var/lib/etcd
и смонтируйте ramdisk:
rm -rf /var/lib/etcd/*
mount -a
Благодарности
Также см. пост и оригинальный репозиторий, где это было описано.
ansible-galaxy install DODAS-TS/ansible-role-kubernetes