文章目录

  • 服务器环境
  • 实验步骤
    • Master2节点部署
    • LB1,2负载均衡部署
    • Node节点修改
  • 实验测试
    • 在LB1上查看nginx的K8S日志
    • 创建测试pod
    • 在Node节点上测试nginx
  • 查看日志报错解决方法

服务器环境

角色 IP
master1 192.168.18.10
master2 192.168.18.40
node1 192.168.18.20
node2 192.168.18.30
LB1 192.168.18.50
LB2 192.168.18.60
VIP 192.168.18.70

Tips:其他节点已在单节点部署

实验步骤

Master2节点部署

  1. 拷贝Master1上面的文件到Master2上面
  scp -r /opt/kubernetes/ root@192.168.18.40:/opt/scp -r /usr/lib/systemd/system/{kube-apiserver,kube-scheduler,kube-controller-manager}.service root@192.168.18.40:/usr/lib/systemd/system/scp -r /opt/etcd/ root@192.168.18.40:/opt/
  1. 修改Master2上的配置文件
  vim /opt/kubernetes/cfg/kube-apiserver#只需要修改:--bind-address=192.168.18.40 \--advertise-address=192.168.18.40 \

  1. 启动服务
  systemctl start kube-apiserversystemctl enable kube-apiserversystemctl start kube-controller-managersystemctl enable kube-controller-managersystemctl start kube-scheduler systemctl enable kube-scheduler



  1. 添加环境变量
  vim /etc/profile#末行添加export PATH=$PATH:/opt/kubernetes/binsource /etc/profile
  1. 查看节点
  kubectl get node

LB1,2负载均衡部署

  1. 关闭防火墙及核心防护
  systemctl stop firewalldsystemctl disable firewalldsetenforce 0
  1. 配置nginx的yum源
vim /etc/yum.repos.d/nginx.repo[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0#加载yum仓库
yum list
  1. 安装nginx
yum install nginx -y
  1. 添加四层转发
vim /etc/nginx/nginx.conf
#在events和http中间添加
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.18.10:6443;server 192.168.18.40:6443;}   server {listen 6443;proxy_pass k8s-apiserver;}           }
  1. 网页测试
vim /usr/share/nginx/html/index.html
#LB1
<h1>Welcome to master nginx!</h1>
#LB2
<h1>Welcome to backup nginx!</h1>systemctl start nginx
  • 访问:
    http://192.168.18.50
    http://192.168.18.60

  1. 安装Keepalived
yum install keepalived -y
修改Keepalived配置文件
vim  /etc/keepalived/keepalived.conf
#修改
vrrp_script check_nginx {script "/etc/nginx/check_nginx.sh"
}
vrrp_instance VI_1 {state MASTER    #备服务器改为BACKUPinterface ens33virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的priority 100    # 优先级,备服务器设置 90  advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒authentication {  auth_type PASSauth_pass 1111}   virtual_ipaddress {192.168.18.70/24}   track_script {check_nginx}
}
  1. 编写check_nginx脚本
vim /etc/nginx/check_nginx.sh
chmod +x /etc/nginx/check_nginx.sh
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")if [ "$count" -eq 0 ];thensystemctl stop keepalived
fi
  1. 测试负载均衡
  • 测试VIP访问nginx

  • systemctl start keepalived

  • 此时VIP是在LB1上

  • pkill nginxLB1后,查看VIP,发现VIP浮动到LB2上面了

Node节点修改

  1. 修改node节点的ip
cd /opt/kubernetes/cfg
vim bootstrap.kubeconfig
server: https://192.168.18.70:6443   #修改为VIP的地址
vim kubelet.kubeconfig
server: https://192.168.18.70:6443   #修改为VIP的地址
vim kube-proxy.kubeconfig
server: https://192.168.18.70:6443   #修改为VIP的地址

  1. 重启node节点上的服务
systemctl restart kubelet
systemctl restart kube-proxy

实验测试

在LB1上查看nginx的K8S日志

tail -f /var/log/nginx/k8s-access.log

  • 节点已实现负载均衡

创建测试pod

kubectl run nginx --image=nginx


  • 创建成功

在Node节点上测试nginx

  • kubectl get pods -o wide

  • Node1

  • Node2

  • node1与node2通过Flannel网络实现容器之间的访问与通信

查看日志报错解决方法

  1. error: You must be logged in to the server (the server has asked for the client to provide credentials
  • 解决方法:修改node节点上kubelet.config文件
vim /opt/kubernetes/cfg/kubelet.config
#末行添加
authentication:anonymous:enabled: true
  1. Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy)
  • 解决方法:anonymous用户绑定一个cluster-admin的权限
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
  1. 通过排错之后,我们就可以正常查看日志了
kubectl logs nginx-dbddb74b8-nn7z2

二进制部署K8S多Master+LB负载均衡群集+K8S日志排错相关推荐

  1. 实操:搭建前端LB负载均衡+keepalived并指定apiserver的vip

    文章目录 一:搭建前端LB负载均衡+keepalived 1.1 环境优化 1.2 yum 安装nginx(两个lb都做) 1.3 添加四层转发 upstream(两个lb都做) 1.4 开启ngin ...

  2. LVS负载均衡群集部署之——NAT模式的介绍及搭建步骤

    文章目录 一.企业群集应用概述 1.1 群集的三种类型 1 负载均衡群集 2 高可用群集 3 高性能运算群集 1.2 负载均衡结构 1.3 负载均衡群集工作模式 (1) NAT模式--地址转换 (2) ...

  3. LVS负载均衡群集 --NAT模式实战部署(图文详解)

    目录 一.群集应用概述 1.1 群集的含义 1.2 应用场景出现高并发的解决方案 1.3 系统性能扩展方式 1.4 群集的三种分类 1.4.1 负载均衡群集 1.4.2 高可用群集 1.4.3 高性能 ...

  4. LVS负载均衡群集架构(一):NET模式群集部署

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.群集的含义 1.概念 2.问题 3..解决方法 二.集群的分类 1.负载均衡群集:聚合和负载均衡 2.高可用群集(Hig ...

  5. LVS负载均衡群集(一):NET模式群集部署

    文章目录 一.群集的含义 1.1 概念 1.2 问题 1.3. 解决方法 二.集群的分类 2.1 负载均衡群集:聚合和负载均衡 2.2 高可用群集(High Availability Cluster) ...

  6. LVS负载均衡群集与LVS-NAT部署

    LVS负载均衡,LVS-NAT部署 一.LVS群集应用 1. 群集含义 2.群集的分类 3. 负载均衡结构 4. 群集的负载均衡技术的三种工作模式 1.NAT地址转换 2.TUN模式 IP隧道 3. ...

  7. LVS负载均衡群集概念、NAT模式LVS负载均衡实战部署

    目录 引言: 一.群集的含义 1.1 群集存在的必要 1.2 解决方法 二.群集的种类 2.1 负载均衡群集(Load Balance Cluster) 2.2 高可用群集 (High Availab ...

  8. 运维企业专题(3)LB负载均衡介绍

    1.LB是什么?有哪些主要的方式? LB--负载均衡(Load Balancing ) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数 ...

  9. 饿了吗?一饱眼福-不能不懂的web网站架构负载均衡群集

    理论 1.web搭建网站有哪些方式实现负载均衡与高可用性能? Nginx:反向代理,适用于中小型网站服务 优点:工作在七层之上,针对HTTP做分流策略,正则规则haproxy更灵活对网络的稳定性依赖小 ...

最新文章

  1. jenkins+github+docker+maven自动化构建部署
  2. C#——LINQ技术DEMO
  3. Back 键与Home键
  4. 学习AOP 之前必须明白的几个概念
  5. idea 热部署时 tomcat处 没有update classes and resource 选项
  6. ASP.NET读取POP3邮件的操作
  7. phoenix timestamp字段查询
  8. 大数据分析必不可少之数据仓库
  9. 30岁前成功的12条黄金法则
  10. 2018美赛C题论文学习笔记1
  11. 基于SSM框架的网上购物商城及电商后台管理系统
  12. win10 无法安装Hp1020和HP1106打印机问题
  13. 大明湖畔昇腾绽放,趵突泉里智能奔涌
  14. 删除安卓7.1源码中自带的Japanese IME输入法
  15. app installation failed 的问题的解决过程
  16. 红孩儿编辑器的模块设计5
  17. 事件研究法python代码
  18. 跟着示例学Ubuntu UFW防火墙设置
  19. Unity项目--LoyPoly风格的FPS Demo(附试玩地址)
  20. 重新安装键盘鼠标后,PS2键盘无法识别问题!

热门文章

  1. VMware安装之后没有网卡-有效解决办法
  2. 上海市计算机学会竞赛平台一星级挑战
  3. 基于STM32F030的LED指尖陀螺
  4. Nvidia 股票 5 年预测:这是 GTC‘22 所说的
  5. uni-app 动态设置 swiper 的高度
  6. 黑马程序员-MyBatis笔记
  7. mac下office文档自动恢复
  8. Facebook新AI模型SEER实现自监督学习,LeCun大赞最有前途
  9. Windows11焕新登场,使用VMware虚拟机安装Windows11以及汉化教程
  10. 【Android Studio】修改AVD文件位置,释放C盘空间