k8s_join
freehck.k8s_join
Присоединение узлов к кластеру Kubernetes
Описание
Эта роль применяется ко всем узлам и мастер-узлу Kubernetes. У мастер-узла должно быть установлено k8s_join_is_master
в значение true
.
Переменные роли
k8s_join_command_filename
: Имя файла для хранения токена/команды авторизации, по умолчанию k8s-join-command
k8s_join_is_master
: Этот логический флаг должен быть установлен в true
только для одного конкретного хоста в кластере Kubernetes, который является мастер-узлом; по умолчанию false
Пример
inventory
k8s-node-0 ansible_host=10.118.19.10 k8s_is_master=true
k8s-node-1 ansible_host=10.118.19.11
k8s-node-2 ansible_host=10.118.19.12
[k8s_cluster]
k8s-node-0
k8s-node-1
k8s-node-2
playbook.yml
- hosts: k8s_cluster
become: true
vars:
# общие параметры
k8s_ver: "1.16.2-00"
k8s_node_ip: "{{ ansible_host }}"
# k8s_base — это неявная зависимость
k8s_base_node_ip: "{{ k8s_node_ip }}"
k8s_base_ver: "{{ k8s_ver }}"
# k8s_init — это неявная зависимость
k8s_init_cidr: "192.168.0.0/16"
k8s_init_node_ip: "{{ ansible_host }}"
k8s_init_node_name: "{{ inventory_hostname }}"
# конфигурация этой роли
k8s_join_is_master: "{{ k8s_is_master | default('false') }}"
roles:
- role: freehck.k8s_base
- role: freehck.k8s_init
when: k8s_join_is_master
- role: freehck.k8s_join
Примечания
Как видно из примера, эта роль предназначена для применения как к мастер-узлу, так и к узлам Kubernetes. На мастер-узле эта роль генерирует токен авторизации и сохраняет его в файл на контроллере ansible. Не коммитьте этот файл, он истечет через некоторое время! Затем на узлах этот токен используется для присоединения к кластеру.
Установка
Эту роль можно установить из Ansible Galaxy:
ansible-galaxy install freehck.k8s_join
Лицензия
MIT
Информация об авторе
Дмитрий Кашин, freehck@freehck.ru
ansible-galaxy install freehck/ansible-role-k8s-join