首页 > 其他分享 >ansible roles使用场景,现在有多台机器需要批量加入k8s集群,怎么实现

ansible roles使用场景,现在有多台机器需要批量加入k8s集群,怎么实现

时间:2024-09-06 22:16:10浏览次数:7  
标签:Ansible join Kubernetes roles ansible 集群 机器 k8s

Ansible Roles 是一种用于组织和重用 Ansible 任务的结构化方式。它们特别适合于大型项目,能够简化配置管理和自动化部署。使用 Ansible Roles 可以有效地管理多台机器的配置和状态。

使用场景

  • 模块化管理:将相关的任务、变量和文件组织到一起,提高可维护性。
  • 复用性:不同项目可以复用同一角色,减少重复工作。
  • 团队协作:团队成员可以独立工作在不同的角色上,提高开发效率。

批量加入 Kubernetes 集群的实现步骤

以下是通过 Ansible Roles 将多台机器批量加入 Kubernetes 集群的实现步骤。

1. 准备工作

  • 确保所有目标机器上安装了 Ansible。
  • 在 Ansible 控制节点上设置 SSH 访问到所有目标机器。
  • 确保目标机器上已安装 Docker 和 kubeadm(如果尚未安装,您可以通过 Ansible 自动安装)。

2. 创建 Ansible Role

使用以下命令创建一个新的角色:

ansible-galaxy init k8s_join

这将创建一个名为 k8s_join 的目录结构,包含任务、变量等子目录。

3. 编写任务

k8s_join/tasks/main.yml 中,添加以下内容以执行加入集群的步骤:

---
- name: Join Kubernetes cluster
  command: "kubeadm join {{ k8s_master_ip }} --token {{ k8s_token }} --discovery-token-ca-cert-hash sha256:{{ ca_cert_hash }}"
  when: ansible_hostname != "master-node"  # 确保不是主节点

4. 定义变量

k8s_join/vars/main.yml 中,定义必要的变量:

---
k8s_master_ip: "192.168.1.100"  # 替换为实际的主节点 IP
k8s_token: "YOUR_TOKEN_HERE"     # 生成的 token
ca_cert_hash: "YOUR_CA_CERT_HASH" # CA 证书哈希

5. 编写 Playbook

创建一个新的 Playbook 文件 join_k8s.yml,并在其中调用角色:

---
- hosts: k8s_nodes  # 指定要加入集群的节点组
  become: yes
  roles:
    - k8s_join

确保在 inventory 文件中定义了 k8s_nodes 组,包含所有需要加入集群的机器。

6. 执行 Playbook

最后,通过以下命令执行 Playbook,将目标机器批量加入 Kubernetes 集群:

ansible-playbook -i inventory join_k8s.yml

7. 验证

在 Kubernetes 主节点上,可以使用以下命令检查节点状态:

kubectl get nodes

您应该能看到新加入的节点列表。

总结

通过使用 Ansible Roles,您可以方便地管理多台机器的配置,并批量将它们加入 Kubernetes 集群。这样的方式不仅提高了效率,还使得操作更加规范和可维护。

标签:Ansible,join,Kubernetes,roles,ansible,集群,机器,k8s
From: https://www.cnblogs.com/love-DanDan/p/18401143

相关文章

  • 掌握 Ansible:高效自动化运维的完整教程
    Ansible自动化运维全解指南感谢浪浪云支持发布浪浪云活动链接:https://langlangy.cn/?i8afa52文章目录Ansible自动化运维全解指南一、Ansible概述1.Ansible特点二、Ansible的角色1.使用者2.Ansible工具集3.作用对象三、Ansible的配置1.Ansible安装1)通过......
  • 【K8s】专题十三:Kubernetes 容器运行时之 Docker 与 Containerd 详解
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口Linux专栏 | Docker专栏 | Kubernetes专栏往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法【Docker】(全网首发)Kyli......
  • k8s中什么是内存请求,什么是内存限制,及其与QoS的关系
    在Kubernetes中,内存请求(MemoryRequest)和内存限制(MemoryLimit)是资源管理的两个关键概念,它们帮助确保Pod能够获得所需的资源,同时防止资源过度使用。以下是它们的定义和作用:内存请求(MemoryRequest)定义:内存请求是Pod启动时向Kubernetes集群请求的最小内存量。这是Pod......
  • k8s的探针检测(附yaml)-随记
    1、概念:Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况。主要包括以下三种类型的探针:2、探针的种类:liveness探针:在容器启动后执行探针的检测,检测容器是否正常运行readness探针:在容器初始化就绪,业务容器拉起后。执行就绪检测,如果检测通过说明业务容器可......
  • 记一次阿里云搭建K8S在恢复镜像快照之后etcd一个节点无法启动问题
    环境查看系统环境#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)#uname-aLinuxCentOS7K8SMaster010051013.10.0-1160.114.2.el7.x86_64#1SMPWedMar2015:54:52UTC2024x86_64x86_64x86_64GNU/Linux软件环境#kubectlversionClientVe......
  • 基础网络安全——K8S关键概念及搭建过程中遇到的问题补充
    一、K8S集群基本概念             k8s是一组服务器集群,是一个分布式的容器编排系统,对运行在集群上的容器进行管理,K8S集群包括控制平面(ControlPlane)以及1个或者多个工作节点(workernode),而控制平面包括masternode以及etcd节点。并且在这两种类型的节点上运行多种不......
  • K8S 中的 Node 管理
    1.Node的扩缩容在实际生产系统中,经常遇到服务器容量不足的情况,这时就需要购买新的服务器,对应用系统进行水平扩展以实现扩容。在k8s中,对一个新的node的加入非常简单,只需要在node节点上安装Docker、kubelet和kube-proxy服务,然后将kubelet和kube-proxy的启动参数中的master url指定为......
  • k8s介绍
    ⼀、编排分类单机容器编排:docker-compose容器集群编排:dockerswarm、mesos+marathon、kubernetes应⽤编排:ansible(模块,剧本,⻆⾊)⼆、系统管理进化史1.传统部署时代早期,各个组织是在物理服务器上运⾏应⽤程序。由于⽆法限制在物理服务器中运⾏的应⽤程序资源使⽤,......
  • Ansible教程
    1.安装ansible在有安装python情况下:pipinstallansible或者指定版本:pipinstallansible==2.7.2没有安装python情况下:ubuntu:aptinstallansiblecentos:yuminstallansible-y2.查看ansible版本及配置文件ansible--version 3.修改ansible配置cd/optnanoansibl......
  • 部署K8S集群(三):子节点部署及加入集群
    子节点:安装kubeletkubeadmkubectlyuminstall-ykubeletkubeadmkubectl安装containerd下载地址:https://github.com/containerd/containerd/releases找到标签为Latest的包,根据系统类型下载对应的包#解压tarCxzvf/usr/localcontainerd-1.7.21-linux-amd64.tar.g......