Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
  • Jenkins

    • Jenkins 学习笔记
      • 1 Jenkins 简介

        • 1.1 DevOps、CI、CD都是什么鬼?
          • 1.2 Jenkins简介
          • 2 安装 Jenkins

            • 2.1 yum 安装 jenkins
              • 2.2 war 包安装 jenkins
                • 2.3 使用 ansible 安装 jenkins
                  • 2.4 使用docker安装jenkins
                  • 3 使用 Jenkins

                    • 3.1 Jenkins用户权限管理
                      • 3.2 访问 API
                      • 4 流水线核心语法

                        • 4.1 开始编写Jenkinsfile
                          • 4.2 Jenkins流水线语法
                            • 4.3 Groovy 简明教程
                              • 4.4 Jenkins共享库应用
                                • 4.5 共享库之钉钉消息推送
                                  • 4.6 流水线开发工具
                                    • 4.7 pipeline 生产配置实例
                                      • 4.8 在 VS Code 中校验 Jenkinsfile
                                      • 5 流水线集成篇

                                        • 5.1 构建发布工具集成
                                          • 5.2 用户认证系统集成
                                          • 6 管理 jenkins

                                            • 6.1 Jenkins 关闭和重启的实现方式
                                            • 7 日常维护

                                              • 7.1 Jenkins Job迁移
                                              • 8 Jenkins 常见问题
                                              • Ansible

                                                • Ansible 学习笔记
                                                  • 1 初识Ansible
                                                    • 2 Ansible Inventory配置详解
                                                      • 3 Ansible Ad-hoc命令集

                                                        • 3.1 Ansible Ad-hoc 常用命令集
                                                          • 3.2 Ansible lineinfile模块详解
                                                          • 4 Ansible Playbook

                                                            • 4.1 Playbook的结构及handler用法
                                                              • 4.2 Playbook循环语句
                                                                • 4.3 Playbook条件语句
                                                                  • 4.4 Playbook高级用法
                                                                    • 4.5 Playbook之tags
                                                                      • 4.6 巧用Roles
                                                                        • 4.7 Jinja2 模板
                                                                          • 4.8 yaml语法
                                                                          • 5 Ansible变量

                                                                            • 5.1 自定义变量
                                                                              • 5.2 Fact变量
                                                                                • 5.3 魔法变量
                                                                                  • 5.4 使用lookup生成变量
                                                                                    • 5.5 使用vault配置加密
                                                                                    • 6 Ansible使用优化
                                                                                      • 7 常见问题
                                                                                        • 8 综合项目

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

                                                                                                      使用 ansible 快速安装 k8s 机器

                                                                                                      author iconClaycalendar icon2022年10月22日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
                                                                                                      上次编辑于: 2022/10/22 05:03:44
                                                                                                      贡献者: clay-wangzhi
                                                                                                      备案号:冀ICP备2021007336号
                                                                                                      Copyright © 2023 Clay