K8s 二进制部署---下篇(多master节点 负载均衡 高可用)

一 master02 节点部署

master01192.168.11.5kube-apiserver,kube-controller-manager,kube-scheduler,etcd
master02192.168.11.12kube-apiserver,kube-controller-manager,kube-scheduler,etcd
node01192.168.11.7etcd 、kubelet、kube-proxy、docker 
node02192.168.11.14etcd 、kubelet、kube-proxy、docker 

负载均衡(master)

nginx+keeplived01

Nginx  、keepalived

负载均衡(backup)

nginx+keeplived02

Nginx  、keepalived

1 master02 开启防火墙防护 做映射 

2 部署master02节点

etcd数据库所需要的ssl证书、master01节点的kubernetes安装目录(二进制文件、组件与apiserver通信的集群引导文件、启动参数配置文件)、kubectl与apiserver通信的集群引导文件、各组件被systemd管理的service文件

从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点 

scp -r /opt/etcd/ root@192.168.11.12:/opt/
scp -r /opt/kubernetes/ root@192.168.11.12:/opt
scp -r /root/.kube root@192.168.11.12:/root
scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.11.12:/usr/lib/systemd/system/

3 修改配置文件kube-apiserver中的IP 

修改配置文件kube-apiserver中的IP
vim /opt/kubernetes/cfg/kube-apiserver
KUBE_APISERVER_OPTS="--logtostderr=true \
--v=4 \
--etcd-servers=https://192.168.10.80:2379,https://192.168.10.18:2379,https://192.168.10.19:2379 \
--bind-address=192.168.11.12 \				#修改
--secure-port=6443 \
--advertise-address=192.168.11.12 \			#修改

 4 在 master02 节点上启动各服务并设置开机自启

在 master02 节点上启动各服务并设置开机自启
systemctl start kube-apiserver.service
systemctl enable kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl enable kube-controller-manager.service
systemctl start kube-scheduler.service
systemctl enable kube-scheduler.service

5 在master02查看node节点状态

查看node节点状态
ln -s /opt/kubernetes/bin/* /usr/local/bin/
kubectl get nodes
kubectl get nodes -o wide			#-o=wide:输出额外信息;对于Pod,将输出Pod所在的Node名
//此时在master02节点查到的node节点状态仅是从etcd查询到的信息,而此时node节点实际上并未与master02节点建立通信连接,因此需要使用一个VIP把node节点与master节点都关联起来

二 负载均衡+高可用部署 

1部署初始环境

配置load balancer集群双机热备负载均衡
(nginx实现负载均衡,keepalived实现双机热备;主故障VIP切换从,故障恢复VIP再次漂移过来)在nginx01、nginx02节点上操作 

nginx01:192.168.11.13

nginx01:192.168.11.4

2  配置nginx的官方在线yum源,配置本地nginx的yum源

配置nginx的官方在线yum源,配置本地nginx的yum源
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOFyum install nginx -y

3 部署负载均衡

stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';access_log  /var/log/nginx/k8s-access.log  main;upstream k8s-apiserver {server 192.168.11.5:6443;server 192.168.10.12:6443;}server {listen 6443;proxy_pass k8s-apiserver;}
}

4 检查配置文件语法 

5 启动nginx服务,查看监听6443端口

检查配置文件语法
nginx -t   //启动nginx服务,查看已监听6443端口
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx 

6 部署keepalived服务 

部署keepalived服务
yum install keepalived -y//修改keepalived配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {# 接收邮件地址notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}# 邮件发送地址notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id NGINX_MASTER	#lb01节点的为 NGINX_MASTER,lb02节点的为 NGINX_BACKUP
}#添加一个周期性执行的脚本
vrrp_script check_nginx {script "/etc/nginx/check_nginx.sh"	#指定检查nginx存活的脚本路径
}vrrp_instance VI_1 {state MASTER			#lb01节点的为 MASTER,lb02节点的为 BACKUPinterface ens33			#指定网卡名称 ens33virtual_router_id 51	#指定vrid,两个节点要一致priority 100			#lb01节点的为 100,lb02节点的为 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100/24	#指定 VIP}track_script {check_nginx			#指定vrrp_script配置的脚本}
}

 

 

7 创建nginx状态检查脚本  

创建nginx状态检查脚本 
vim /etc/nginx/check_nginx.sh
#!/bin/bash
#egrep -cv "grep|$$" 用于过滤掉包含grep 或者 $$ 表示的当前Shell进程ID,即脚本运行的当前进程ID号
count=$(ps -ef | grep nginx | egrep -cv "grep|$$")if [ "$count" -eq 0 ];thensystemctl stop keepalived
fi

8 启动keepalived服务 

注意:要先启动nginx 再启动keeplived

chmod +x /etc/nginx/check_nginx.sh//启动keepalived服务(一定要先启动了nginx服务,再启动keepalived服务)
systemctl start keepalived
systemctl enable keepalived
ip a				#查看VIP是否生成

9 检测是否高可用(虚拟IP漂移)

注意:

看日志:

① cd /var/log----cat messages

②检测 keepalived 服务 vip

由于虚拟环境挂起,导致服务无响应,vip 可能会消失。由于配置文件 bootstrap.kubeconfig、

kubelet.kubeconfig、kube-proxy.kubeconfig 指向 vip,重启 keepalived 服务恢复。

③ journalctl -f -u kubelet.service

10 修改所有node节点配置文件

修改node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP

修改node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP
cd /opt/kubernetes/cfg/
vim bootstrap.kubeconfig 
server: https://192.168.11.100:6443vim kubelet.kubeconfig
server: https://192.168.11.100:6443vim kube-proxy.kubeconfig
server: https://192.168.11.100:6443

11 修改 node01节点的bootstrap.kubeconfig 配置文件VIP

12 修改node01节点 kubelet.kubeconfig配置文件vip

13 修改node节点kube-proxy.kubeconfig

node02 

14 重启kubelet和kube-proxy服务 

重启kubelet和kube-proxy服务
systemctl restart kubelet.service 
systemctl restart kube-proxy.service

15 查看连接状态 

在 nginx01 上查看 nginx 和 node 、 master 节点的连接状态
netstat -natp | grep nginx

 三 在 master01 节点上操作 

1 测试创建pod

 在 master01 节点上操作
//测试创建pod
kubectl run nginx --image=nginx

2 查看pod的状态信息 

kubectl get pods -o wide

3 也可直接使用浏览器 

在对应网段的node节点上操作,可以直接使用浏览器或者curl命令访问
curl 192.168.11.100

4 这时在master01节点上查看nginx日志

这时在master01节点上查看nginx日志
kubectl logs nginx-dbddb74b8-nf9sk

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHEL7及之后系统 系统服务脚本(Rocky 9.4)

目录 源码安装 准备工作 步骤1: 下载软件 步骤2: 安装apr 步骤3: 安装apr-util 步骤4: 安装Apache HTTP Server 总结步骤 后续步骤 源码安装 准备环境&#xff1a;首先&#xff0c;确保你的系统中安装了必要的编译工具和依赖库。对于C/C程序&#xff0c;这通常包括编译器&#…

网络流量监控与流量回溯分析:全面指南

目录 什么是网络流量监控&#xff1f; 网络流量监控的主要功能 什么是流量回溯分析&#xff1f; 流量回溯分析的优势 网络流量监控与流量回溯分析的结合 如何实现有效的网络流量监控与回溯分析&#xff1f; 网络流量监控与流量回溯分析的应用场景 企业网络 数据中心 …

PEI转染试剂残留检测

转染试剂是瞬时转染生产病毒载体的主要原材料之一。聚乙烯亚胺&#xff08;Polyethylenimine, PEI&#xff09;以其适用性广泛、成本低廉、操作简便、细胞毒性低、可以在多种哺乳动物细胞中达到较高的转染效率&#xff0c;适用于无血清悬浮转染环境&#xff0c;包装容量不受限制…

【Python快速上手(二十七)】- Python3 SMTP发送邮件

目录 Python快速上手&#xff08;二十七&#xff09;- Python3 SMTP发送邮件Python3 SMTP发送邮件1. SMTP 基本概念2. 使用 smtplib 发送简单邮件2.1 设置 SMTP 服务器2.2 登录到 SMTP 服务器2.3 发送邮件2.4 关闭连接 3. 构建复杂邮件3.1 构建带有 HTML 内容的邮件3.2 发送带有…

Zookeeper 面试题(六)

1. 简述Zookeeper中的脑裂问题 &#xff1f; 在分布式系统中&#xff0c;脑裂&#xff08;Split-brain&#xff09;问题是指由于网络分区或其他故障导致系统分裂成两个或多个独立的、相互之间无法通信的部分&#xff0c;每个部分都认为自己是整个系统的唯一活跃部分。在ZooKee…

一阶数字高通滤波器

本文的主要内容包含一阶高通滤波器公式的推导和数字算法的实现以及编程和仿真 1 计算公式推导 1.1.2 算法实现及仿真 利用python实现的代码如下&#xff1a; import numpy as np # from scipy.signal import butter, lfilter, freqz import matplotlib.pyplot as plt #2pifW…

从原理上解决 uniapp (含第三方插件)打包 iOS APP 失败的问题

最近一段时间&#xff0c;我的团队基于uniapp开发的平台型APP因平台资金合规的要求&#xff0c;需要对接中金支付&#xff0c;uniapp的插件市场有一个别人做好的中金支付插件&#xff0c;但前端开发同事在引用这个 插件时&#xff0c;出现了 iOS APP 打包不成功的情况&#xff…

Pantera 合伙人简谈 Morpho:更高效、适应性更强的 DeFi 解决方案

原文标题&#xff1a;《Pioneering Peer-to-Peer Lending in the DeFi Revolution》撰文&#xff1a;Pantera Capital 合伙人 Paul Veradittakit编译&#xff1a;Chris&#xff0c;Techub News 文章来源&#xff1a;香港Web3媒体Techub News Morpho 正在超越 Compound 等传统…

Redis主从、哨兵、cluster集群的部署和细节

目录 1. 主从模式 为什么需要主从&#xff1f; 搭建主从架构 2. Sentinel(哨兵)模式 为什么需要哨兵模式&#xff1f; 搭建哨兵集群 哨兵集群 Go语言编程redis哨兵模式 有了哨兵&#xff0c;客户端连接谁&#xff1f; test1&#xff1a;redis节点主从切换 test2&am…

webgl入门-矩阵变换

矩阵变换 前言 变换有三种状态&#xff1a;平移、旋转、缩放。 当我们变换一个图形时&#xff0c;实际上就是在移动这个图形的所有顶点。 课堂目标 掌握图形变换的三种方式。可以对图像进行复合变换。 知识点 平移旋转缩放 第一章 平移 对图形的平移就是对图形所有顶点…

如何快速从手动测试转向自动化测试

寻求具有无缝持续集成和持续交付 (CI/CD) 的高效 DevOps 管道比以往任何时候都更加重要。想象一下这样一个场景&#xff1a;您的软件组织显著减少了人工工作量、降低了成本&#xff0c;并更加自信地发布了软件更新。换句话说&#xff0c;通过将 Web UI 和 API 测试结合在一起&a…

【小白课程】如何在openKylin上个性化定制开关机动画

开关机动画是Linux系统的重要组成部分&#xff0c;其主要功能是在Linux内核启动的早期遮盖内核打印日志&#xff0c;并在内核刷新屏幕分辨率时保证屏幕显示的流畅性。 其中&#xff0c;openKylin操作系统使用plymouth组件作为开关机动画显示程序。Linux系统在启动时&#xff0…

计算机SCI期刊,中科院2区,收稿范围非常广泛!

一、期刊名称 Journal of Web Semantics 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;2.5 中科院分区&#xff1a;2区 出版方式&#xff1a;开放出版 版面费&#xff1a;$1600 三、期刊征稿范围 《网络语义学杂志》…

【软件测试】5.测试用例

目录 1.测试用例 1.1概念 1.2测试的要素 2.测试用例的万能公式 2.1常规思考逆向思维发散性思维 2.2万能公式 2.2.1功能测试 2.2.2界面测试 2.2.3性能测试 2.2.4兼容性测试 2.2.5易用性测试 2.2.6安全测试 2.3弱网测试 1.测试用例 1.1概念 什么是测试用例&#xf…

Jenkins 构建 Web 项目:构建服务器和部署服务器分离的情况

构建命令 #!/bin/bash node -v pnpm -v pnpm install pnpm build:prod # 将dist打包成dist.zip zip -r dist.zip dist

2024离婚新规已生效,不用等30天冷静期,线上开庭

2024年离婚必知的12条法律知识&#xff1a; ✅分居多久都不会自动离婚&#xff0c;想离婚&#xff0c;必需通过协议或起诉程序离婚 ✅婚后的工资收入&#xff0c;继承的遗产(未指定只给一人&#xff09;都是夫妻共同财产 ✅没有领结婚证&#xff0c;或领证后没有共同生活&#…

软件项目运维方案-word原件2024

1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 参考文献 1.5 术语与缩写解释 2. 人员与责任 2.1 项目建设管理机构 2.2 驻场人员工作时间 2.3 人员培训 2.3.1. 培训需求管理 2.3.2. 培训内容管理 2.4 绩效考核 3. 运维过程内容 3.1. 运维模型 3.2. P…

多电脑共享鼠标键盘

由于要在两个电脑之间共用一套鼠标键盘&#xff0c;所以在此记录一下。 mouse without borders Mouse without Borders 是一款免费的 Windows 工具&#xff0c;允许你在多台电脑之间共享鼠标和键盘。 安装与配置步骤 下载和安装&#xff1a; 前往 Mouse without Borders 官…

LangChain - 概念指南

文章目录 一、Architecture1、langchain-core2、partner-packages3、langchain4、langchain-community5、langgraph6、langserve7、langsmith 二、浪链表达语言&#xff08;LCEL &#xff09;可运行界面 runnable-interface 三、组件 components1、聊天模型 chat-models2、 LLM…

工程机械租赁平台数字化平台系统油耗与排放管理创新与应用

在快速发展的城市建设和基础设施项目中&#xff0c;工程机械扮演着举足轻重的角色。随着工程规模的扩大和施工技术的不断进步&#xff0c;工程机械租赁平台应运而生&#xff0c;为建设项目提供了灵活高效的解决方案。然而&#xff0c;随着租赁机械数量的增加&#xff0c;如何有…