K8S多master部署二:部署LoadBlance
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,前情提要以下所有操作均在单master群集已完成部署的情况下进行。所有服务器均保证防火墙常闭,核心功能selinux关闭。服务器角色分配角色地址安装组件master192.168.142.220kub
千家信息网最后更新 2025年12月01日K8S多master部署二:部署LoadBlance
前情提要
以下所有操作均在单master群集已完成部署的情况下进行。
所有服务器均保证防火墙常闭,核心功能selinux关闭。
服务器角色分配
| 角色 | 地址 | 安装组件 |
|---|---|---|
| master | 192.168.142.220 | kube-apiserver kube-controller-manager kube-scheduler etcd |
| master02 | 192.168.142.120 | kube-apiserver kube-controller-manager kube-scheduler |
| node1 | 192.168.142.136 | kubelet kube-proxy docker flannel etcd |
| node2 | 192.168.142.132 | kubelet kube-proxy docker flannel etcd |
| nginx1 | 192.168.142.130 | nginx keepalived |
| nginx2 | 192.168.142.140 | nginx keepalived |
| VIP | 192.168.142.20 | 虚拟地址 |
一、nginx端部署
建立nginx的YUM源
[root@lb-ma ~]# cat > /etc/yum.repos.d/nginx.repo <安装nginx并进行配置
[root@lb-ma ~]# yum install nginx -y#添加stream模块实现四层转发[root@lb-ma ~]# vim /etc/nginx/nginx.conf###添加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.142.220:6443; server 192.168.142.120:6443; } server { listen 6443; proxy_pass k8s-apiserver; } }#开启服务[root@lb-ma ~]# systemctl start nginx[root@lb-ma ~]# systemctl enable nginx安装Keppalived服务
[root@lb-ma ~]# yum -y install keepalived##修改keepalived配置文件[root@lb-ma ~]# vim /etc/keepalived/keepalived.conf###原本的全部删除,按下面新建! Configuration File for keepalivedglobal_defs { # 接收邮件地址 notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } # 邮件发送地址 notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER}vrrp_script check_nginx { script "/usr/local/nginx/sbin/check_nginx.sh"}vrrp_instance VI_1 { state MASTER #备服务器改为BACKUP interface ens33 #监控ens33网卡 virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 100 # 优先级,备服务器设置 90 advert_int 1 # 指定VRRP 心跳包通告间隔时间,默认1秒 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.142.20/24 #VIP地址 } track_script { check_nginx }}建立监控脚本
一旦nginx处于down状态,将会自动关闭keeplived
[root@lb-ma ~]# mkdir -p /usr/local/nginx/sbin/[root@lb-ma ~]# vim /usr/local/nginx/sbin/check_nginx.sh##手动进行编写count=$(ps -ef |grep nginx |egrep -cv "grep|$$")if [ "$count" -eq 0 ];then systemctl stop keepalivedfi[root@lb-ma ~]# chmod +x /usr/local/nginx/sbin/check_nginx.sh#开启keeplived[root@lb-ma ~]# systemctl start keepalived[root@lb-ma ~]# systemctl enable keepalived此时,前面的负载均衡已经配置完毕,但是并不能起到实际的作用,原因就是后方node节点中负责进行身份识别的kubeconfig文件中的地址没有改变,无法识别。
二、node端修改
更改kubeconfig中的地址
[root@node1 ~]# vim /opt/kubernetes/cfg/bootstrap.kubeconfig[root@node1 ~]# vim /opt/kubernetes/cfg/kube-proxy.kubeconfig[root@node1 ~]# vim /opt/kubernetes/cfg/kubelet.kubeconfig##三个文件全部改为 server: https://192.168.142.20:6443 #指向VIP地址重启kubelet & kube-proxy服务
[root@node1 ~]# systemctl restart kubelet[root@node1 ~]# systemctl restart kube-proxy以上,就是nginx做负载均衡,keppalived做双机热备的全部部署过程
DEMO:建立POD进行检测
master端建立测试pod
[root@master ~]# kubectl run nginx --image=nginx##建立podkubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.deployment.apps/nginx created#查看建立打的pod[root@master ~]# kubectl get podsNAME READY STATUS RESTARTS AGEnginx-dbddb74b8-7tdvp 1/1 Running 0 21s此时,pod只能进行简单的查看,一旦查看日志会报错。为了解决这个问题,可采用下面的办法解决。
#注意日志问题[root@master ~]# kubectl logs nginx-dbddb74b8-7tdvpError from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy) ( pods/log nginx-dbddb74b8-7tdvp)###解决办法:[root@master ~]# kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymousclusterrolebinding.rbac.authorization.k8s.io/cluster-system-anonymous created
地址
服务
服务器
文件
配置
均衡
办法
实例
就是
日志
角色
邮件
问题
监控
三个
优先级
作用
功能
原因
原本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发外包会计分录
台州市龙讯网络技术有限公司
消息中间件和数据库联合事务
增加域服务器的管理权限
嘉定区正规网络技术
数据库的事务处理
20年个人网络安全思想汇报
开黑啦怎么加好友服务器
c 连接本地sql数据库
软件开发要做什么准备工作
重庆专业软件开发教程
吉利对供应商产网络安全的要求
美国网络安全资料
登录数据库不存在
兆易创新软件开发面试经验
enum对应的的数据库类型
wow服务器转服到pvp
陕西云广互联网科技有限公司
浙江磐石网络技术公司
服务器80和443端口是什么
服务器老是重启怎样排查
登录系统数据库需要哪些内容
珠海数据库脱敏
数据库用户密码忘了怎么办
微盟数据库安全性
数据库放在哪里
北京惠普服务器续保更换云主机
提示服务器没有响应
r语言数据库的列名
软件开发中的项目管理