CyVerse-Ansible.ansible_k3s
CyVerse Ansible k3s
このロールは、k3sのスタンドアロンまたはクラスターを作成します。
要件
k3sとDockerを使用する場合、このロールはすでにDockerがインストールされているか、Dockerを提供するロールに依存します。
このロールはファイアウォール(ufw)を設定し、デフォルトでは、k3sクラスター内のすべてのノードが互いに通信できるようにします。
このロールはホストファイルに仮定をします。以下はk3s_masters、k3s_agents、およびk3s_clusterが定義されたインベントリファイルの例で、これは最小限の宣言です。
注意: 現時点では、1つのマスターのみがサポートされています。
.iniフォーマット
[k3s_masters]
w.x.y.z
[k3s_agents]
a.b.c.d
e.f.g.h
[k3s_cluster:children]
k3s_masters
k3s_agents
yamlフォーマット
all:
hosts:
k1:
ansible_host: w.x.y.z
ansible_user: root
k2:
ansible_host: a.b.c.d
ansible_user: root
k3:
ansible_host: e.f.g.h
ansible_user: root
children:
k3s_masters:
hosts:
k1:
k3s_agents:
hosts:
k2:
k3:
k3s_cluster:
children:
k3s_masters:
k3s_agents:
ロール変数
以下の表は、オプションのansible変数と、未定義の場合のデフォルト値を示しています。
変数名 | 未定義の場合のデフォルト値 | 説明 |
---|---|---|
K3S_DOCKER_ENABLE | version_dependent | Dockerエンジンを有効にします。OSバージョンがubuntu2204以降でない限り、デフォルトはtrueです。 |
K3S_GPU_ENABLE | false | NVIDIA GPUドライバを有効にします。 |
K3S_GPU_TIMESLICE_ENABLE | false | GPUが有効な場合、この設定でタイムスライスを有効にします。 |
K3S_GPU_TIMESLICE_NUM | 2 | デフォルトのタイムスライスは2です。K3S_GPU_TIMESLICE_ENABLEがtrueの場合。 |
K3S_NVIDIA_USE_GPU_OPERATOR | true | デフォルトはNVIDIAのGPUオペレーターを使用します(GPUが有効な場合)。 |
K3S_NVIDIA_GPU_OPERATOR_DRIVER | false | コンテナ内のドライバを使用します。 (https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.htmlを参照) |
K3S_NVIDIA_GPU_OPERATOR_TOOLKIT | false | コンテナ内のツールキットを使用します。 (https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/getting-started.htmlを参照) |
K3S_TRAEFIK_ENABLE | false | Traefikイングレスを無効にします。 |
K3s_FLANNEL_BACKEND | none | 設定すると、--flannel-backend=に値を渡します。 |
K3S_CALICO_ENABLE | false | Calicoを有効にします(動作していません)。 |
K3S_CLUSTER_TOKEN | none | 設定すると、クラスターはこのトークンで初期化されます。ランダムで生成されたものではありません。 |
K3S_CLUSTER_CIDR | none | 設定すると、クラスターのCIDR(例: 192.168.0.0/16)。 |
K3S_VERSION | none | 設定すると、k3sのバージョンを設定しようとします。 |
K3S_IS_MULTINODE | false | trueの場合、マルチノード用にホストを準備するための追加設定を行います(IPフォワーディングなど)。 |
K3S_MASTER_INSTALL | true | マスターノードを再インストールします。 |
K3S_MASTER_IP | none | ansible_default_ipv4が間違った値を取得する場合、k3sマスターのIPを設定します。 |
K3S_MASTER_PORT | 6443 | マスターノードのポートです。 |
K3S_POSTGRESQL_ENABLE | false | PostgreSQLの使用を有効にします。 |
K3S_POSTGRESQL_INSTALL | false | 最初のk3sマスターにPostgreSQLをインストールします。K3S_POSTGRESQL_ENABLEがtrueである必要があります。 |
K3S_POSTGRESQL_HOST | 127.0.0.1 | k3sマスター設定からのPostgreSQLデータベースのホスト名またはIP設定。 |
K3S_POSTGRESQL_PORT | 5432 | PostgreSQLデータベースのポート。 |
K3S_POSTGRESQL_DB | kubernetes | PostgreSQLデータベース名。 |
K3S_POSTGRESQL_USER | k3suser | K3S_POSTGRESQL_DBのデータベースユーザー名。 |
K3S_POSTGRESQL_PASS | randomly generated | K3S_POSTGRESQL_USERがK3S_POSTGRESQL_DBにアクセスするためのパスワード。生成後、/opt/k3sに保存されます。 |
K3S_FIREWALL_MANAGE | false | このロールを通じてファイアウォール管理を有効にします。 |
K3S_FIREWALL_ADD_PORTS | none | 辞書の配列です(例のプレイブックを参照)。各要素にはport、rule、proto、srcが必要です。 |
K3S_REGISTRIES_MIRRORS | none | 定義されている場合、/etc/rancher/k3s/registries.yamlの「mirrors:」の下にすべてを配置します。含まれるyamlが「mirrors:」を持っていることを確認してください。 |
例のプレイブック
以下はサンプルのプレイブックです:
- hosts: k3s_cluster
become: true
roles:
- k3s
vars:
K3S_FORCE_UNINSTALL: true
K3S_POSTGRESQL_ENABLE: true
K3S_POSTGRESQL_INSTALL: true
K3S_FIREWALL_ADD_PORTS:
- port: "8888"
rule: "allow"
proto: "tcp"
src: "1.2.3.0/24"
- port: "443"
rule: "deny"
proto: "tcp"
src: "any"
著者情報
エドウィン・スキッドモア (edwin@cyverse.org)
プロジェクトについて
This role will install a single or multi-cluster k3s, with the option of installing with postgresql. At this time, this is not suppose to be a comprehensive k3s, but rather a role sufficient for CyVerse's needs
インストール
ansible-galaxy install CyVerse-Ansible.ansible_k3s
ライセンス
other
ダウンロード
2.2k