首页 > 其他分享 >ansible-kubeadm在线安装k8s v1.19-v1.20版本

ansible-kubeadm在线安装k8s v1.19-v1.20版本

时间:2023-04-19 11:34:05浏览次数:38  
标签:v1.19 node 192.168 v1.20 ansible master etcd k8s

ansible-kubeadm在线安装k8s v1.19-v1.20版本

1. ansible-kubeadm在线安装k8s v1.19-v1.20版本

  • 安装要求

    • 确保所有节点系统时间一致
    • 操作系统要求:CentOS7.x_x64
    • ansible机器与部署k8s集群做免密钥
  • 找一台服务器安装Ansible

    # yum install epel-release -y
    # yum install ansible -y
    
  • 下载所需文件

    克隆部署k8s集群文件

    # git clone https://gitee.com/scajy/ansible-kubeadm-install.git
    # cd ansible-kubeadm-install/
    
  • 修改Ansible文件

    • 修改hosts文件,根据规划修改对应IP,变量名称尽量不要修改,按照规则添加对应所需变量名称

      [master]
      # 如果部署单Master或多master的主master配置
      192.168.0.181    node_name=k8s-master01
      
      [masternode]
      # 用于存储集群部署多节点master,单独存放一个组,对部署编写方便
      192.168.0.182    node_name=k8s-master02 
      
      [node]
      192.168.0.183    node_name=k8s-node01
      192.168.0.184    node_name=k8s-node02
      
      [etcd]
      192.168.0.181 etcd_name=etcd-1
      192.168.0.182 etcd_name=etcd-2
      192.168.0.183 etcd_name=etcd-3
      
      [lb]
      # 如果部署单Master,该项忽略
      192.168.0.185 node_name=lb-master
      192.168.0.186 node_name=lb-backup
      
      [k8s:children]
      master
      masternode
      node
      
      [newnode]
      192.168.0.187   ansible_ssh_port=22  node_name=k8s-node03
      
      
      
    • 修改group_vars/all.yml文件,修改etcd证书可信任IP或集群版本

      #  安装目录
      etcd_work_dir: '/etc/etcd'  
      tmp_dir: '/tmp/k8s'
      
      # k8s执行配置临时目录
      tmp_kubernetes_dir: '/root/kubernetes'
      
      
      # 集群网络
      service_cidr: '10.96.0.0/12'
      pod_cidr: '10.244.0.0/16' # 与roles/addons/files/calico.yaml中网段一致
      
      
      # 集群版本
      k8s_version: 1.20.0  # 版本测试安装了,v1.19.0-v1.20.0版本,按照需要版本修改
      
      
      # 高可用,如果部署单Master,该项忽略
      vip: '192.168.0.188'
      nic: 'eth0'  # 修改为实际内网网卡名
      
      
      # 自签证书可信任IP列表,为方便扩展,可添加多个预留IP
      cert_hosts:
        # 包含所有etcd节点IP
        etcd:
          - 192.168.0.181
          - 192.168.0.182
          - 192.168.0.183
      
  • 一键部署架构

    • 单master架构
      image

    • 多master架构
      image

  • 执行一键部署k8s集群命令

    • 单master版本

      # ansible-playbook -i hosts -uroot single-master-deploy.yml
      
    • 多master版本

      # ansible-playbook -i hosts -uroot multi-master-deploy.yml
      
  • 查看集群节点

    [root@k8s-master01 ~]# kubectl get nodes
    NAME           STATUS   ROLES                  AGE   VERSION
    k8s-master01   Ready    control-plane,master   15h   v1.20.0
    k8s-node01     Ready    <none>                 15h   v1.20.0
    k8s-node02     Ready    <none>                 15h   v1.20.0
    k8s-node03     Ready    <none>                 15h   v1.20.0
    
  • 节点扩容

    • 修改hosts文件,添加新节点IP

      # vi hosts
      ...
      [newnode]
      192.168.0.187   ansible_ssh_port=22  node_name=k8s-node03
      
    • 执行安装添加k8s集群node节点

      # ansible-playbook -i hosts -uroot add-node.yml 
      
  • 其他

    • 部署控制

      如果安装某个阶段失败,可针对性测试.

      例如:只运行部署插件

      # ansible-playbook -i hosts -uroot single-master-deploy.yml  --tags common
      
  • 所有HTTPS证书存放路径

    部署产生的证书都会存放到目录“/tmp/k8s/ssl”,一定要保存好,后面还会用到~

标签:v1.19,node,192.168,v1.20,ansible,master,etcd,k8s
From: https://www.cnblogs.com/scajy/p/17332739.html

相关文章

  • ansible权威指南笔记(四)—— roles的用法
    一、roles简介自1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等,只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并通过include调用......
  • ansible的docker_container模块使用
    使用docker_container模块创建容器示例:----hosts:myserveripremote_user:root#执行用户gather_facts:false#屏蔽系统信息返回vars:ansible_python_interpreter:/usr/bin/python3#定义ansible使用python3的环境serial:"100%"#更新比列,可以......
  • keepalived+nginx ansible部署
    Linux9自动化部署Keepalived+Nginx高可用负载均衡器原创 魏文第 魏文第 2023-03-0619:00 发表于北京收录于合集#linux39个#ansible19个#自动化18个 通常使用负载均衡器(LB)为一组realserver(提供服务的服务器) 分配流量,以实现后端服务的高可......
  • ansible使用教程
    目录一、介绍1.Ansible发展史2.特性3.架构4.ansible的作用以及工作结构5.ansible主要组成部分二、安装1.rpm包安装:EPEL源2.编译安装:3.Git方式:4.pip安装:pip是安装Python包的管理器,类似yum5.确认安装:三、相关文件1.配置文件2.程序3.主机清单详解4.配置文件详......
  • ansible批量管理工具学习
    ansible批量管理工具学习(一)小张的知识杂货铺 2022-12-0319:48 发表于浙江收录于合集#ansible2个centos7配置yum源mkdirbaklsmv*.repobak/wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repoyumcleanallyummakeca......
  • ansible中过滤器的介绍以及如何自定义过滤器
    一、过滤器介绍二、常用过滤器介绍2.1类型转换2.2数学运算2.3字典转换为列表2.4将字典中的所有key生成一个list2.5总结三、自定义过滤器四、总结之前介绍了关于如何通过shell,python,golang等语言实现自定义模块,可以参考这篇文章:今天主要是介绍下如何实现自定......
  • 使用shell,python,go来实现ansible的自定义模块
    一、自定义模块运行原理二、自定义模块实战2.1shell方式2.2python方式2.3golang方式三、测试验证3.1shell方式验证3.2python方式验证3.3golang方式验证ansible已经提供了非常多的模块,涵盖了系统、网络、数据库、容器、以及其他的方方面面的领域,几乎可以不用重复......
  • ansible剧本(playbook)- 快速入门
    ansible剧本(playbook)-快速入门Cloud研习社 Cloud研习社 2023-04-0407:31 发表于山东收录于合集#一站式教程220个#云计算196个#计算机185个#ansible22个#linux209个教程每周二、四、六更新剧本(playbook)比AD-Hoc模式更强大,可以一次性完成多个任务,类似于sh......
  • ansible剧本-playbook核心元素
    ansible剧本-playbook核心元素Cloud研习社 Cloud研习社 2023-04-0810:33 发表于山东收录于合集#一站式教程220个#ansible22个#云计算196个#计算机185个#linux209个教程每周二、四、六更新 hosts执行的远程主机列表tasks任务集Variables内置变量或自......
  • ansible模块实战练习
    ansible模块实战练习Cloud研习社 Cloud研习社 2023-04-0110:55 发表于山东收录于合集#一站式教程220个#计算机185个#ansible22个#云计算196个#linux209个教程每周二、四、六更新今天我们练习一下ansible模块的用法,也算是一个小复习:准备三个节点:其中一个作......