Skip to content
SRE运维进阶之路SRE运维进阶之路
devops
github icon
    • Ansible 学习笔记
      • 1 初识Ansible
        • 2 Ansible Inventory配置详解
          • 6 Ansible使用优化
            • 7 常见问题
                • 使用 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
                            • Ansible
                            • 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

                            # 相关支持

                            支持 Linux 的版本

                            • CentOS/RHEL 7

                            支持的组件

                            • Core
                              • kubernetesopen in new window v1.18.10
                              • etcdopen in new window v3.4.3
                              • dockeropen in new window v19.03.4
                            • Network Plugin
                              • calicoopen in new window v3.18.6
                            • Application
                              • corednsopen in new window v1.6.7

                            # 快速开始

                            # 更换 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:50:36
                            贡献者: clay-wangzhi
                            备案号:冀ICP备2021007336号
                            Copyright © 2023 Clay