stackhpc.os-container-infra

OpenStack Container Cluster

Diese Rolle kann verwendet werden, um Containercluster in Magnum mit dem Magnum-Python-Client zu verwalten.

Anforderungen

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

Rollenvariablen

os_container_infra_cloud ist der Name der Cloud (konfiguriert in cloud.yaml, optional).

os_container_infra_user ist der Name des SSH-Nutzers, z. B. fedora.

os_container_infra_state muss entweder present, absent, query oder upgrade sein.

os_container_infra_cluster_name ist der Name des Clusters.

os_container_infra_cluster_template_name ist die Cluster-Vorlage, die für den Cluster verwendet werden soll.

os_container_infra_keypair ist das Schlüsselpair, das zum Zugriff auf die Cluster-Knoten verwendet wird.

os_container_infra_master_count ist die Anzahl der Master-Knoten.

os_container_infra_node_count ist die Anzahl der Worker-Knoten.

os_container_infra_default_interface ist das Standardnetzwerk, das verwendet wird, um den Cluster zu erreichen.

os_container_infra_interfaces ist eine Liste zusätzlicher Netzwerke, die an die Cluster-Knoten angeschlossen werden sollen.

os_container_infra_inventory ist der Zielort, an dem das Inventar gespeichert wird. Es kann nur eine Netzwerkverbindung standardmäßig an einem Cluster-Server angeschlossen werden.

os_container_infra_environment_group ist ein optionaler Ansible-Gruppenname, der allen Cluster-Hosts und localhost hinzugefügt wird. Dies kann nützlich sein, wenn es eine einzige Gruppe gibt, die eine Umgebung wie Entwicklung/Staging/Produktion repräsentiert.

os_container_infra_coe ist die zu verwendende Container-Orchestrierungs-Engine. Gültige Optionen sind kubernetes oder swarm.

os_container_infra_k8s_version ist eine konfigurierbare Kubernetes-Version, die verwendet wird, wenn os_container_infra_state = upgrade.

Beispiel-Playbook

Das folgende Playbook erstellt einen Cluster, fügt zwei Netzwerkschnittstellen zu den Servern im Cluster hinzu und erstellt eine Inventardatei mit den Authentifizierungsinformationen, die in den Umgebungsvariablen verfügbar sind (was das Standardverhalten ist):

---
- 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
...

Um sich mit Informationen zu authentifizieren, die über das Playbook bereitgestellt werden, geben Sie ein Dictionary-Variable an:

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

Um sich mit den Informationen zu authentifizieren, die in .config/openstack/clouds.yaml oder /etc/openstack/clouds.yaml gespeichert sind, die mit unserer Rolle stackhpc.os-config generiert werden kann, fügen Sie Folgendes hinzu:

    os_container_infra_auth_type: cloud
    os_container_infra_cloud: mycloud

Für Upgrades des Kubernetes-Clusters:

    ---
    - 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
    ...

Ansible-Debug-Information

Um Warnungen von dieser Rolle zu sehen, exportieren Sie die folgende Variable, bevor Sie Ansible ausführen:

export ANSIBLE_LOG_PATH=ansible.log
export ANSIBLE_DEBUG=1

Um diese Warnungen zu filtern:

tail -f ansible.log | grep DEBUG

Bekannte Probleme

Das Ansible-Modul template schreibt eine Inventardatei und kann sich über fehlendes libselinux-python beschweren, das in den meisten Linux-Distributionen bereits installiert ist. Wenn das der Fall ist, erstellen Sie einfach einen Symlink zum selinux-Verzeichnis in Ihrer vorhandenen virtuellen Umgebung:

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

Für eine neue virtuelle Umgebung:

virtualenv --system-site-packages venv

Lizenz

Apache 2

Autoreninformationen

Über das Projekt

Provision Kubernetes or Docker Swarm cluster using Magnum

Installieren
ansible-galaxy install stackhpc.os-container-infra
GitHub Repository
Lizenz
apache-2.0
Downloads
429
Besitzer
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.