stackhpc.os-container-infra

OpenStackコンテナクラスター

この役割は、MagnumのPythonクライアントを使用してコンテナクラスターを操作するために使用できます。

要件

  • Python 2.6以上
  • openstacksdk
  • python-magnumclient
  • python-heatclient
  • python-novaclient

役割の変数

os_container_infra_cloud はクラウドの名前です(cloud.yamlの中で設定されます。オプション)。

os_container_infra_user はSSHユーザーの名前です。例:fedora。

os_container_infra_state は、present、absent、query、またはupgradeのいずれかでなければなりません。

os_container_infra_cluster_name はクラスターの名前です。

os_container_infra_cluster_template_name は使用するクラスターのテンプレートです。

os_container_infra_keypair はクラスターのノードにアクセスするために使用するキーペアです。

os_container_infra_master_count はマスターノードの数です。

os_container_infra_node_count はワーカーノードの数です。

os_container_infra_default_interface はクラスターにアクセスするために使用するデフォルトのネットワークです。

os_container_infra_interfaces はクラスターノードに追加するネットワークのリストです。

os_container_infra_inventory はインベントリが保存される場所です。Magnumはデフォルトで1つのネットワークインターフェースしか接続を許可しないため、クラスター内のサーバーに接続します。

os_container_infra_environment_group は、すべてのクラスターのホストとローカルホストが追加されるオプションのAnsibleグループ名です。開発/ステージング/本番などの環境を表す単一のグループがある場合に便利です。

os_container_infra_coe は使用するコンテナオーケストレーションエンジンです。有効なオプションは kubernetes または swarm です。

os_container_infra_k8s_version は、os_container_infra_state = upgrade の際に使用する設定可能なKubernetesのバージョンです。

例プレイブック

以下のプレイブックは、クラスターを作成し、クラスター内のサーバーに2つのインターフェースを接続し、環境変数にある認証情報を使用してインベントリファイルを作成します(これがデフォルトの動作です):

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

プレイブックを介して渡された情報を使用して認証するには、次のように辞書型変数を提供します:

    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

.config/openstack/clouds.yaml または /etc/openstack/clouds.yaml に保存された情報を使用して認証するには、次のように追加します(これはstackhpc.os-config役割を使用して生成できます):

    os_container_infra_auth_type: cloud
    os_container_infra_cloud: mycloud

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

Ansibleデバッグ情報

この役割から出力される警告を表示するには、ansibleを実行する前に次の変数をエクスポートします:

export ANSIBLE_LOG_PATH=ansible.log
export ANSIBLE_DEBUG=1

これらの警告をフィルタリングするには:

tail -f ansible.log | grep DEBUG

既知の問題

template Ansibleモジュールはインベントリファイルを書き込みますが、ほとんどのLinuxディストリビューションに既にインストールされている libselinux-python が不足していると文句を言う場合があります。その場合は、既存の仮想環境にselinuxディレクトリへのシンボリックリンクを作成してください:

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

新しい仮想環境を作成するには:

virtualenv --system-site-packages venv

ライセンス

Apache 2

著者情報

プロジェクトについて

Provision Kubernetes or Docker Swarm cluster using Magnum

インストール
ansible-galaxy install stackhpc.os-container-infra
ライセンス
apache-2.0
ダウンロード
429
所有者
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.