talltechdude.proxmox_k3os
Proxmox K3os クラスタービルダー
Proxmox に K3os クラスターを構築します
要件
適切なストレージとネットワークを持つ既存の Proxmox クラスターと、ISO フォルダー内に K3os ISO が必要です。
役割変数
defaults/main.yml
を参照してください。
# ISO ファイルの名前
k3os_iso: "k3os-amd64"
# すべてのノードに使用される K3s トークン - より安全なものに上書きしてください!
k3os_token: "SuperSecretToken"
# テンプレートのデータストア (iso/snippets)
templates: "local"
# ISO パス (必要に応じて上書き)
pve_iso_path: "{{ (templates == 'local') | ternary('/var/lib/vz/template/iso', '/mnt/pve/{{ templates }}/template/iso') }}"
# スニペットのパス (必要に応じて上書き)
pve_snippets_path: "{{ (templates == 'local') | ternary('/var/lib/vz/snippets', '/mnt/pve/{{ templates }}/snippets') }}"
# ディスクストレージのデータストア
storage: "local"
# ローカルディスクサイズ (GB)
disk_size: 10
# CPU ソケットの数
sockets: 1
# ノードごとのメモリ (MB)
memory: 1024
# NIC に使用するブリッジ
bridge: vmbr0
# NIC に使用する VLAN
vlan: 1
# クラスター名
cluster_name: k3os
# KubeConfig ファイルを保存する場所
kubeconfig_file: "{{ cluster_name | default ('') }}.kubeconfig.yaml"
# konfig で KubeConfig を追加
konfig: true
# 各ノードに静的 IP を設定 (inventory から ansible_host 値に強制)
static_ip: false
依存関係
該当なし
例
ホストファイル
[proxmox]
pve-01 ansible_host=10.0.0.31
pve-02 ansible_host=10.0.0.32
pve-03 ansible_host=10.0.0.33
[k3os_managers]
k3os-manager-01 ansible_host=10.0.0.11 pve_host=pve-01 vmid=701
k3os-manager-02 ansible_host=10.0.0.12 pve_host=pve-02 vmid=702
k3os-manager-03 ansible_host=10.0.0.13 pve_host=pve-03 vmid=703
[k3os_workers]
# 自動的にワーカーノードを番号付けします - 例えば 01:06 を使用して 01、02、03、04、05、06
k3os-[01:06] node_number="{{ inventory_hostname | regex_replace(\"^k3os-(\\d+)$\", \"\\1\") | int }}" ansible_host="10.0.0.{{ 20 + node_number | int }}" pve_host="{{ groups.proxmox[(node_number | int - 1) % (groups.proxmox | length)] }}" vmid="{{ node_number | int + 750 }}"
[k3os:children]
k3os_managers
k3os_workers
プレイブック
- name: 'K3os | インストール'
hosts: k3os
gather_facts: false
roles:
- name: talltechdude.proxmox_k3os
vars:
iso_name: "k3os-amd64-{{ k3os_version }}"
cluster_name: "例"
ライセンス
MIT
著者情報
TallTechDude