4.DNS和负载均衡
文章目录
- coreDNS
- 概念
- 部署croeDNS
- 测试
- kubernetes多master集群结构
- master节点部署
- 负载均衡配置
- 部署nginx做四层反向代理
- 安装高可用 keepalived
- nginx监控脚本
- 修改k8s中组件的配置文件
coreDNS
概念
-
coreDNS是kubernetes的默认DNS实现。可以为集群中的service资源创建一个资源名称与clusterIP的对应关系解析
-
kubernetes可以选择使用DNS来避免将服务器的集群IP地址硬编码到您的引用程序中
-
K8S的DNS实现
- coreDNS
- 根据xervice资源的名称解析出clusterip
- 根据statfulset控制器创建的pod资源名称解析出pod IP
部署croeDNS
##在所有的 node 节点上
#上传文件 coredns.tar 到 /opt/k8s#加载 coredns的镜像
docker load -i coredns.tar
##在master01节点
##上传 coredns.yaml 到 /opt/k8s
##安装 coredns
kubectl apply -f coredns.yaml
###查看所有命名空间下的pod资源
kubectl get pods -A

测试
###master01节点
###创建pods资源
kubectl create deployment ggl --image=nginx:latest --port=80
###查看pods
kubectl get pods -o wide

##授权,给kubectl绑定默认cluster-admin管理源集群角色,授权集群操作权限
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
##查看deployment
kubectl get deployment##创建service资源
kubectl expose deployment ggl --port=80 --name myapp-ggl --target-port=80##查看service资源
kubectl get service

###进入到pods中
kubectl exec -it pod名称 bash##在pods中配置DNS域名解析
cat /etc/resolv.conf##获取域名后缀
default.svc.cluster.local##查看指定 service 绑定
nslookup myapp-ggl.default.svc.cluster.local
- CoreDNS 是 K8S 的默认 DNS 实现
- 根据 service 资源名称 解析出 Cluster IP
- 根据 statefulset 控制器创建的 Pod 资源名称 解析出 Pod IP
#DNS 解析测试
kubectl run -it --rm dns-test --image=busybox:1.28.4 shIf you don't see a command prompt, try pressing enter.
/ # nslookup kubernetes
Server: 10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.localName: kubernetes
Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local

kubernetes多master集群结构
###master02:192.168.242.69##使用同样的方式进行初始化操作
##要修改主机名
master节点部署
##从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点
scp -r /opt/etcd/ root@192.168.242.69:/opt/
scp -r /opt/kubernetes/ root@192.168.242.69:/opt
scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.242.69:/usr/lib/systemd/system/
scp -r /root/.kube root@192.168.242.69:/root
###master02
##修改配置文件cd /opt/kubernetes/cfgvim kube-scheduler.kubeconfig
vim kube-controller-manager.kubeconfig
vim /root/.kube/config
修改为 server: https://192.168.242.69:6443vim kube-apiserver
修改 --bind-address=192.168.242.69 \--secure-port=6443 \--advertise-address=192.168.242.69 \
##依次启动服务
systemctl enable --now kube-apiserver.service
systemctl enable --now kube-controller-manager.service
systemctl enable --now kube-scheduler.service
##为可执行文件创建软连接到系统目录中
ln -s /opt/kubernetes/bin/* /usr/local/bin/
###在 master02中也能够使用 kubectl 客户端
kubectl get pods
负载均衡配置
###利用 nginx + keepalived 做负载均衡
192.168.242.70
192.168.242.71
##关闭防火墙
systemctl disable --now firewalld
setenforce 0
vim /etc/selinx/config
部署nginx做四层反向代理
###nginx 的 yum 源[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
##安装nginx
yum -y install nginx
##修改配置文件
cd /etc/nginx/
vim nginx.confuse epoll;stream {upstream k8s {server 192.168.242.66:6443;server 192.168.242.69:6443;}server {listen 6443;proxy_pass k8s;}
}
##启动nginx
nginx -t
systemctl enable --now nginxnetstat -lntp | grep nginx
安装高可用 keepalived
##安装 keepalivedyum -y install keepalived
###修改配置文件cd /etc/keepalived
cp keepalived.conf{,.bak}
vim keepalived.confglobal_defs {smtp_server 127.0.0.1router_id Nginx_01
}vrrp_script chk_nginx {###指定监控脚本的路径script "/etc/keepalived/nginx_check.sh"###检测的间隔时间interval 2###权重weight 2
}vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2weight 2
}vrrp_instance VI_1 {state MASTERinterface ens32virtual_router_id 51 priority 100advert_int 1 authentication { auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.242.100}track_script { ###加载追踪模块chk_nginx}
}
nginx监控脚本
###创建监控脚本
vim /etc/keepalived/nginx_check.sh
###检测nginx是否启动的脚本
#!/bin/bash
if ! killall -0 nginx &> /dev/null
thensystemctl stop keepalived
fi
vim nginx_check.sh
###给脚本添加执行权限
chmod +x nginx_check.sh
###启动 keepalivedsystemctl enable --now keepalived###查看VIP地址
ip a

修改k8s中组件的配置文件
###修改node节点的配置文件cd /opt/kubernetes/cfg/vim bootstrap.kubeconfig
vim kubelet.kubeconfig
vim kube-proxy.kubeconfig修改为 server: https://192.168.242.100:6443
###重启服务
systemctl restart kubelet.service kube-proxy.service
###在负载均衡器中查看端口信息netstat -natp | grep nginx

###修改 kubectl 配置文件vim /root/.kube/config
修改为 server: https://192.168.242.100:6443
相关文章:
4.DNS和负载均衡
文章目录 coreDNS概念部署croeDNS测试 kubernetes多master集群结构master节点部署 负载均衡配置部署nginx做四层反向代理安装高可用 keepalivednginx监控脚本修改k8s中组件的配置文件 coreDNS 概念 coreDNS是kubernetes的默认DNS实现。可以为集群中的service资源创建一个资源名…...
【JavaEE进阶】Spring核心与设计思想
文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架?3. Spring框架学习的难点 二. Spring 核心与设计思想1. 什么是容器?2. 什么是IoC?3. Spring是IoC容器4. DI(依赖注入)5. DL(依赖查找) 一. Spring框架概述…...
实习周记第三周
第二周总结 第二周主要是做了一些PC端细节内容。大的地方改的不多,但是小的细节蛮多。 值得一提的是,第二周做的微信小程序,改了很多逻辑。改逻辑需要与后端进行联调,收获很大,思路也愈发清楚。 记录做了什么是好习…...
11. 使用tomcat中碰到的一些问题
文章目录 问题一:Tomcat的startup.bat启动后出现乱码问题二:一闪而退之端口占用问题三:非端口问题的一闪而退问题四:服务器的乱码和跨域问题问题五: 在tomcat\webapps\下创建文件夹为什么tomcat重启就会丢失问题六:Tom…...
C++解决TCP粘包
目录 TCP粘包问题TCP客户端TCP服务端源码测试 TCP粘包问题 TCP是面向连接的,面向流的可靠性传输。TCP会将多个间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包发送,这样一个数据包里就可能含有多个消息的数据&#…...
最长快乐前缀——力扣1392
文章目录 题目描述KMP题目描述 KMP class Solution {public:string longestPrefix(string s) {int n = s...
使用java.util.List的containsAll()方法可能导致的问题
今天在偶然之间发现了一个bug,原因居然是使用了containsAll()方法,这个问题很简单,看以下代码就能发现很大的问题。 package collection;import java.util.ArrayList; import java.util.List;/*** author heyunlin* version 1.0*/ public cl…...
在线文本转语音播放 (TTS)
具体请前往:在线文本转语音播放(TTS)...
OPTEE之ARM安全扩展
目录 一、BTI(Branch Target Identification) 二、如何使能OP-TEE core的BTI 三、如何使能TA的BTI 一、BTI(Branch Target Identification) 分支目标识别(BTI)是ARMv8.5(及Armv9.0)扩展,它为间接分支及其目标提供了控制流完整性(CFI)保护,从而有助于限…...
Vue [Day4]
组件的三大组成部分 组件的样式冲突 scoped <style scoped></style>data 是一个函数 components/BaseButton.vue <template><div class"BaseButton"><button click"count--">-</button><span>{{ count }}</…...
google chrome 官方下载
官方渠道: 1、链接直接打开就可以下载,最新版实时更新。 32位(x86):https://dl.google.com/tag/s/installdataindex/update2/installers/ChromeStandaloneSetup.exe 64位(x64):htt…...
Misc取证学习
文章目录 Misc取证学习磁盘取证工具veracryto挂载fat文件DiskGenius 磁盘取证例题[RCTF2019]disk 磁盘[](https://ciphersaw.me/ctf-wiki/misc/disk-memory/introduction/#_2)内存取证工具volatility 内存取证例题数字取证赛题0x01.从内存中获取到用户admin的密码并且破解密码 …...
vue打包到jar资源访问被shiro拦截
1.shiro放发对静态资源的拦截// filterMap.put("/202307171550/**", "anon"); // filterMap.put("/config/**", "anon"); // filterMap.put("/index.html", "anon"); 2.装载资源访问 priva…...
选择排序(指针法)
描述 用选择法对10个整数排序。 输入 输入包含10个整数,用空格分隔。 输出 输出排序后的结果,用空格分隔。 输入样例 1 3 1 4 1 5 9 2 6 5 3 输出样例 1 1 1 2 3 3 4 5 5 6 9 输入样例 2 2 4 6 8 10 12 14 16 18 20 输出样例 2 2 4 6 8 1…...
8.6 day07 休息+剑指offer
文章目录 06从尾到头打印链表03数组中重复的数字04二维数组中的查找05 替换空格06重建二叉树背英语单词,看了二十页 06从尾到头打印链表 从尾到头遍历链表 方法一就是用栈来辅助,栈的结构是先进后出的,将链表中的元素加入到栈中去࿰…...
K8S系列文章 之 容器存储基础 Volume
Volume Volume是容器数据卷。我们经常创建删除一些容器,但有时候需要保留容器中的一些数据,这时候就用到了Volume。它也是容器之间数据共享的技术,可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人…...
【CHI】架构介绍
Learn the architecture - Introducing AMBA CHI AMBA CHI协议导论--言身寸 1. AMBA CHI简介 一致性集线器接口(CHI)是AXI一致性扩展(ACE)协议的演进。它是Arm提供的高级微控制器总线架构(AMBA)的一部分。…...
hcip的ospf综合实验
题目 拓扑图 IP地址分配及环回 R1 < Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]sysname r1 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 172.16.0.1 27 Aug 6 2023 19:03:33-08:00 r1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol I…...
AP5179 高端电流采样降压恒流驱动IC SOP8 LED车灯电源驱动
产品描述 AP5179是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从 5 V 到 60V,输出电流 最大可达 2.0A 。根据不同的输入电压和外部器件, 可以驱动高达数十瓦的 LED。内置功率开关,采用高端电流…...
vue3+vite项目配置ESlint、pritter插件
配置ESlint、pritter插件 在 Vue 3 Vite 项目中,你可以通过以下步骤配置 ESLint 和 Prettier 插件: 安装插件: 在项目根目录下,打开终端并执行以下命令安装 ESLint 和 Prettier 插件: npm install eslint prettier e…...
独立开发者如何借助Taotoken多模型能力打造全能AI助手应用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken多模型能力打造全能AI助手应用 对于独立开发者或小型工作室而言,构建一个功能全面的AI助手…...
别再只盯着wx.login了!SpringBoot后端实战:用getPhoneNumber接口搞定小程序用户手机号绑定
微信小程序用户手机号绑定:SpringBoot后端深度实践指南 在当今移动互联网生态中,微信小程序已成为连接用户与服务的重要桥梁。对于需要强实名认证或直接触达用户的业务场景(如电商交易、金融服务、政务办理等),仅依赖w…...
基于Arduino与TSL2561的光照度测量系统:从硬件连接到软件调试
1. 项目概述:从园艺需求到嵌入式光测量方案最近在折腾一个园艺相关的项目,需要量化评估不同覆盖材料(比如遮阳网、塑料薄膜)对光线透射率的影响。说白了,就是想精确知道,盖上一层材料后,底下还能…...
告别手动框选!用SUSTechPOINTS的V键批量标注,5分钟搞定一帧点云
解锁SUSTechPOINTS的V键批量标注:点云处理效率革命 在自动驾驶与机器人研发领域,点云标注是构建高精度感知模型的基础环节,但传统逐帧手动标注方式往往成为项目进度的瓶颈。我曾参与过一个城市级点云数据集标注项目,团队最初采用常…...
构建个人技能库:用GitHub+Markdown打造开发者的第二大脑
1. 项目概述:从“我的Copaw技能”看个人技能库的构建与管理最近在GitHub上看到一个挺有意思的项目,叫“my-copaw-skill”。这个项目名本身就很有故事感,“Copaw”这个词,我猜是“Code”和“Paw”(爪子)的结…...
3个技巧让SD-PPP插件提升Photoshop设计效率300%
3个技巧让SD-PPP插件提升Photoshop设计效率300% 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 还在为Photoshop和AI工具之间的频繁切换而烦恼吗?每次都要导出PSD、上传到AI平台、等待生成、再导回Phot…...
如何永久保存微信聊天记录?三步实现完整备份与智能分析
如何永久保存微信聊天记录?三步实现完整备份与智能分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...
安得医疗冲刺港股:年营收9亿,利润1.5亿 上海亿瑞控制41%股权
雷递网 雷建平 5月16日山东安得医疗用品股份有限公司(简称:“安得医疗”)日前递交招股书,准备在港交所上市。截至2023年、2024年及2025年12月31日止年度,安得医疗分别宣派及派付股息6670万元、4670万元及4000万元。年营…...
基于Trinket M0与伺服电机的宠物激光护目镜DIY全攻略
1. 项目概述与核心思路给自家毛孩子做个赛博朋克风的万圣节装备,这个想法在我脑子里盘桓很久了。市面上那些宠物装饰要么千篇一律,要么就是简单的布料缝制,总感觉少了点“硬核”的趣味。直到我看到伺服电机和激光二极管这两个小玩意儿&#x…...
基于规则引擎的Markdown笔记自动化归档工具设计与实现
1. 项目概述:一个为知识工作者打造的自动化归档工具如果你和我一样,每天在 Obsidian、Logseq 或者任何支持 Markdown 的笔记软件里记录大量的“每日笔记”,那么你一定也面临过同样的困扰:日积月累,一个名为“Daily Not…...
