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

二进制部署k8s集群之CoreDNS部署及多master节点负载均衡以及高可用(下)

1、部署 CoreDNS

CoreDNS:CoreDNS 是 Kubernetes 的默认 DNS 实现。可以为 K8S 集群内的 Pod 提供 DNS 服务。
使用 CoreDNS 可以为集群中的 service 资源创建一个资源名称 与 ClusterIP 的对应关系解析,从而避免将 service 的 ClusterIP 地址硬编码到应用程序代码中。

两个node节点操作
cd /opt/k8s/
上传coredns.tar包
docker load -i coredns.tar

master01节点操作
cd /opt/k8s/
上传coredns.yaml压缩包
kubectl apply -f coredns.yaml
kubectl get pods -A

2、在master01节点基础上,完成master02节点部署

master01节点
cd /opt
scp -r etcd/ kubernetes/ master02:/opt
cd
scp -r .kube/ master02:/root
cd /usr/lib/systemd/system
scp kube-* master02:`pwd`cd /usr/local/bin/
scp kubectl master02:/usr/local/bin/

master02节点
cd
cd .kube/
rm -rf cache/cd /opt/kubernetes/
rm -f logs/*

master02节点
cd /opt/kubernetes/cfg/
vim kube-apiserver
修改为本机ipsystemctl enable --now kube-apiserver.service kube-controller-manager.service kube-scheduler.service 
systemctl status kube-apiserver.service kube-controller-manager.service kube-scheduler.service查看验证master02节点
kubectl get nodes
kubectl get pods -A
kubectl get svc

3、部署nginx做负载均衡器

20.0.0.10、20.0.0.60两台服务器做负载均衡
初始化操作
systemctl disable --now firewalld
setenforce 0两台服务器安装nginx
cd /etc/yum.repos.d/
上传nginx.repo包
yum install -y nginx
20.0.0.10服务器
cd /etc/nginx/
vim nginx.conf 
#10行添加     use epoll;
#14行开始添加
stream {upstream k8s-apiservers {server 20.0.0.20:6443;server 20.0.0.30:6443;}server {listen 6443;proxy_pass k8s-apiservers;}}nginx -t
systemctl enable --now nginx
netstat -lntp | grep nginxscp nginx.conf 20.0.0.60:`pwd`

20.0.0.60服务器
systemctl enable --now nginx
netstat -lntp | grep nginx

4、部署keepalived做高可用

20.0.0.10、20.0.0.60两台服务器做高可用
yum install -y keepalived20.0.0.10服务器
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
touch nginx_check.sh
vim nginx_check.sh
#!/bin/bashif ! killall -0 nginx &> /dev/nullthensystemctl stop keepalived
fichmod +x nginx_check.sh

vim keepalived.conf
#10行修改
smtp_server 127.0.0.1
#12行修改
router_id NGINX_01
删除原本13-16行#15行添加
vrrp_script nginx_check {script "/etc/keepalived/nginx_check.sh"weight 2interval 2
}#23行修改为本机网卡
interface ens33
#32行修改为指定vip         
20.0.0.100
#34行添加
track_script {nginx_check
}scp keepalived.conf nginx_check.sh 20.0.0.60:`pwd`

20.0.0.60服务器
cd /etc/keepalived/
vim keepalived.conf
#12行修改
router_id NGINX_02
#22行修改
state BACKUP
#25行修改
priority 90

两台keepalived服务器开启服务
systemctl enable --now keepalived.service

验证keepalived高可用

20.0.0.10服务器操作

VIP20.0.0.100在20.0.0.10服务器上

暂停nginx服务,VIP会消失

20.0.0.60服务器查看VIP

将VIP漂移至原节点使用

systemctl start nginx keepalived.service ,于20.0.0.10节点操作即可恢复

//修改两个node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP
cd /opt/kubernetes/cfg/
vim bootstrap.kubeconfig 
server: https://20.0.0.100:6443vim kubelet.kubeconfig
server: https://20.0.0.100:6443vim kube-proxy.kubeconfig
server: https://20.0.0.100:6443//重启kubelet和kube-proxy服务
systemctl restart kubelet.service 
systemctl restart kube-proxy.service

20.0.0.10
netstat -natp | grep nginx  

node节点上的请求就会发送到VIP上,负载均衡器就会将请求发送给master

若客户端工具也想通过vip链接,可对两个master节点进行以下修改

cd
vim .kube/config
server: https://20.0.0.100:6443

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • django网络爬虫系统- 计算机毕业设计源码81040
  • 前端进阶|详细讲讲函数柯里化
  • mybatis多条件in查询拓展
  • 运维之路----计算机基础
  • Kafka动态授权认证:利用SASL/SCRAM机制提升安全性
  • Nginx代理路径被吃
  • 如何在Python中使用网页抓取API获得Google搜索结果
  • 我们的网站被狗爬了!
  • C语言之unsigned long long与指针相互转换实例(五十五)
  • 无名管道C语言
  • React native页面突然白屏
  • Mamba+Transformer完美融合,效果炸裂!
  • UE4 SLUA IOS打包报错解决办法
  • Python零基础入门教程
  • WSL和Windows建立TCP通信协议
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Android Studio:GIT提交项目到远程仓库
  • ES6简单总结(搭配简单的讲解和小案例)
  • Git初体验
  • Java知识点总结(JavaIO-打印流)
  • JS笔记四:作用域、变量(函数)提升
  • k个最大的数及变种小结
  • Laravel 实践之路: 数据库迁移与数据填充
  • Leetcode 27 Remove Element
  • MySQL几个简单SQL的优化
  • rc-form之最单纯情况
  • select2 取值 遍历 设置默认值
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue-router 实现分析
  • Vue小说阅读器(仿追书神器)
  • 浏览器缓存机制分析
  • 算法之不定期更新(一)(2018-04-12)
  • 我是如何设计 Upload 上传组件的
  • 写给高年级小学生看的《Bash 指南》
  • 移动端唤起键盘时取消position:fixed定位
  • - 转 Ext2.0 form使用实例
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​第20课 在Android Native开发中加入新的C++类
  • ​字​节​一​面​
  • #AngularJS#$sce.trustAsResourceUrl
  • $(function(){})与(function($){....})(jQuery)的区别
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (python)数据结构---字典
  • (笔记)M1使用hombrew安装qemu
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • ******IT公司面试题汇总+优秀技术博客汇总