istvano.microk8s
Ansible Rola: microk8s
Rola do pobierania i instalacji microk8s, najprostszego i najmniejszego K8s do produkcji.
Wymagania
- Ansible >= 2.7
- Dystrybucja Linuxa
- Rodzina Debian
- Ubuntu
- Xenial (16.04)
- Bionic (18.04)
- Focal (20.04) (nieprzetestowane)
- Jammy (22.04) (nieprzetestowane)
- Ubuntu
- Arch Linux (nieprzetestowane)
- Rodzina Debian
Licencja
MIT
Użycie
Zmienne roli
Niektóre zmienne dostępne w tej roli są wymienione tutaj. Pełny zestaw znajduje się w [defaults/main.yml](defaults/main.yml)
.
microk8s_version
: Wersja do użycia, domyślnie1.27/stable
.microk8s_plugins
: Włącz/wyłącz różne wtyczki. Łańcuch zostanie przekazany jakoarg
podczas włączania dodatku przy użyciuname:arg
.microk8s_enable_HA
: Włącz/wyłącz wysoką dostępność.microk8s_group_HA
: Grupa hostów, których członkowie będą tworzyć klaster HA.microk8s_group_WORKERS
: Grupa hostów, których członkowie będą działać tylko jako węzły robocze (bez komponentów kontrolnych).microk8s_csr_template
: Jeśli zdefiniowane, spowoduje użycie niestandardowego CSR przy generowaniu certyfikatów.
Podstawowy playbook
- hosts: serwery
roles:
- role: istvano.microk8s
vars:
microk8s_plugins:
dns: "1.1.1.1"
istio: true
ingress: true
Uwaga: przy zastępowaniu listy wtyczek zaleca się skopiowanie całej listy wtyczek z
defaults/main.yml
, ponieważ niektóre zadania Ansible się na nie powołują (np. helm3
) i wdrożenie może nie powieść się.
Szablon niestandardowego żądania certyfikatu
Może być przydatne dostosowanie szablonu żądania certyfikatu używanego przez MicroK8s do generowania certyfikatów klastra. Na przykład można dodać dodatkowe SAN-y do certyfikatów, aby certyfikaty MicroK8s były ważne, gdy są używane z zewnątrz klastra, np. przez odwrotny proxy.
Aby wygenerować szablon CSR, najłatwiej jest prawdopodobnie użyć roli bez
szablonu, a następnie skopiować CSR z
/var/snap/microk8s/current/certs/csr.conf.template
do katalogu szablonów swojego playbooka, edytować, a następnie ustawić zmienną microk8s_csr_template
odpowiednio i ponownie uruchomić playbooka.
Dodawanie tylko węzłów roboczych (tylko 1.23+)
Można skonfigurować dodatkowe węzły, aby działały tylko jako węzły robocze w klastrze microk8s. Można to osiągnąć, konfigurując grupę hostów Ansible microk8s_WORKERS
(nazwa grupy jest konfigurowalna za pomocą microk8s_group_WORKERS
). Każdy host wymieniony w grupie hostów uruchomi microk8s join .... --worker
, więcej informacji można znaleźć tutaj: mikrok8s-klastrowanie.
Testowanie
Użycie wrappera Molecule i systemowego Pythona
./moleculew lint
./moleculew create
./moleculew list
./moleculew check
./moleculew test
Użycie środowiska wirtualnego Pythona
- Skonfiguruj środowisko wirtualne
$ python3 -m venv venv
- Aktywuj środowisko
$ . venv/bin/activate
- Zainstaluj Molecule z opcjami lint i Docker
$ pip install 'molecule[lint,docker]'
- Zainstaluj aktualny pakiet Ansible, jeśli to konieczne
$ pip install ansible
- Wykonaj polecenia testowe:
molecule lint
molecule create
molecule list
molecule check
molecule test
ansible-galaxy install istvano.microk8s