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

二十一、二进制文件部署高可用集群

16G内存不够哦

一、高可用、组件概述

对于pod来说,本身就是一个单元,如果其中一个出现了损坏,所在的资源会被转移到其他node,,所以高可用是对于主节点来说的,也就是这四个的高可用

组件解释

二、高可用方案

1、ETCD高可用

2、schedule与controllermanager

3、APIserver

api本身不存储数据,且其他组件数据由etcd集群提供

4、高可用原理

三、安装高可用集群

1、环境配置+组成图

准备五台新的 Rocky  linux 9.6 虚拟机,ip如图所示

设置静态ip等..见“一、k8s 1.29 之 docker 模拟 pod”

添加ikuai路由器,见“三、......”

上传文件到01 、安装tar工具、解压

如果没有,请下载

yum update -y r如果是9.2/新的就省略,下面的报错是正常的

 修改每个节点的名字,比如master01,改成对应的。。。。

vi /etc/hosts (每个都做,或者发送)

做一个免密认证,用户节点之间互传文件

ssh-keygen rsassh-copy-id root@m3  //发到每个节点

搭建时间同步服务器,错也要错一样(1、2、3、是masters端,4、5是客服)

vi /etc/chrony.conf

        改成这样

发给m2、m3

scp /etc/chrony.conf m2:/etc/chrony.conf
//修改m2、m3的权重,保存重启

所有主节点

systemctl restart chronyd
systemctl enable chronyd

n1、n2

 

确认

每个节点

---------------------------------------------

修改内核参数

安装docker

在 kubemetes-1.29.2/soft/,解压docker-25.0.3.tgz

cd /docker 

配置docker加速器

systemctl enable --now containerd.service

启动docker

------------------------------------

soft直接解压cri-docker

写入 cri-docker 配置文件

写入cri-docker的socket配置文件

启动 cri -docker

拷贝到其他节点

m1,m2,n1,n2

--------------------

每个节点配置docker加速

每一个节点启动docker

每一个节点启动 cri -docker

各节点确认

2、安装k8s和ETCD二进制文件

在 soft下

        两个解压

查看版本

发给其他节点

3、相关证书

安装工具

生成ETCD证书

所有masters

mkdir /etc/etcd/ssl -p
cd/etc/etcd/ssl/

有效期100年

ca证书请求文件(names是国家省市等信息)

签发

cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare /etc/etcd/ss1/etcd-ca

etcd服务端请求

        注意ip

        拷贝给两个master

生成k8s相关证书

特别说明除外,以下操作在所有master节点操作)

mkdir -p /etc/kubernetes/pki
cd !$

kubernetes的ca

        生成

-----------------

        签发(注意需要访问的ip,16、17是扩展)

10.96.0.1是默认server地址

生成apiserver聚合证书

生成controller-mansge证书

-------------------------

--------------------------------

生成调度器的证书

---------------------

---------------------------------

生成admin的配置证书

------------------------

------------------------------

生成kube-proxy证书

cn不能乱写

 ---------------------

  

----------------------

创建 ServiceAccount Key --secret

        专用sa密钥

mkdir(每一个节点都创建)

        三个主节点

四、k8s系统组件配置

1、ETCD配置

配置文件

m1

修改ip、

都要写成本虚拟机的地址

注意master地址

 m2

注意ip、

(注意如m1中自己的地址和三个master的地址)

m3

注意ip、

(注意如m1中自己的地址和三个master的地址)

创建service

(所有 master节点操作)

创建etcd证书目录

(所有 master节点操作)

2、Nginx设置

编译环境

 soft下

解压、cd nginx

写入配置文件

注意ip;所有节点

        启动管理脚本,所有节点

3、其它组件

创建目录

 创建apiserver

m1

注意:ip

 

---------------------------------------

m2、m3

直接发送

只改一下ip  

---------------------------------- 

副本控制器

三个m

------------

网段

 

-----------------

配置调度器

三m,nginx-1.25.3/

 

4、TLS Bootstrapping 配置

自动签发证书

m1

----------------------

 

(检查apiserver状态和nginx的地址信息)

--------------------

kubectl create - f bootstrap.secret.yaml

5、Node设置

复制相关证书到node

配置kubelet

所有节点

------------

可选

-------------------

配置文件

每个节点

   

----------------

这里用go写的二进制文件存到etcd中,不能直接读取,稍后有方法

也可以直接用json

 -----------------------

kube-proxy配置

m1

所有节点

------------------

6、安装网络插件

在soft目录下

/或者

如果docker下不来

7、安装CoreDNS

安装helm

只在m1

解压后

 

mv linux-amd64/helm /usr/local/bin/
chmod a+x /usr/local/bin/helm
helm version

//可以忽略这个

//忽略 

修改ip

 

注意这个ip,保持一样

        可选,没做

----------

-----------

images,下面有所需的镜像

cd  soft下有go语言脚本

 mv dockertools /usr/local/bin/
#发给所有节点
scp /usr/local/bin/dockertools root@m2:/usr/local/bin/

----------------

批量导入镜像

所有节点都要

#发给所有
scp -r images root@m2:/root/

注意pwd位置,

dockertools load -l images/

8、安装Metrics Server

通过metrics暴露,cpu、pod等资源

在 kubernetes-1.29.2/manifests/有

已经修改好的

直接执行

kubectl apply -f components.yaml

9、安装命令补全

m1

五、验证高可用

验证etcd

注意ip

解决二进制etcd看不全

在soft

mv etcdhelper /usr/local/bin/

解释,阅读一下

安装红帽的工具

--------------

读取etcd的方式:     https://github.com/openshift/origin/tree/master/tools/etcdhelper
官方解释:   https://github.com/kubernetes/kubernetes/issues/444670        , protobuf

------------

把这个文件弄成可执行文件就能使用

查看方式

------------

给第一个长串命令加别名,注意地址

vi /root/.bashrc
#添加
alias ectl='etcdhelper -endpoint "https://192.168.66.11:2379" -key /etc/etcd/ssl/etcd-key.pem -cert /etc/etcd/ssl/etcd.pem -cacert /etc/etcd/ssl/etcd-caa.pem#刷新source /root/.bashrc

----------

测试svc

新建

kubectl create svc clusterip myapp --tcp=80:80
kubectl edit svc myapp

改成弄得port

查看端点

打开浏览器访问

验证dns

安装工具

yum -y install bind-utils
查看dns地址

 

kubectl get pod -o widr -A

dig -t A myapp.default.svc.cluster.local. @172.25.92.66

http://www.dtcms.com/a/577057.html

相关文章:

  • 窗口dp|组合数学
  • 【linux国庆练习】
  • 织梦cms怎么做双语网站wordpress网页小特效
  • 我的世界做壁纸的网站移动互联网开发心得体会
  • CST对电路板与地面平面耦合的电磁模拟
  • Apple授权登录开发流程
  • 告别手动导出:一键将思源笔记自动同步到 Git 仓库
  • OPPO 后端校招面试,过于简单了!
  • element表格的行列动态合并
  • C++ 零基础入门与冒泡排序深度实现
  • 鸿蒙harmony将注册的数据包装成json发送到后端的细节及过程
  • JavaWeb(后端进阶)
  • VOC浓度快速测定仪在厂界预警中的实战应用:PID传感器技术与数据分析
  • 【SRE】安装Grafana实践
  • 在 PHP 中打印数据(调试、输出内容)
  • 网站运营有什么用做公司网站需要了解哪些东西
  • 段描述符属性测试
  • Ubuntu安装mysql5.7及常见错误问题
  • 第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
  • 网站后台编辑网站开发科普书
  • 单位加强网站建设专门做素菜的网站
  • Rust 在内存安全方面的设计方案的核心思想是“共享不可变,可变不共享”
  • NXP的GUI Guider开发LVGL
  • 《金仓KingbaseES vs 达梦DM:从迁移到运维的全维度TCO实测对比》
  • 【开题答辩全过程】以 基于Java的相机专卖网的设计与实现为例,包含答辩的问题和答案
  • 增量爬取策略:如何持续监控贝壳网最新成交数据
  • 400Hz 橡胶弹性体动刚度扫频试验系统指标
  • Weavefox 携手 GLM-4.6/4.5V 打造新一代智能厨房小助手
  • 如何建立网站后台wordpress 主题 翻译
  • 深入理解 Java 双亲委派机制:JVM 类加载体系全解析