当前位置: 首页 > news >正文

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集群再搭建

前述&#xff1a;总体是非常简单的&#xff0c;就是过程繁琐&#xff0c;不过都是些重复的操作 master成员: [controller-manager, scheduler, api-server, etcd, proxy,kubelet] node成员: [kubelet, proxy] master要修改的配置文件有 1. vi /etc/etcd/etcd.conf # 数…...

工具-博客搭建

以下相关讲解均基于hexo github pages方案&#xff0c;请注意&#xff01;&#xff01;&#xff01;博客搭建方案选择 参考文章1 搭建教程 参考文章1 hexo github pages搭建过程中遇到的问题 删除categories、tags 1、删除含有需要删除categories、tags的文章 2、hexo …...

贪心算法:合并区间

参考资料&#xff1a;代码随想录 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 做过用最少数量的箭引爆气球和无重叠区间这两道题目后&#xff0c;题意和题解都不难理解。唯一的一点儿难点是对于api的运用。 class Solution {public int[][] merge(int[][…...

DFA 算法

为什么要学习这个算法 前一段时间遇到了瓶颈&#xff0c;因为词库太多了导致会有一些速度过慢&#xff0c;而且一个正则表达式已经放不下了&#xff0c;需要进行拆分正则才可以。 正好我以前看过有关 dfa 的介绍&#xff0c;但是并没有深入的进行研究&#xff0c;所以就趁着周…...

Web(数字媒体)期末作业

一.前言 1.本资源为类似于打飞机的网页游戏 2.链接如下&#xff1a;【免费】前端web或者数字媒体的期末作业&#xff08;类似于打飞机的2D网页小游戏&#xff09;资源-CSDN文库 二.介绍文档...

展现金融科技前沿力量,ATFX于哥伦比亚金融博览会绽放光彩

不到半个月的时间里&#xff0c;高光时刻再度降临ATFX。而这一次&#xff0c;是ATFX不曾拥有的桂冠—“全球最佳在线经纪商”(Best Global Online Broker)。2024年5月15日至16日&#xff0c;拉丁美洲首屈一指的金融盛会—2024年哥伦比亚金融博览会(Money Expo Colombia 2024) 于…...

html 根字号 以及 设置根元素font-size:calc(100vw/18.75)、元素rem实现自适应

rem 单位介绍&#xff1a;rem 是相对文档根元素(html)字体大小的尺寸单位&#xff0c;当元素的尺寸或文字字号等使用 rem 单位时&#xff0c;会随着根元素的 font-size变化而变化。 得出结论&#xff1a;在不同分辨率的设备下动态设置根元素的字体大小就可以实现页面自适应。 …...

size_t无符号数相关知识点

size_t无符号数相关知识点 在代码编译的时候&#xff0c;报错一个warning&#xff1a; comparison between signed and unsigned interger expression [-wsign-compare] 找到代码&#xff0c;告警这一段代码 size_t count timeProtocol.m_intersectionArray.size(); for (u…...

深度学习之基于Tensorflow+Flask框架Web手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是深度学习领域中的一个经典问题&#xff0c;也是计算机视觉领域的重要应用之一。…...

2024电工杯B题食谱评价与优化模型思路代码论文分析

2024年电工杯数学建模竞赛B题论文和代码已完成&#xff0c;代码为B题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#xff09;、模型…...

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三维模型&#xff0c;需要用到cats-blender-plugin-0-19-0插件。 一…...

[源码+搭建教程]西游伏妖篇手游_GM_单机+和朋友玩

为了学习和研究软件内含的设计思想和原理&#xff0c;本人花心血和汗水带来了搭建教程&#xff01;&#xff01;&#xff01; 教程不适于服架设&#xff0c;严禁服架设&#xff01;&#xff01;&#xff01;请牢记&#xff01;&#xff01;&#xff01; 教程仅限学习使用&…...

windows、mac、linux中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换

文章目录 在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;进而不同项目必须依赖不同版本的NodeJS运行环境&#xff0c;这种情况下&#xff0c;对于维护多个版本的node将会是一件非常麻烦的事情&#xff0c;nvm就是…...

【MySQL精通之路】全文搜索-布尔型全文搜索

1.使用方法 MySQL可以使用IN BOOLEAN MODE修饰符执行布尔全文搜索。 使用此修饰符&#xff0c;某些字符在搜索字符串中单词的开头或结尾具有特殊含义。 在下面的查询中&#xff0c;和-运算符分别表示单词必须存在或不存在&#xff0c;才能进行匹配。 因此&#xff0c;查询检…...

【学习笔记】C++每日一记[20240520]

简述几种内存泄漏的预防机制 用智能指针代替普通指针&#xff0c;由于智能指针自带引用计数功能&#xff0c;能够记录动态分配空间的引用数量&#xff0c;在引用计数为零时&#xff0c;自动调用析构函数释放空间。 借助一些内存泄漏检测工具&#xff0c;例如Valgrind、Memche…...

【热门话题】一文带你读懂公司是如何知道张三在脉脉上发了“一句话”的

按理说呢&#xff0c;A公司和脉脉属于不同的平台&#xff0c;而且脉脉上大家可以匿名发言&#xff0c;所以&#xff0c;即便我坐在你边上&#xff0c;我发了一句话上去&#xff0c;你也不知道是谁发的。但通过一些技术&#xff0c;我们却可以分析出&#xff0c;公司是如何知道张…...

linux命令日常使用思考

linux命令日常使用思考 复制的相关问题scp和cp的区别root192.168.5.229-r的理解 更新版本的相关问题svn info 根目录和家目录的区别根目录家目录 复制的相关问题 scp和cp的区别 安全性&#xff1a;SCP 是基于 SSH 的加密传输协议&#xff0c;可以保证数据在传输过程中的安全性…...

同余定理与哈希函数

目录 同余定理哈希函数加密算法 余数有很多的应⽤场景&#xff0c;⽐如散列函数、加密算法&#xff0c;循环冗余校验等等。生活中也有很多与余数有关的例子。 比如&#xff0c;你要将1147条数据分页写入&#xff0c;每页10条&#xff0c;计算总页数。就可以用1147除以10&#x…...

03-01-Vue组件的定义和注册

前言 我们接着上一篇文章02-Vue实例的生命周期函数 来讲。 下一篇文章 03-02-Vue组件之间的传值 什么是组件 组件&#xff1a; 组件的出现&#xff0c;就是为了拆分Vue实例的代码量的&#xff0c;能够让我们以不同的组件&#xff0c;来划分不同的功能模块&#xff0c;将来我们…...

【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…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...