搭建k8s集群实战(一)系统设置
1、架构及服务
Kubernetes作为容器集群系统,通过健康检查+重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效状态自动在其他Node拉起Pod,实现了应用层的高可用性。
针对Kubernetes集群,高可用性还应包含以下两个层面的考虑:Etcd数据库的高可用性和Kubernetes Master组件的高可用性。
Master节点扮演着总控中心的角色,通过不断与工作节点上的Kubelet进行通信来维护整个集群的健康工作状态。如果Master节点故障,将无法使用kubectl工具或者API做任何集群管理。
Master节点主要有三个服务kube-apiserver、kube-controller-mansger和kube-scheduler,其中kube-controller-mansger和kube-scheduler组件自身通过选择机制已经实现了高可用,所以Master高可用主要针对kube-apiserver组件,而该组件是以HTTP API提供服务,因此对他高可用与Web服务器类似,增加负载均衡器对其负载均衡即可,并且可水平扩容。

2、组件说明
APIserver:所有服务访问统一入口
controllerManager:维护副本的期望数目
scheduler:负责介绍任务,选择合适节点接受任务
ETCD:键值对数据库,存储K8S集群重要信息(持久化)
Kubectl :实现容器生命周期管理
Kubectl proxy:写入规则至ipvs
Coredns:可以为集群中的SVC创建一个A记录
Dashboard:B/S结构的访问体系
Ingress:官方实现的是4层代理,ingress实现的是7层代理(域名,主机名)
Federation:跨K8S集群调用
3、IP地址规划
高可用K8S集群为避免脑裂一般采用如三、五、七等奇数个mater节点,首先要有一个 master 节点,可以先将单一节点集群构建完毕,然后再让其他服务器加入组成三个master 节点高可用,然后再以工作节点 Node 加入。此文档为全新构建。
| 地址 | 主机名 | 内存&CPU | 角色 |
|---|---|---|---|
| 10.208.1.190 | —— | —— | vip |
| 10.208.1.191 | k8s-master-01 | 2C & 4G | Master01 |
| 10.208.1.192 | k8s-master-02 | 2C & 4G | Master02 |
| 10.208.1.195 | k8s-master-03 | 2C & 4G | Master03 |
| 10.208.1.196 | k8s-node-01 | 2c & 4G | Node01 |
| 10.208.1.198 | k8s-node-02 | 2c & 4G | Node02 |
# 都开通直通上网,方便拉去镜像。
4、操作系统内核版本
#cat /etc/redhat-release
CentOS Stream release 8
5、修改hosts【所有节点】
必须配置,否则结点与master无法通讯
#cat >> /etc/hosts << EOF
10.208.1.190 master.k8s.io k8s-vip
EOF
6、修改hostname【各节点依次操作】
修改 10.208.1.191 服务器
#hostnamectl set-hostname k8s-master-01
修改 10.208.1.192 服务器
#hostnamectl set-hostname k8s-master-02
修改 10.208.1.195 服务器
#hostnamectl set-hostname k8s-master-03
修改 10.208.1.196 服务器
#hostnamectl set-hostname k8s-node-01
修改 10.208.1.198 服务器
#hostnamectl set-hostname k8s-node-02
7、关闭防火墙和selinux【所有节点】
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0
#注意以上语句的空格,复制到记事本粘贴,/etc前面有空格
8、关闭swap【所有节点】【必须】
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
9、设置系统【所有节点】
(1)针对于linux7以上,设置允许路由转发,不对bridge的数据进行处理
创建 /etc/sysctl.d/k8s.conf 文件
vim /etc/sysctl.d/k8s.conf
加入下面内容:
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
(2)挂载br_nebrtfilter
modprobe br_netfilter
持久化:
echo "br_netfilter" >> /etc/modules-load.d/modules.conf
(3)生效配置文件
sysctl -p /etc/sysctl.d/k8s.conf
sysctl命令:用于运行时配置内核参数
查看是否生成相关文件
ls /proc/sys/net/bridge
(4)资源配置文件
/etc/security/limits.conf 是 Linux 资源使用配置文件,用来限制用户对系统资源的使用,末尾加入
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 65536" >> /etc/security/limits.conf
echo "* hard nproc 65536" >> /etc/security/limits.conf
echo "* soft memlock unlimited" >> /etc/security/limits.conf
echo "* hard memlock unlimited" >> /etc/security/limits.conf
相关文章:
搭建k8s集群实战(一)系统设置
1、架构及服务 Kubernetes作为容器集群系统,通过健康检查重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效状态自动在其他Node拉起Pod,实现了应用层的高可用性。 …...
go-carbon v2.3.6 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装使用 Golang 版本大于…...
力扣2859-计算k置位下标对应元素的和
计算K置位下标对应元素的和 题目链接 解题思路 对每个下标进行位运算,求得二进制位1的个数,与k进行比较如果相等,证明该元素符合题目要求的值对所有满足要求的值进行累加即可 class Solution { public:int sumIndicesWithKSetBits(vector<…...
[计算机提升] 切换(域)用户
4.14 切换(域)用户 4.14.1 为什么要切换用户 在Windows系统中,切换用户的主要目的是为了实现多用户共享同一台计算机的便利和安全。当多个人需要使用同一台计算机时,每个人可以登录自己的用户账户,这样可以避免互相干扰和混淆数据。 以下是…...
蓝桥杯练习题dfs与bfs
📑前言 本文主要是【算法】——dfs与bfs的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句ÿ…...
软件游戏提示msvcp140.dll丢失的解决方法,全面分析msvcp140.dll文件
msvcp140.dll是Microsoft Visual C 2015 Redistributable的一部分,它包含了许多用于运行程序的函数和类库。当这个文件丢失或损坏时,依赖于该组件的应用程序可能无法正常启动,系统会弹出错误提示,告知用户找不到msvcp140.dll文件。…...
LandrayOA内存调优 / JAVA内存调优 / Tomcat web.xml 超时时间调优实战
目录 一、背景说明 二、LandrayOA / Tomcat 内存调优 2.1 \win64\tomcat\conf\web.xml 文件调优 2.2 \win64\tomcat\bin\catalina64.bat 文件调优 一、背景说明 随着系统的使用时间越来越长,数据量越多,发现系统的有些功能越来越慢&…...
免费SSL数字证书申请,免费数字证书使用教程
为什么要使用SSL数字证书? 1. 数据加密(SSL数字证书通过使用加密算法对传输的数据进行加密,保证数据在传输过程中不被篡改。) 2. 使用了SSL数字证书,浏览器中不会显示不安全,小程序开通,给你的…...
深入理解Flutter中的GlobalKey与LocalKey(ValueKey、ObjectKey、UniqueKey)及其使用方法
在Flutter中,Key是一个非常重要的概念,它用于标识和管理Widget。GlobalKey和LocalKey是Key的两个主要子类,而ValueKey、ObjectKey和UniqueKey则是LocalKey的具体实现。在本文中,我们将深入介绍这些关键概念以及它们在Flutter中的使…...
linux命令学习
sudu和su的区别:sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。当灭有root账户时,可以使用sudo su进入超级用户模式。创建root账户:sudo passwd rootcentos使用yum,ubuntu使用apt来安装。默认的 …...
核桃的数量---蓝桥杯
思路: 题目所代表的意思就是a,b,c这三个必须是核桃数量的因子,即a,b,c三个的最小公倍数 #include <iostream> #include <algorithm> using namespace std; // int main() { int a,b,c;cin>>a>>b>>c;int da*b/__gcd(a,b…...
进程通信与socket编程实践之猜数字小游戏
socket是实现进程通信的一种重要方式,本文将通过socket编程实现服务器进程与客户端进程之间的通信,并在通信之外实现猜数字的小游戏。 1. 设计思路 本文设计的C/S结构的猜数字游戏功能如下:服务器端自动生成一个1-100之间的随机数字&#x…...
AcWing 1241. 外卖店优先级(复杂模拟思路 + 代码详解)
[题目概述] “饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。 每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果…...
查询文件hash值
查询文件hash值 1 Windows 查询文件hash值1.1 certutil -hashfile 文件名 2 Linux 环境查询文件hash值2.1 sha256sum 文件名2.2 md5sum 文件名 1 Windows 查询文件hash值 在某些环境要对比两个文件是否完全一致 1.1 certutil -hashfile 文件名 certutil -hashfile C:\Users\…...
[docker] Docker资源管理
一、docker资源控制 Docker通过Cgroup 来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。Caroup 是ControlGroups的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如…...
不就业,纯兴趣,应该自学C#还是JAVA?
不就业,纯兴趣,应该自学C#还是JAVA? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家ÿ…...
【Go面试向】defer与time.sleep初探
【Go面试向】defer与time.sleep初探 大家好 我是寸铁👊 总结了一篇defer传参与time.sleep初探的文章✨ 喜欢的小伙伴可以点点关注 💝 请大家看下面这段代码,看运行结果会出现什么,为什么? 问题 demo package mainim…...
fpga外置flash程序烧录流程
Fpga外置FLASH程序烧录流程: step1: 打开vivado2019.2软件,找到hardware manager选项,进入该功能界面; Step2: 确定连接状态,当JTAG正确连接到板卡的调试插针后,会在状态窗口显示…...
什么是通配监听端口? 什么是通配监听IP?
什么是通配监听端口? 监听端口: 指的是服务器或服务开启的特定TCP或UDP端口号,等待客户端连接或发送数据。TCP/IP协议下每个端口只能由一个服务独占监听,一个服务或应用会指定监听特定的一个或多个端口来接收客户端的连接请求。 例如 Web…...
CentOS 安装 Ruby
1.下载 Ruby3.3 并安装 依次执行 wget https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0.tar.gz tar -zxvf ruby-3.3.0.tar.gz cd ruby-3.3.0 ./configure make make install 2.查看版本 ruby -v...
iOS设备安全定制指南:使用Cowabunga Lite实现零风险个性化配置
iOS设备安全定制指南:使用Cowabunga Lite实现零风险个性化配置 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite iOS系统的封闭性常让用户陷入个性化与安全性的两难选择——越狱虽能…...
AI如何悄悄改变你的日常生活?5个你已离不开的AI应用场景
AI如何悄悄改变你的日常生活?5个你已离不开的AI应用场景 清晨被智能闹钟以最舒适的渐强音量唤醒,通勤路上听着音乐App精准推荐的歌单,晚上回家对着冰箱说出想吃的菜谱——这些场景中隐藏的AI技术,早已像水电一样成为生活基础设施。…...
小白卖家的“时间困境”:为什么我每天忙得要死,却不出单?
忙碌不是努力,是方法出了问题。入行跨境电商三个月了。从零到日出百单,这条路我算是走通了。但回想起来,最让我后怕的,不是刚开始没单的那段日子,而是中间那段“看起来很忙”的日子。每天从早忙到晚,电脑上…...
提示工程延迟优化的终极技巧:这6个方法,让你无延迟
提示工程延迟优化终极指南:6个技巧让你的AI响应“飞”起来 1. 标题选项 《提示工程延迟优化终极指南:6个技巧让你的AI响应“飞”起来》《告别等待!提示工程延迟优化的6个关键方法》《AI响应慢?这6个提示工程技巧帮你解决延迟痛点》…...
springboot+vue基于web的线上文印店 校园打印店平台设计与实现
目录功能模块分析关键技术实现扩展功能建议数据模型示例(简化的核心表)部署架构项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作功能模块分析 后端(SpringBoot)功能模块 用户管理…...
HARMONYOS应用实例242:不等式组解集图示
不等式组解集图示 功能:输入两个不等式,自动在数轴上绘制两个解集,并高亮显示其公共部分。这是一个基于 HarmonyOS ArkTS 开发的交互式不等式求解工具,用户可以输入两个不等式(如 x > 2 和 x < 5),系统会自动解析并在数轴上绘制两个解集,同时高亮显示它们的公共部…...
别再折腾环境变量了!WIN10下搞定Modelsim 10.5许可证的终极保姆级教程
WIN10下Modelsim 10.5许可证配置的终极解决方案 如果你正在为Modelsim 10.5在WIN10系统下的许可证问题而头疼,尝试了各种破解方法却依然无果,那么这篇文章就是为你准备的。作为一名长期与EDA工具打交道的工程师,我深知许可证配置不当带来的挫…...
Kubernetes 与 AI 集成最佳实践
Kubernetes 与 AI 集成最佳实践 一、前言 哥们,别整那些花里胡哨的。Kubernetes 与 AI 集成是现代云原生架构的重要趋势,今天直接上硬货,教你如何在 Kubernetes 中部署和管理 AI 工作负载。 二、AI 工作负载类型 类型特点资源需求训练工作负载…...
Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署
Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署 1. 像素幻梦创意工坊概述 Pixel Dream Workshop(像素幻梦创意工坊)是一款专为像素艺术创作设计的AI生成工具,基于最新的FLUX.1-dev扩散模型构建。与传统AI绘…...
PVC绑定背后的秘密:图解K8s存储卷匹配规则与优先级机制
PVC绑定背后的秘密:图解K8s存储卷匹配规则与优先级机制 当你在Kubernetes集群中部署一个有状态应用时,最令人头疼的问题之一就是存储资源的管理。为什么有些PVC(PersistentVolumeClaim)能快速绑定到合适的PV(Persisten…...
