stackhpc.os-container-infra

OpenStack Klastry Kontenerów

Ta rola może być używana do manipulacji klastrami kontenerów w Magnum za pomocą klienta Pythona Magnum.

Wymagania

  • python 2.6+
  • openstacksdk
  • python-magnumclient
  • python-heatclient
  • python-novaclient

Zmienne Roli

os_container_infra_cloud to nazwa chmury (konfigurowana w pliku cloud.yaml, opcjonalne).

os_container_infra_user to nazwa użytkownika SSH, np. fedora.

os_container_infra_state musi być ustawiony na 'present', 'absent', 'query' lub 'upgrade'.

os_container_infra_cluster_name to nazwa klastra.

os_container_infra_cluster_template_name to szablon klastra do użycia.

os_container_infra_keypair to klucz do użycia w celu dostępu do węzłów klastra.

os_container_infra_master_count to liczba węzłów głównych.

os_container_infra_node_count to liczba węzłów roboczych.

os_container_infra_default_interface to domyślna sieć do użycia w celu dotarcia do klastra.

os_container_infra_interfaces to lista dodatkowych sieci do podłączenia do węzłów klastra.

os_container_infra_inventory to miejsce, gdzie zostanie zapisany plik inwentaryzacyjny.

os_container_infra_environment_group to opcjonalna nazwa grupy Ansible, do której zostaną dodane wszystkie hosty klastra i localhost. Może to być przydatne, jeśli istnieje pojedyncza grupa, która reprezentuje środowisko, takie jak rozwój/testowanie/produkcja.

os_container_infra_coe to silnik orkiestracji kontenerów do użycia. Ważne opcje to kubernetes lub swarm.

os_container_infra_k8s_version to konfigurowana wersja Kubernetes, która ma być użyta, gdy os_container_infra_state = upgrade.

Przykładowy Playbook

Poniższy playbook tworzy klaster, podłącza dwa interfejsy do serwerów w klastrze i tworzy plik inwentaryzacyjny, wykorzystując informacje o autoryzacji dostępne w zmiennych środowiskowych (co jest domyślnym zachowaniem):

---
- hosts: localhost
  become: False
  gather_facts: False
  roles:
  - role: stackhpc.os-container-infra
    os_container_infra_user: fedora
    os_container_infra_state: present
    os_container_infra_cluster_name: k8s
    os_container_infra_cluster_template_name: k8s-fa29
    os_container_infra_roles:
    - name: storage_client
      groups: ["{{ os_container_infra_worker_group }}"]
    os_container_infra_keypair: bharat
    os_container_infra_default_interface: default
    os_container_infra_master_group:
      - name: master
        count: 1
    os_container_infra_worker_group:
      - name: minion
        count: 2
...

Aby uwierzytelnić się, korzystając z informacji przekazywanych przez playbook, należy dostarczyć zmienną słownikową w następujący sposób:

    os_container_infra_auth:
      auth_url: http://10.60.253.1:5000
      project_name: p3
      username: username
      password: password
      user_domain_name: Default
      project_domain_name: Default
      region_name: RegionOne

Aby uwierzytelnić się, korzystając z informacji przechowywanych w .config/openstack/clouds.yaml lub /etc/openstack/clouds.yaml, które można wygenerować za pomocą naszej roli stackhpc.os-config, należy dodać:

    os_container_infra_auth_type: cloud
    os_container_infra_cloud: mycloud

Dla aktualizacji klastra Kubernetes:

    ---
    - hosts: cluster
      gather_facts: False
      become: yes
      roles:
      - role: stackhpc.os-container-infra
        os_container_infra_state: upgrade
        os_container_infra_k8s_version: v1.13.4
        os_container_infra_coe: kubernetes
    ...

Informacje Debugowania Ansible

Aby zobaczyć ostrzeżenia emitowane przez tę rolę, wyeksportuj następującą zmienną przed uruchomieniem ansible:

export ANSIBLE_LOG_PATH=ansible.log
export ANSIBLE_DEBUG=1

Aby filtrować te ostrzeżenia:

tail -f ansible.log | grep DEBUG

Znane Problemy

Moduły Ansible template zapisują plik inwentaryzacyjny i mogą zgłaszać brakujący libselinux-python, który jest już zainstalowany w większości dystrybucji Linux. Jeśli to wystąpi, po prostu utwórz dowiązanie symboliczne do katalogu selinux w swoim istniejącym wirtualnym środowisku:

ln -s /usr/lib64/python2.7/site-packages/selinux/ venv/lib64/python2.7/site-packages/

Dla nowego wirtualnego środowiska:

virtualenv --system-site-packages venv

Licencja

Apache 2

Informacje o Autorze

O projekcie

Provision Kubernetes or Docker Swarm cluster using Magnum

Zainstaluj
ansible-galaxy install stackhpc.os-container-infra
Licencja
apache-2.0
Pobrania
429
Właściciel
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.