CyVerse-Ansible.ansible_k3s

CyVerse Ansible k3s

此角色将创建一个 k3s 独立或集群。

要求

如果使用 Docker 配合 k3s,则此角色依赖于已安装 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 引擎,除非操作系统版本为 ubuntu2204 或更新版
K3S_GPU_ENABLE false 启用 NVIDIA GPU 驱动
K3S_GPU_TIMESLICE_ENABLE false 如果启用 GPU,此设置将启用时间切片
K3S_GPU_TIMESLICE_NUM 2 默认时间切片为两个,如果启用 K3S_GPU_TIMESLICE_ENABLE
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 设置 k3s 主节点 IP,用于当 ansible_default_ipv4 获取错误值时
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 PostgreSQL 数据库的主机名或 IP 设置,来自 k3s 主节点配置
K3S_POSTGRESQL_PORT 5432 PostgreSQL 数据库端口
K3S_POSTGRESQL_DB kubernetes PostgreSQL 数据库名称
K3S_POSTGRESQL_USER k3suser K3S_POSTGRESQL_DB 的数据库用户名
K3S_POSTGRESQL_PASS 随机生成 用于 K3S_POSTGRESQL_USER 访问 K3S_POSTGRESQL_DB 的密码;生成后存储在 /opt/k3s
K3S_FIREWALL_MANAGE false 通过此角色启用防火墙管理
K3S_FIREWALL_ADD_PORTS none 这是一个字典数组(见示例剧本中的示例);每个元素应具有端口、规则、协议和源
K3S_REGISTRIES_MIRRORS none 如果定义,将把 "mirrors:" 下的所有内容放入 /etc/rancher/k3s/registries.yaml;确保包含的 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