ansible 一键部署 kubernetes高可用框架

2023-11-09

ansible 一键部署 kubernetes高可用框架(kube-router版)

分享一个自己写的k8s搭建项目
github: https://github.com/Fear2014/kubernetes_ansible_deploy

框架说明

OS:Ubuntu

kubernetes1.13.1+etcd3.3.10+kube-router+coredns+descheduler0.9.0 全部采用二进制离线安装,无网络需求。

环境基础:已安装了python、ansible、docker、chrony、keepalived,配置好了主节点到其他节点的免密登陆。/offlinePackage中提供了chrony与keepalived的离线包

案例为4台服务器,组成双master和3worker的高可用集群

关于网络的说明

正常情况下,一台服务器一个网卡&一个网关,但是当遇到特殊情况,如2个网卡2个网关的时候,需要对router进行操作了,/route 提供了添加route永久生效的方法

为何使用kube-router

1、部署方便,kube-router, 它可以不仅仅作为 CNI 提供 pod 所需的网络, 以及提供 networkPolicy, 还能运行为 service proxy 替代 kube-proxy 来实现 k8s 下的 Service

2、flannel不支持Network Policy

3、kube-router使用ipvs性能损失最小,时延最小,其他网络插件性能差距不大 kube-router > calico > canal = flannel = romana

在这里插入图片描述
在这里插入图片描述

使用说明

运行startup.sh,通过ansible在master节点去部署4台服务器

框架目录结构:
/etc/ansible/ |-bin
|-down
|-roles
|-0x.xxx.yml
|-ansible.cfg
|-hosts
/k8s/ |-etcd/ |-ssl
|-cfg
|-kubernetes/ |-ssl
|-cfg
|-yml
/data/etcd
/etc/cni/net.d
/opt/cni/bin

使用了coredns与descheduler插件,分别保证域名访问与pod重调度功能,descheduler的周期建议改为一天一次,默认设置为在每日凌晨2点时启动排查

使用 ansible/99.clean.yml 可直接清理etcd、k8s,方便重新搭建

配置文件说明

1、coredns的配置文件coredns.yml.j2
Corefile: |
.:53 {
errors
health
kubernetes cluster.local {{ SERVICE_CIDR }} {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . 8.8.8.8:53 #修改为自定义的DNS地址,省去修改resolv.conf的麻烦
cache 30
loop
reload
loadbalance

2、api-server配置文件说明:
–bind-address=0.0.0.0 \ #此为设置安全端口监听的ip,选择监听所有
–advertise-address={{ MASTER_IP }} \ #此为发布给集群的api-server的地址,设置为api-server-VIP

2、controller-manager/kube-schduler配置文件说明:
–address=127.0.0.1 \ #设置为本地地址
–master=127.0.0.1:8080 \ #设置本地的api地址,保证3个组件都在同一个服务器上运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ansible 一键部署 kubernetes高可用框架 的相关文章

随机推荐

  • linux进程间通信---本地socket套接字(一)---一个server对应一个client

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 想要获取完整源码的 关注公众号后回复 socket1 即
  • ipa文件怎么安装到iphone_无需电脑,无需越狱,手机端一键签名安装ipa文件

    很多玩苹果的小伙伴都知道 由于ios系统的封闭性 使得很多第三方软件无法直接安装到手机 因为破解之后都需要打包 签名才可以安装到手机使用 因此好多优秀的第三方软件都无法安装到手机使用 今天 苹果用户的福音来了 一个软件 无需电脑 无需越狱
  • CentOS7环境Grafana监控系统的备份、恢复与迁移

    目的 实现Grafana系统的数据备份 迁移与恢复 最近一直在给客户的环境搭建服务资源 业务与数据库监控 这里记录下实际搭建过程中的一些问题 如下是安装grafana的服务器要迁移 需要备份迁移并做数据恢复 1 备份Grafana相关数据
  • WebService 的一些基本概念

    一 1 Endpoint http www ttdev com SimpleService 这个webservice全名就是所谓的 endpoint 2 RPC type RPC 型的Web Service 方法定义 3 Document
  • 区块链之java(一) 番外篇(数据类型)

    预先善其事 必先利其器 今天俺们讲讲智能合约和java中的一个数据类型 在智能合约中 大概有这些基本类型 能满足开发 是否有漏的呢 我也不太清楚 因为我也没有很深入的了解这块 好了 话不多说 看看具体的东西 智能合约类型如下 uint256
  • 【Python零基础入门篇 · 12】:函数的定义和作用、函数参数、函数嵌套、枚举函数enumerate

    文章目录 函数的定义和作用 函数的结构 函数调用 返回值 函数参数 区分形参和实参 必备参数 默认参数 可变参数 关键字参数 函数嵌套 枚举函数 enumerate 函数的定义和作用 函数 function 是将具有独立功能的代码块组织成为
  • 【BEVformer部署】tensorrt部署整体流程

    1 安装依赖包 CUDA cuDNN TensorRT 下载安装 CUDA 11 6 cuDNN 8 6 0 TensorRT 8 5 1 7 地址 NVIDIA PyTorch安装指令 pip install torch 1 12 1 c
  • Python爬虫 实例 网络爬虫

    一 这里是一个简单的网页爬虫例子 python import requests from bs4 import BeautifulSoup url https example com response requests get url so
  • [小技巧] git 清理 repository

    使用如下命令可以快速清除 repository 里没有被 git 管理的文件 git clean xdf 如果要保留某些后缀的文件 如 txt 文件 使用如下命令 git clean xdfe txt 参考 http stackoverfl
  • 在 NetBeans 中自动生成 get、set 和构造函数

    如果您使用的是 NetBeans 以下内容将为您节省大量时间 您可以在几秒钟内为您的变量以及构造函数自动生成函数get set以下适用于 Java 和 PHP 但我认为它也适用于其他语言 只需将光标指向您希望生成的代码出现的位置 然后按 A
  • elasticsearch 一对多普通文档子对象边界值问题

    一般为保证大数据量 低延时业务数据查询都会用到基于lucene的搜索引擎elasticsearch ES的出现解决了大数据搜索的一大问题 但是由于某些特殊业务数据就可能出现一些问题 比如 一对多业务普通索引的子对象边界值问题 什么是子对象边
  • [游戏开发][Unity]点击Play按钮后卡死很久

    一般小工程不会遇到这个问题 我在公司接手了几个老项目 都遇到了这个问题 每次Play卡顿几分钟甚至十几分钟 很是头疼 原因大概率就是下图 Packing Sprite Atlases 打包纹理图集 Windows上的Unity项目经常不显示
  • 【分治法】中位数问题和Gray码问题——武汉理工大学算法设计与分析课程实验

    1 中位数问题 问题描述 设X 0 n 1 和Y 0 n 1 为两个数组 每个数组中含有n个已排好序的数 找出X和Y的2n个数的中位数 编程任务 利用分治策略试设计一个O log n 时间的算法求出这2n个数的中位数 数据输入 由文件inp
  • UML建模详解

    摘要 本教程简要介绍了统一建模语言 面向对象问题解决的核心是构建一个模型 该模型从其通常复杂的现实世界中抽象出基本问题的基本细节 几个建模工具被包裹在UML 的标题下 代表统一建模语言 本课程的目的是介绍UML的重要亮点 UML的中心是我们
  • 二十二. Kubernetes ResourceQuota配额限制与LimitRanger限制范围

    目录 一 ResourceQuota 资源限制基础解释 二 LimitRanger 一 ResourceQuota 资源限制基础解释 官方文档 ResourceQuota 是k8s中对每个命名空间资源消耗总量提供的一种限制 可以限制指定命名
  • 基于STM32F407的SDCard读写操作

    基于STM32F407的SDCard读写操作 目录 基于STM32F407的SDCard读写操作 硬件电路 SD卡结构示意图 管脚连接 SDIO方式 SDCard初始化 SDCacr寄存器介绍 SDCacr初始化代码 在之前没有做过SD卡相
  • 解神者x2服务器维护,解神者X2服务器维护中? 登不上与连网失败解决攻略

    解神者X2连网失败怎样解决 等待开放测试 才能顺利加入 创意手游小编带来测试详情 应对线上挑战 登不上与连网失败解决攻略 星辰跃迁测试预下载已开启 测试时间为 7月29日10 00 8月5日16 00 欢迎大家登船 测试类型 不限量 删档
  • 使用DLL在多个进程间共享全局变量

    默认情况下 同一个程序启动多个进程 它们各自的变量值是不会相互影响的 第二个实例启动后 在修改全局变量的时候 系统会运用内存管理系统copy on write的特性来防止修改了第一个实例的数据 即系统会再分配一些内存 并将全局变量复制到这块
  • c语言中 文件,c语言中文件的使用方法

    c语言中文件的使用方法 一 文件指针的定义 FILE fp 注意FILE的大写 二 文件的打开 fp fopen 路径 文件名 文件格式后缀 文件的使用方法 注意路径下为 而不是 三 文件的使用方法 1 r 模式 1 1 打开文件进行只读操
  • ansible 一键部署 kubernetes高可用框架

    ansible 一键部署 kubernetes高可用框架 kube router版 分享一个自己写的k8s搭建项目 github https github com Fear2014 kubernetes ansible deploy 框架说