K8S集群再搭建
前述:总体是非常简单的,就是过程繁琐,不过都是些重复的操作
master成员: [controller-manager, scheduler, api-server, etcd, proxy,kubelet]
node成员: [kubelet, proxy]
=====master要修改的配置文件有=====
1. vi /etc/etcd/etcd.conf # 数据存储目录/对外监听地址/本机ip
2. vi /etc/kubernetes/apiserver #开放api-server端口/指明监听奴隶节点端口/指明etcd地址
3. vi /etc/kubernetes/config # 告诉proxy api-server是谁?
4. vi /etc/kubernetes/kubelet # 注册自己信息,并将告诉自己的master是是谁?
=====node要修改的配置文件有=====
1. vi /etc/kubernetes/config # 告诉proxy api-server是谁?
2. vi /etc/kubernetes/kubelet # 注册自己信息,并将告诉自己的master是是谁?
小结:master节点就多配置2个,其它跟node无二差别 ,节点要关闭防火墙或者开发对映的端口,要不然,node无法加入master
进入正题。。。。。。。。。。
================Master======================
1. 安装etcd服务
### 准备3个节点并修改节点hostname
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2### 配置3个节点的域名解析
vi /etc/hosts
```
192.168.208.161 k8s-master
192.168.208.162 k8s-node1
192.168.208.163 k8s-node2```
### master节点下载数据库ETCD
yum install -y etcd
vi /etc/etcd/etcd.conf
```
# 数据存储目录
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
# 监听地址,设置任意ip都可以访问
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"# 如果配置etcd集群,名称必须不一样
ETCD_NAME="default"# master节点的IP
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.208.160:2379"```
### 启动ETCD并设置开机自启
systemctl restart etcd
systemctl enable etcd
2. 安装kubernetes-master包含了apiserver、controller-manager、scheduler
yum install -y kubernetes-master.x86_64
vi /etc/kubernetes/apiserver
```
#如果仅限本地访问可以设置成本机IP
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"#开放apiserver端口的节点将属于master节点
KUBE_API_PORT="--port=8080"#奴隶节点的端口,奴隶节点是什么端口就配置什么端口
KUBELET_PORT="--kubelet-port=10250"#奴隶节点的端口
KUBELET_PORT="--kubelet-port=10250"```
vi /etc/kubernetes/config
```
#为controller-manager, scheduler, and proxy指明api-server
KUBE_MASTER="--master=http://192.168.208.160:8080"```
### 启动 api-server、controller-manager、scheduler
systemctl start kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl start kube-scheduler.service# 顺手设置开机自启
systemctl enable kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl enable kube-scheduler.service### 检查主节点成员状态,这里的api-server不会显示,能执行kubectl命令说明api-server正常,kube-proxy 需要安装kubernetes-node时才会安装,一并安装还有kubelet
kubectl get componentstatus
===============Node====================
1. 安装kubernetes-node 包含 poxy、kubelet, 还有会自动安装docker哦!!
####master自己也成为奴隶节点
yum install -y kubernetes-node.x86_64
vi /etc/kubernetes/kubelet
```
#奴隶节点联系上司的地址(这里master也是奴隶,自己监听自己,其它奴隶节点192.168.208.161、192.168.208.162)
KUBELET_ADDRESS="--address=192.168.208.160"#这个端口要跟master监听的端口保持一致,因为master的配置监听端口,就是按照下面的端口配置的
KUBELET_PORT="--port=10250"# 奴隶节点的身份信息,可以是IP,也可以域名(必须先配置域名解析,开始就做好了,其它奴隶节点是 k8s-node1 、k8s-node2)
KUBELET_HOSTNAME="--hostname-override=k8s-master"# 指明api-server
KUBELET_API_SERVER="--api-servers=http://192.168.208.160:8080"
```
### 启动kubelet、proxy 会带着启动docker
systemctl start kubelet.service
systemctl start kube-proxy.service
systemctl enable kubelet.service
systemctl enable kube-proxy.service
### 剩余的k8s-node1、k8s-node2 重复操作2次就好,下面配上截图
k8s-master 、k8s-node1、k8s-node2都一样的


上面集群简单的集群已经搭建好,后续要安装网络插件ssh 用于节点之间的通信

后续。。。。。。。
yum install -y flannel
vi /etc/sysconfig/flanneld
```
# 使用etcd作为pod的IP注册中心
FLANNEL_ETCD_ENDPOINTS="http://192.168.208.160:2379"
# 使用默认的前缀
FLANNEL_ETCD_PREFIX="/atomic.io/network"
```
###该ip网段可以任意设定,随便设定一个网段都可以。Pod里的容器的ip就是根据这个网段进行自动分配的,下面截图会解释
etcdctl set /atomic.io/network/config '{ "Network":"172.10.0.0/16" }'
etcdctl get /atomic.io/network/config
systemctl start flanneld.service
systemctl enable flanneld.service# 重启dockers后,docker的ip网段也会变的一样
systemctl restart docker

同理配置奴隶节点 k8s-node1 k8s-node2,但不要执行etcdctl set /atomic.io/network/config '{ "Network":"172.10.0.0/16" }',etcd只在主节点,node节点是没有的

至此,已经安装好网络插件flannel ,接下安装一个测试沙箱,测试不同节点上容器是否能正常通讯
docker pull busybox:1.27
docker images
docker run -it <镜像id>
> ifconfig
> 找到本容器的ip
同理在另外一个节点看看 找到本容器的ip
ping 172.10.xxx.xxx


master节点成功ping通2个node节点

如果出现iptables 如下,我这个默认是ACCEPT,所以不用修改
# 修改命令,3个节点都要修改,如果。。。。但是这种设置是临时的重启失效(可以忽略)直接看iptables永久配置
iptables -P FORWARD ACCEPT


iptables永久配置:


systemctl daemon-reload
相关文章:
K8S集群再搭建
前述:总体是非常简单的,就是过程繁琐,不过都是些重复的操作 master成员: [controller-manager, scheduler, api-server, etcd, proxy,kubelet] node成员: [kubelet, proxy] master要修改的配置文件有 1. vi /etc/etcd/etcd.conf # 数…...
工具-博客搭建
以下相关讲解均基于hexo github pages方案,请注意!!!博客搭建方案选择 参考文章1 搭建教程 参考文章1 hexo github pages搭建过程中遇到的问题 删除categories、tags 1、删除含有需要删除categories、tags的文章 2、hexo …...
贪心算法:合并区间
参考资料:代码随想录 题目链接:. - 力扣(LeetCode) 做过用最少数量的箭引爆气球和无重叠区间这两道题目后,题意和题解都不难理解。唯一的一点儿难点是对于api的运用。 class Solution {public int[][] merge(int[][…...
DFA 算法
为什么要学习这个算法 前一段时间遇到了瓶颈,因为词库太多了导致会有一些速度过慢,而且一个正则表达式已经放不下了,需要进行拆分正则才可以。 正好我以前看过有关 dfa 的介绍,但是并没有深入的进行研究,所以就趁着周…...
Web(数字媒体)期末作业
一.前言 1.本资源为类似于打飞机的网页游戏 2.链接如下:【免费】前端web或者数字媒体的期末作业(类似于打飞机的2D网页小游戏)资源-CSDN文库 二.介绍文档...
展现金融科技前沿力量,ATFX于哥伦比亚金融博览会绽放光彩
不到半个月的时间里,高光时刻再度降临ATFX。而这一次,是ATFX不曾拥有的桂冠—“全球最佳在线经纪商”(Best Global Online Broker)。2024年5月15日至16日,拉丁美洲首屈一指的金融盛会—2024年哥伦比亚金融博览会(Money Expo Colombia 2024) 于…...
html 根字号 以及 设置根元素font-size:calc(100vw/18.75)、元素rem实现自适应
rem 单位介绍:rem 是相对文档根元素(html)字体大小的尺寸单位,当元素的尺寸或文字字号等使用 rem 单位时,会随着根元素的 font-size变化而变化。 得出结论:在不同分辨率的设备下动态设置根元素的字体大小就可以实现页面自适应。 …...
size_t无符号数相关知识点
size_t无符号数相关知识点 在代码编译的时候,报错一个warning: comparison between signed and unsigned interger expression [-wsign-compare] 找到代码,告警这一段代码 size_t count timeProtocol.m_intersectionArray.size(); for (u…...
深度学习之基于Tensorflow+Flask框架Web手写数字识别
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是深度学习领域中的一个经典问题,也是计算机视觉领域的重要应用之一。…...
2024电工杯B题食谱评价与优化模型思路代码论文分析
2024年电工杯数学建模竞赛B题论文和代码已完成,代码为B题全部问题的代码,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解(问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解)、模型…...
blender安装cats-blender-plugin-0-19-0插件,导入pmx三维模型
UE5系列文章目录 文章目录 UE5系列文章目录前言一、Blender安装二、cats-blender-plugin-0-19-0插件下载三、下载bmp文件四、在blender2.93中安装cats-blender-plugin-0-19-0插件 前言 blender本身不支持pmx三维模型,需要用到cats-blender-plugin-0-19-0插件。 一…...
[源码+搭建教程]西游伏妖篇手游_GM_单机+和朋友玩
为了学习和研究软件内含的设计思想和原理,本人花心血和汗水带来了搭建教程!!! 教程不适于服架设,严禁服架设!!!请牢记!!! 教程仅限学习使用&…...
windows、mac、linux中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换
文章目录 在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是…...
【MySQL精通之路】全文搜索-布尔型全文搜索
1.使用方法 MySQL可以使用IN BOOLEAN MODE修饰符执行布尔全文搜索。 使用此修饰符,某些字符在搜索字符串中单词的开头或结尾具有特殊含义。 在下面的查询中,和-运算符分别表示单词必须存在或不存在,才能进行匹配。 因此,查询检…...
【学习笔记】C++每日一记[20240520]
简述几种内存泄漏的预防机制 用智能指针代替普通指针,由于智能指针自带引用计数功能,能够记录动态分配空间的引用数量,在引用计数为零时,自动调用析构函数释放空间。 借助一些内存泄漏检测工具,例如Valgrind、Memche…...
【热门话题】一文带你读懂公司是如何知道张三在脉脉上发了“一句话”的
按理说呢,A公司和脉脉属于不同的平台,而且脉脉上大家可以匿名发言,所以,即便我坐在你边上,我发了一句话上去,你也不知道是谁发的。但通过一些技术,我们却可以分析出,公司是如何知道张…...
linux命令日常使用思考
linux命令日常使用思考 复制的相关问题scp和cp的区别root192.168.5.229-r的理解 更新版本的相关问题svn info 根目录和家目录的区别根目录家目录 复制的相关问题 scp和cp的区别 安全性:SCP 是基于 SSH 的加密传输协议,可以保证数据在传输过程中的安全性…...
同余定理与哈希函数
目录 同余定理哈希函数加密算法 余数有很多的应⽤场景,⽐如散列函数、加密算法,循环冗余校验等等。生活中也有很多与余数有关的例子。 比如,你要将1147条数据分页写入,每页10条,计算总页数。就可以用1147除以10&#x…...
03-01-Vue组件的定义和注册
前言 我们接着上一篇文章02-Vue实例的生命周期函数 来讲。 下一篇文章 03-02-Vue组件之间的传值 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们…...
【python进阶】txt excel pickle opencv操作demo
文章目录 1. txt读写读综合案例 日志文件读写 2. excel读写读取csv读取xlsx 3. matplotlib 案例折线图多个折现图散点图柱状图饼状图 4 opencv 案例加载与展示图片缩放图片旋转图片保存图片读取摄像头视频保存opencv 综合案例 5 pickle 案例 1. txt读写 读 file.read() file.r…...
Logisim实战:MIPS32控制器增量设计与微命令生成
1. 从零理解MIPS32控制器设计 第一次接触CPU控制器设计时,我盯着那些密密麻麻的信号线完全摸不着头脑。直到在Logisim上亲手搭建了第一个MIPS32译码器,才真正明白控制器就像乐队的指挥——它不直接演奏乐器(运算器),但…...
「时光胶囊」级数据留存:GetQzonehistory让数字记忆永存
「时光胶囊」级数据留存:GetQzonehistory让数字记忆永存 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 核心价值:为什么数字记忆需要主动留存 在这个信息爆炸的…...
macOS极简安装OpenClaw:gemma-3-12b-it镜像10分钟体验
macOS极简安装OpenClaw:gemma-3-12b-it镜像10分钟体验 1. 为什么选择OpenClawGemma组合 上周我在测试自动化工作流时,偶然发现OpenClaw这个开源框架。它最吸引我的是能直接在本地电脑上实现"AI操控电脑"——就像有个数字员工帮你点击鼠标、整…...
MQ2_LPG气体检测库:嵌入式LPG泄漏监测与动态校准实践
1. MQ2_LPG气体检测库深度解析:面向嵌入式系统的LPG泄漏监测工程实践 1.1 库定位与工程价值 MQ2_LPG是一个专为嵌入式平台设计的轻量级气体传感驱动库,核心目标是实现对液化石油气(Liquefied Petroleum Gas, LPG)中丙烷ÿ…...
NCM解密工具全解析:突破加密壁垒实现音频自由
NCM解密工具全解析:突破加密壁垒实现音频自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 问题剖析:加密格式如何成为数字资产的枷锁? 在数字音乐时代,我们常常面临一个矛盾&#…...
ESP32硬件PWM控制库PWMOutESP32实战指南
1. PWMOutESP32 库深度解析:面向嵌入式工程师的 ESP32 PWM 控制实践指南 1.1 库定位与工程价值 PWMOutESP32 是一个专为 ESP32 系列微控制器设计的轻量级 PWM 输出控制库,其核心目标是提供 Arduino 风格的 pwm.analogWrite(pin, value) 接口ÿ…...
先定义CSP的核心变量
67-考虑光热电站的综合能源系统优化调度模型 摘要:代码主要做的是含有光热电站的综合能源系统优化调度模型,共做了四个算例,分别对比了目标函数一次、二次、考虑弃风弃光、碳排放等四个算例,综合能源系统主要设备包括光热电站、风…...
智能风扇调节:打造安静高效的系统散热优化方案
智能风扇调节:打造安静高效的系统散热优化方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanCon…...
ArcMap10.4.1缓冲区分析避坑指南:解决距离单位混淆和叠加效果的常见问题
ArcMap 10.4.1缓冲区分析实战避坑手册:从原理到精准操作 第一次在ArcMap里做缓冲区分析时,我盯着屏幕上那些重叠的彩色圆圈发懵——明明设置了500米缓冲距离,为什么生成的区域看起来比隔壁城市的还大?后来才发现,我的数…...
从零开始:人工神经网络入门实战 - 用TensorFlow实现MNIST手写数字识别
1. 引言:为什么MNIST是神经网络的"Hello World"? 当你第一次接触编程时,通常会写一个"Hello World"程序。在深度学习领域,MNIST手写数字识别就是那个经典的"Hello World"!这个由美国国…...

