istvano.microk8s

Ansible 角色:microk8s

下载并安装 microk8s 这是最小、最简单的纯生产级 K8s。

需求

  • 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 启用插件时,会将字符串作为 arg 传递。
  • microk8s_enable_HA: 启用/禁用高可用性。
  • microk8s_group_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 模板,最简单的方法是使用没有模板的角色,然后将 CSR 从 /var/snap/microk8s/current/certs/csr.conf.template 复制到你的剧本模板目录,进行编辑并相应地设置 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
拥有者