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架构

    • 多master架构

  • 执行一键部署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”,一定要保存好,后面还会用到~

ansible-kubeadm在线安装k8s v1.19-v1.20版本的更多相关文章

  1. centos环境 使用kubeadm快速安装k8s集群v1.16.2

    全程使用root用户运行,宿主机需要连接外网 浏览一下官方kubeadm[有些镜像用不了] https://kubernetes.io/docs/setup/production-environmen ...

  2. 二进制安装K8S集群V1.16.3

    centos linux7.5 cat > /etc/hosts << EOF 192.168.199.221 master 192.168.199.222 node1 192.16 ...

  3. 通过 Kubeadm 安装 K8S 与高可用,版本1.13.4

    环境介绍: CentOS: 7.6 Docker: 18.06.1-ce Kubernetes: 1.13.4 Kuberadm: 1.13.4 Kuberlet: 1.13.4 Kuberctl: ...

  4. kubeadm简单安装k8s

    One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS 2 GB or more of R ...

  5. Kubernetes实战指南(三十四): 高可用安装K8s集群1.20.x

    @ 目录 1. 安装说明 2. 节点规划 3. 基本配置 4. 内核配置 5. 基本组件安装 6. 高可用组件安装 7. 集群初始化 8. 高可用Master 9. 添加Node节点 10. Cali ...

  6. kubeadm快速安装k8s

    1.安装net-tools [root@localhost ~]# yum install -y net-tools 2.关闭firewalld [root@localhost ~]# systemc ...

  7. 使用kubeadm方式安装K8S

    Kubeadm安装 kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实 ...

  8. 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  9. kubeadm部署K8S集群v1.16.3

    本次先更新kubeadm快速安装K8S,二进制安装上次没写文档,后续更新,此次最新的版本是V1.16.3 1.关闭防火墙.关闭selinux.关闭swapoff -a systemctl stop f ...

  10. kubeadm部署k8s v1.19.4版本集群

    1. 准备2台2c4g虚机 配置地址192.168.198.144,192.168.198.146,一台作为master,一台作为node 2. 部署环境准备,每一台虚机都需要操作 # 关闭防火墙sy ...

随机推荐

  1. DNS服务学习笔记

    1.基本概念 ​ DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. ​ DNS是一个分布式数据库,命名系统采用层次的逻辑 ...

  2. 服务器安装docker

    安装命令: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 使用国内 daocloud 一键安装: curl -s ...

  3. MySQL使用bin-log将数据恢复到某个时间点

    binlog的三种模式 statement:记录每一条修改数据的sql row:保存哪条记录被修改 mixed:兼顾前两者的优点. # 查看binlog有没有开启 SHOW VARIABLES LIK ...

  4. 7、jmeter配置元件-HTTP信息头配置元件

    根据对方服务器的要求来配置消息头 (重点)Gzip:发送给你压缩包  提高速度 性能等等 同样的数据  只要页面没有变更 就不会重新压缩 节省带宽

  5. PT的常用命令

    归纳常用的PT命令,便于工作中应用. 1. 报时序的命令 report_timing -from A -to  [get_clocks {clkA}]  -delay_type min report_ ...

  6. python openpyxl 多个sheet vlookup

    import pandas as pdimport openpyxlfrom openpyxl.styles import Border, Side,colorswb = openpyxl.load_ ...

  7. 20181302编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    MyOD 一.任务详情 1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3. main与其他分开,制作静态库和动态库 4. 编写Ma ...

  8. redis单机搭建

    1.获取redis wget http://download.redis.io/releases/redis-6.2.7.tar.gz tar -xvf redis-6.2.7.tar.gz 2.安装 ...

  9. spring boot 常见问题

    什么是 Spring Boot? 简单来说,spring boot 底层就是:spring + spring mvc + tomcat + 其他框架 starter: spring boot 依靠 s ...

  10. 【Leetcode】 剑指offer:栈与队列 --Day01

    写在前面 2023届秋招形势严峻,作为2024届本科生倍感压力.时间紧迫,需要加快脚步. 计划之一是在未来的36天时间里通关Leetcode的剑指offer系列算法题.这一系列的学习周期为31天,也就 ...