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