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

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 官方下载

官方渠道&#xff1a; 1、链接直接打开就可以下载&#xff0c;最新版实时更新。 32位&#xff08;x86&#xff09;&#xff1a;https://dl.google.com/tag/s/installdataindex/update2/installers/ChromeStandaloneSetup.exe 64位&#xff08;x64&#xff09;&#xff1a;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个整数&#xff0c;用空格分隔。 输出 输出排序后的结果&#xff0c;用空格分隔。 输入样例 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重建二叉树背英语单词&#xff0c;看了二十页 06从尾到头打印链表 从尾到头遍历链表 方法一就是用栈来辅助&#xff0c;栈的结构是先进后出的&#xff0c;将链表中的元素加入到栈中去&#xff0…...

K8S系列文章 之 容器存储基础 Volume

Volume Volume是容器数据卷。我们经常创建删除一些容器&#xff0c;但有时候需要保留容器中的一些数据&#xff0c;这时候就用到了Volume。它也是容器之间数据共享的技术&#xff0c;可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人…...

【CHI】架构介绍

Learn the architecture - Introducing AMBA CHI AMBA CHI协议导论--言身寸 1. AMBA CHI简介 一致性集线器接口&#xff08;CHI&#xff09;是AXI一致性扩展&#xff08;ACE&#xff09;协议的演进。它是Arm提供的高级微控制器总线架构&#xff08;AMBA&#xff09;的一部分。…...

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是一款连续电感电流导通模式的降压恒流源&#xff0c;用于驱动一颗或多颗串联LED输入电压范围从 5 V 到 60V&#xff0c;输出电流 最大可达 2.0A 。根据不同的输入电压和外部器件&#xff0c; 可以驱动高达数十瓦的 LED。内置功率开关&#xff0c;采用高端电流…...

vue3+vite项目配置ESlint、pritter插件

配置ESlint、pritter插件 在 Vue 3 Vite 项目中&#xff0c;你可以通过以下步骤配置 ESLint 和 Prettier 插件&#xff1a; 安装插件&#xff1a; 在项目根目录下&#xff0c;打开终端并执行以下命令安装 ESLint 和 Prettier 插件&#xff1a; npm install eslint prettier e…...

K8S kubeadm搭建

kubeadm搭建整体步骤 1&#xff09;所有节点进行初始化&#xff0c;安装docker引擎和kubeadm kubelet kubectl 2&#xff09;生成集群初始化配置文件并进行修改 3&#xff09;使用kubeadm init根据初始化配置文件生成K8S的master控制管理节点 4&#xff09;安装CNI网络插件&am…...

Squeeze-and-Excitation Networks阅读笔记一

文章目录 Abstract1 INTRODUCTION Abstract 卷积算子&#xff08;convolution operator&#xff09;是卷积神经网络&#xff08;cnn&#xff09;的核心组成部分&#xff0c;它使网络能够通过融合每层局部接受域内的空间和通道信息来构建信息特征。广泛的先前研究已经调查了这种…...

LabVIEW开发3D颈动脉图像边缘检测

LabVIEW开发3D颈动脉图像边缘检测 近年来&#xff0c;超声图像在医学领域对疾病诊断具有重要意义。边缘检测是图像处理技术的重要组成部分。边缘包含图像信息。边缘检测的主要目的是根据强度和纹理等属性识别图像中均匀区域的边界。超声&#xff08;US&#xff09;图像存在视觉…...

python10.4.3

10.4.3重构 错误实例 import jsondef laoyonghu(): #获取老用户名字filenameusername.jsonwith open(filename) as f:usernamejson.load(f)return usernamedef xinyonghu(): #获取新用户名字filenameusername.jsonusernameinput("whats your name:")with ope…...

系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

Vue中,$forceUpdate()的使用

在Vue官方文档中指出&#xff0c;$forceUpdate具有强制刷新的作用。 那在vue框架中&#xff0c;如果data中有一个变量:age&#xff0c;修改他&#xff0c;页面会自动更新。 但如果data中的变量为数组或对象&#xff0c;我们直接去给某个对象或数组添加属性&#xff0c;页面是识…...

K8s中的Ingress

1.把端口号对外暴露&#xff0c;通过ip端口号进行访问 使用Service里面的NodePort实现 2.NodePort缺陷 在每个节点上都会起到端口&#xff0c;在访问时候通过任何节点&#xff0c;通过节点ip暴露端口号实现访问 意味着每个端口只能使用一次&#xff0c;一个端口对应一个应用…...

c++调用ffmpeg api录屏 并进行udp组播推流

代码及工程见https://download.csdn.net/download/daqinzl/88155241 开发工具&#xff1a;visual studio 2019 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 ffplay udp://224.1.1.1:5001 主要代码如下: #include "pch.h" #include <iostream>…...

war包方式安装linux和windows的geoserver

注意&#xff1a; 从Java 9开始&#xff0c;Oracle已经不再单独提供JRE&#xff08;Java Runtime Environment&#xff09;了&#xff0c;而是直接将JRE集成在JDK&#xff08;Java Development Kit&#xff09;中。这是因为JRE包含了运行Java程序所需的环境&#xff0c;而JDK除…...

安装CUDA与CUDNN与Pytorch(最新超级详细图文版本2023年8月最新)

一、安装CUDA 1.1、下载安装包 cuda可以认为就是Nvidia为了显卡炼丹搞的一个软件&#xff0c;其下载地址为&#xff1a;CUDA Toolkit 12.2 Update 1 Downloads | NVIDIA Developer 当你点进这个链接的时候&#xff0c;你需要依次选择 1是选择系统&#xff0c;这里选windows…...