Skip to content
SRE运维进阶之路SRE运维进阶之路
devops
github icon
    • Kubernetes 学习笔记
        • 使用 ansible 快速搭建 k8s 集群
          • 相关支持
            • 快速开始
              • Roles 介绍
                • preinstall:安装前准备
                  • docker:安装Docker
                    • master: 安装 master
                      • ha:使用 haproxy + keepalived 实现master高可用,负载均衡
                        • calico:安装配置 Calico BGP RR模型
                          • node:安装 node
                      • 教程|项目|博客|文章推荐

                      使用 ansible 快速搭建 k8s 集群

                      author iconClaycalendar icon2023年4月19日category icon
                      • 云原生
                      tag icon
                      • Kubernetes
                      timer icon大约 2 分钟

                      此页内容
                      • 相关支持
                      • 快速开始
                      • Roles 介绍
                        • preinstall:安装前准备
                        • docker:安装Docker
                        • master: 安装 master
                        • ha:使用 haproxy + keepalived 实现master高可用,负载均衡
                        • calico:安装配置 Calico BGP RR模型
                        • node:安装 node

                      # 使用 ansible 快速搭建 k8s 集群

                      推荐:

                      • kubeadm 安装用:kubesprayopen in new window
                      • 二进制安装用:kubeaszopen in new window

                      此安装方式参考上面两个项目创建,如果刚开始搭建,直接使用上面的安装方式即可,可根据实际情况微调

                      项目地址:https://github.com/clay-wangzhi/ansible-collection-k8s

                      # 相关支持

                      相关版本信息 Centos7、k8s 1.18.10 、etcd 3.4.3 、docker 19.03.4、 calico 3.18.6、

                      # 快速开始

                      # 更换 yum 源,如果本来就是国内源,无需更换
                      curl -fsSL "https://gitee.com/clay-wangzhi/shell/raw/master/repo_replace.sh" | bash
                      
                      # 安装 python3
                      yum -y install python3
                      
                      # Install dependencies from ``requirements.txt``
                      pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
                      
                      cd ansible-collection-k8s
                      # 根据实际情况修改 主机列表 ``inventory/hosts``、全局变量 ``group_vars/all.yml``
                      
                      # 依次执行 playbook
                      ansible-playbook 01-preinstall.yml
                      ansible-playbook 02-docker.yml
                      ansible-playbook 03-ha.yml
                      ansible-playbook 04-master.yml
                      ansible-playbook 05-calico.yml
                      ansible-playbook 06-node.yml
                      
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      17
                      18
                      19

                      # Roles 介绍

                      # preinstall:安装前准备

                      • 关闭 swap 分区
                      • 更换 yum 源、安装 依赖包
                      • 更新 系统版本 到 centos 7.9、内核版本 到 长期支持版本 kernel-lt 5.4.196
                      • 如果硬件网卡驱动不支持新版本内核,升级 网卡驱动, 针对新内核重新编译
                      • 调节 CPU 性能模式为高性能
                      • 禁用防火墙、SELINUX
                      • 修改内核参数、加载 br_netfilter、ip_conntrack、ipvs 等 modules
                      • 配置时间同步
                      • 重启服务器,使用内核生效
                      • 检查 内核版本
                      • 检查 hostname 是否符合 DNS 规范
                      • 检查 kube_service_addresses 和 kube_pods_subnet 是否为正确的网络段
                      • 检查 kube_service_addresses 和 kube_pods_subnet 的网段是否冲突
                      • 检查时间是否同步
                      • 检查 访问外网的连通性(DNS配置是否正确)

                      # docker:安装Docker

                      • 更换 yum 下载源
                      • 安装 docker 和相关依赖
                      • 新增配置目录,拷贝配置文件
                      • 启动并加入开机自启

                      # master: 安装 master

                      • 更换 yum 下载源
                      • 下载 kubelet、kubeadm、kubectl 等
                      • 下载 kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、pause、etcd、coredns 等镜像
                      • 启动 kubelet 服务
                      • 配置 kubeadm-config.yml 初始化配置文件
                      • 使用kubeadm init 进行初始化
                      • master1 生产certificate key
                      • 其余master 使用 kubeadm join 加入master集群

                      # ha:使用 haproxy + keepalived 实现master高可用,负载均衡

                      先申请vip

                      • 安装 keepalived 、 haproxy
                      • 重定向日志文件
                      • keepalived 新增监控检查脚本
                      • 配置keepalived、haproxy
                      • 启动 keepalived、haproxy ,并配置开机自启

                      # calico:安装配置 Calico BGP RR模型

                      提前设置好 LOCAL_AS、AS_NUMBER、PEER_IP,安装好后还需要网络设置一下,BGP做宣告加邻居等

                      • 拷贝官方 yaml 文件
                      • 替换 PODSUBNET
                      • 设置 NIC 为 bond4 或 eth0
                      • apply calico yaml 文件
                      • 安装 并配置 calicoctl 工具
                      • 拷贝 设置 为 BGP RR 模式 的一些列 yaml 文件
                      • 使用 calicoctl apply 上面的yaml文件

                      # node:安装 node

                      • 步骤和 master 2,3 安装类似,下镜像,生产凭证,kubeadm join
                      edit icon编辑此页open in new window
                      上次编辑于: 2023/4/19 13:08:31
                      贡献者: clay-wangzhi
                      备案号:冀ICP备2021007336号
                      Copyright © 2023 Clay