dodas.kubernetes

Kubernetes 角色

这个 Ansible 角色用于安装 Kubernetes 集群。

角色变量

可以传递给这个角色的变量及其简要说明如下:

  • 需要安装的版本或最新版本
    • kube_version: 1.28.7
  • 节点类型:前端或工作节点
    • kube_type_of_node: front
  • Kube 前端节点的 IP 地址或名称
    • kube_server: "{{ ansible_default_ipv4.address }}"
  • 安全令牌
    • kube_token: "kube01.{{ lookup('password', '/tmp/tokenpass chars=ascii_lowercase,digits length=16') }}"
  • 令牌的生存时间(0 表示不失效)
    • kube_token_ttl: 0
  • POD 网络 CIDR
    • kube_pod_network_cidr: 10.244.0.0/16
  • Kubelet 额外参数
    • kubelet_extra_args: ''
  • 设置是否安装 HELM 的标志
    • kube_install_helm: true
  • 如果为真,则在 RAM 磁盘中运行 Kubernetes etcd
    • etcd_in_RAM: true
  • 部署仪表板
    • kube_deploy_dashboard: true
  • 传递给 kubeadm init --apiserver-advertise-address 选项的值
    • kube_api_server: 0.0.0.0
  • 一组要在集群中应用的 git 仓库和路径,格式如下:
  • 设置是否安装 Metrics-Server 的标志
    • kube_install_metrics: false
  • 启用 GPU 支持的标志
    • enable_gpu: false
  • 如果 enable_gpu == true,需包含的 Ansible 角色的名称(和版本)

依赖项

  • ansible-role-gpu-support(如果 enable_gpu == true
  • ansible-role-containerd(由 geerlingguy 提供)

RAM 中的 ETCD

需求

集群必须使用 containerd 作为容器运行时,并且 etcd 必须作为 pod 在 Kubernetes 集群中运行,例如通过 kubeadm 集群设置。

针对现有集群的手动设置

首先,从 这里 下载 nerdctl,并将可执行文件移动到 /usr/local/bin。然后,按照以下方式复制 files_etcdRAM 文件夹的内容:

files_etcdRAM/usr/lib/systemd/system/kubelet.service.d ---> /usr/lib/systemd/system/kubelet.service.d
files_etcdRAM/etc/cron.d ---> /etc/cron.d
files_etcdRAM/opt/etcdRAM/bin ---> /opt/etcdRAM/bin

重启 daemon 并更新 crontab

systemctl daemon-reload
crontab /etc/cron.d/etcdRAM-etcd

要将存储目录 /var/lib/etcd 挂载为 RAM 磁盘,需要在 /etc/fstab 中添加一行:

tmpfs                       /var/lib/etcd        tmpfs   defaults,noatime,size=2g  0 0

最后,清空 /var/lib/etcd 目录中的所有内容,并挂载 RAM 磁盘:

rm -rf /var/lib/etcd/*
mount -a

感谢

另请参阅 这篇文章原始仓库,其中对此进行了描述。

关于项目

Install Kubernetes cluster

安装
ansible-galaxy install dodas.kubernetes
许可证
apache-2.0
下载
1.5k
拥有者
Dynamic On Demand Analysis Service DODAS is a Platform as a Service tool built combining several solutions and products