istvano.microk8s

Ansibleロール: microk8s

最小・最簡単な純粋なプロダクションK8sであるmicrok8sをダウンロードしてインストールするためのロールです。

要件

  • Ansible >= 2.7
  • Linuxディストリビューション
    • Debian系
      • Ubuntu
        • Xenial (16.04)
        • Bionic (18.04)
        • Focal (20.04)(未テスト)
        • Jammy (22.04)(未テスト)
    • Arch Linux(未テスト)

ライセンス

MIT

使い方

ロール変数

このロールで使用できるいくつかの変数をここに示します。完全なリストは[defaults/main.yml](defaults/main.yml)で定義されています。

  • microk8s_version: 使用するバージョン、デフォルトは1.27/stable
  • microk8s_plugins: 様々なプラグインを有効/無効にします。アドオンを有効にする際にはname:argとして文字列が渡されます。
  • microk8s_enable_HA: 高可用性を有効/無効にします。
  • microk8s_group_HA: HAクラスターを形成するホストグループのメンバー。
  • microk8s_group_WORKERS: ワーカーノードのみとして機能するホストグループのメンバー(コントロールプレーンコンポーネントはここでは実行されません)。
  • microk8s_csr_template: 定義されている場合、証明書生成に使用されるカスタムCSRが使用されます。

基本プレイブック

- hosts: servers
  roles:
    - role: istvano.microk8s
      vars:
        microk8s_plugins:
          dns: "1.1.1.1"
          istio: true
          ingress: true

注意: プラグインリストを上書きする際は、defaults/main.ymlからプラグインの全リストをコピー&ペーストすることをお勧めします。これは、いくつかのAnsibleタスクがそれらを参照しているため(例: helm3)、デプロイメントが失敗する可能性があります。

カスタム証明書要求テンプレート

MicroK8sがクラスター証明書を生成する際に使用する証明書要求テンプレートをカスタマイズすることが役立つかもしれません。たとえば、追加のSANを証明書に追加することで、MicroK8sの証明書がクラスターの外部から(リバースプロキシ経由など)アクセスされたときに検証されることができます。

CSRテンプレートを生成するには、最初にテンプレートを使用せずにロールを実行し、その後/var/snap/microk8s/current/certs/csr.conf.templateのCSRをプレイブックのテンプレートディレクトリにコピーして編集し、microk8s_csr_template変数を適切に設定して、プレイブックを再実行するのが最も簡単です。

ワーカーのみのノード追加(1.23+のみ)

microk8sクラスター内でワーカーのみとして機能する追加ノードを構成することが可能です。これは、ansibleホストグループmicrok8s_WORKERSを構成することで実現できます(グループ名はmicrok8s_group_WORKERSで設定可能)。ホストグループ内にリストされた各ホストは、基本的にmicrok8s join .... --workerを実行します。詳細については、こちらを参照してください: microk8s-clustering

テスト

MoleculeラッパーとシステムPythonを使用する

  • ./moleculew lint
  • ./moleculew create
  • ./moleculew list
  • ./moleculew check
  • ./moleculew test

Python仮想環境を使用する

  • 仮想環境を設定する
    $ python3 -m venv venv
    
  • 環境をアクティブにする
    $ . venv/bin/activate
    
  • LintとDockerオプションでMoleculeをインストールする
    $ pip install 'molecule[lint,docker]'
    
  • 必要に応じて最新のAnsibleパッケージをインストールする
    $ pip install ansible
    
  • テストコマンドを実行する:
    • molecule lint
    • molecule create
    • molecule list
    • molecule check
    • molecule test
プロジェクトについて

Ansible role for installing and set-up microk8s.

インストール
ansible-galaxy install istvano.microk8s
ライセンス
mit
ダウンロード
31.6k
所有者