二十一、二进制文件部署高可用集群
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 chronydn1、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:80kubectl edit svc myapp改成弄得port
查看端点
打开浏览器访问
验证dns
安装工具
查看dns地址yum -y install bind-utils
kubectl get pod -o widr -A
dig -t A myapp.default.svc.cluster.local. @172.25.92.66









































































































































































































