阿里云环境下的配置DNS和SLB的几种实践示例

一、背景

对于大多中小型公司来说,生产环境大多是购买阿里云或者腾讯云等等,也就存在以下需求:

  • 外网域名
  • 内网域名
  • SLB
  • 容器化部署

特别是前两项,一定是跳不过的。容器化部署,现在非K8S莫属了。
既然是购买阿里云,所以K8S一般也是购买阿里云的“容器服务 kubernetes版”,好处是它本身有一套web版的管理UI。
除此之外,你还需要开通的服务有:“域名服务”“云解析DNS”“负载均衡 SLB”。

本文是基于阿里云环境,讲述如何配置DNS,顺便说一下SLB。

二、部署方式

这里会有两种场景,一者是ECS,另外就是K8S。

1、ECS部署方式

在这里插入图片描述

2、K8S部署方式

在这里插入图片描述
当然,上面的nginx也可被nginx ingress替代。
见下图:

在这里插入图片描述

三、配置DNS

内网域名是xxx.cloud,外网域名是xxx.net。子域名是对应具体的服务,比如本文的文件服务,就是file前缀。

1、外网域名

云解析DNS

在这里插入图片描述
在这里插入图片描述
因为我已添加完成,所以这里仅作修改示例:

  • 主机记录,输入file,后面的外网域名是固定的,xxx.net。合起来就是file.xxx.net域名。
  • 记录值,填写SLB负载均衡的地址,如果没有使用SLB,则填写API网关的地址。

在这里插入图片描述

2、内网域名

操作和外网域名没什么区别,这里展示ECS部署场景下,该如何配置DNS。这里没有SLB。

在这里插入图片描述
区别是,这里的记录值填写Nginx的地址,并且我们会添加两条“file.xxx.cloud”的记录。
两条记录的唯一差别是记录值不同,指向两个nginx节点,因为这里使用了nginx集群。

四、SLB

上文说了,我们购买了阿里云的SLB,所以下面简单讲述,如果没有内外网域名,直接暴露外网SLB地址给客户端。
见下图所示:
在这里插入图片描述
在这里插入图片描述
上图中使用的SLB,就是外网域名指向的地址。

下面,看下它的后端服务器:

在这里插入图片描述
可以说,怎么配置SLB,在阿里云UI操作还是比较直观的,不在本文的细说。

SLB对nginx2和nginx3的负载均衡。

内网SLB

上面购买的是外网slb,如果你不需要直接暴露slb地址的话,购买内网slb即可。
在这里插入图片描述
注意,这里的服务地址是10开头的内网IP。

本SLB的配置后端服务器,和上文的SLB不同的地方在于,使用了虚拟服务器组,而上文使用的默认服务器组。

  • 负载均衡默认是在实例维度上维护后端服务器组,即实例下的所有监听都使用相同的后端服务器组。虚拟服务器组允许用户在监听维度上个性化定义服务器组,即实例下的不同监听可使用不同的后端服务器组,可满足域名和URL转发个性化需求。

说白了,就是一个slb可以转发多个端口。

在这里插入图片描述
这里维护了两个nginx节点

在这里插入图片描述

SLB实现k8s的service

当 Service 类型是 LoadBalancer 时,Kubernetes 会创建云提供商的负载均衡器,并将外部流量引导到集群中相应的 Node 上。

在这里插入图片描述
可以明显看到,这里使用了虚拟服务器组,端口进行了一一映射。

正因为虚拟服务器组,才使得一个slb能够对许多后端服务进行负载均衡。

五、nginx ingress

1、创建slb

在这里插入图片描述

2、创建服务的ingress访问

在这里插入图片描述
当然,ingress的前提是要先创建service,因为service不在本文讲述范围,略去,下面看一下ingress的yaml。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: xxxnamespace: java-service
spec:
# Ingress Class必填ingressClassName: ack-nginxrules:- host: file.xxx.cloudhttp:paths:- backend:service:name: message-serverport:number: 8100path: /pathType: ImplementationSpecific
# 注意看它指向的slb
status:loadBalancer:ingress:- ip: 10.224.171.70

可以看出,nginx ingress是依赖service和slb的,当然service本身也采用了slb实现。

所以,这里就使用了两个slb。一个是ingress要用到的,另外一个是service需要的。

六、说在最后的话

因为阿里云的文档本身已很丰富全面了,本文不意再重复一遍,如果在看本文的时候,有不清楚的地方,还望见谅,结合官方文档可能更佳。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 913 (Div. 3)

等hack完补全,快进到全都被爆开 A. Rook B. YetnotherrokenKeoard 补题:C. Removal of Unattractive Pairs 总结 前两题18分钟快速拿下。C题开始钻牛角尖,钻了2个小时超时一次WA一次。 陷入了危险的无用思维旋涡!导致这一次div…

从零构建属于自己的GPT系列2:模型训练1(预训练中文模型加载、中文语言模型训练、逐行代码解读)

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:数据预处理 从零构建属于自己的GPT系列2:模型训…

leetcode203. 移除链表元素

题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入…

NSS [NSSCTF 2022 Spring Recruit]babyphp

NSS [NSSCTF 2022 Spring Recruit]babyphp 考点&#xff1a;PHP特性 开局源码直接裸奔 <?php highlight_file(__FILE__); include_once(flag.php);if(isset($_POST[a])&&!preg_match(/[0-9]/,$_POST[a])&&intval($_POST[a])){if(isset($_POST[b1])&&…

Git篇如何在自己服务器搭建自己的git私有仓库

要在自己的服务器上搭建自己的Git私有仓库&#xff0c;可以按照以下步骤进行操作&#xff1a; 安装Git服务器软件&#xff1a;选择一款适合的Git服务器软件&#xff0c;如GitLab或GitHub&#xff0c;并按照官方文档进行安装和配置。创建数据库&#xff1a;如果使用GitLab&…

Doris 集成 ElasticSearch

Doris-On-ES将Doris的分布式查询规划能力和ES(Elasticsearch)的全文检索能力相结合,提供更完善的OLAP分析场景解决方案: (1)ES中的多index分布式Join查询 (2)Doris和ES中的表联合查询,更复杂的全文检索过滤 1 原理 (1)创建ES外表后,FE会请求建表指定的主机,获取所有…

MATLAB算法实战应用案例精讲-【图像处理】边缘检测(补充篇)(附MATLAB代码实现)

目录 前言 几个相关概念 知识储备 数字图像处理(Digital Image Processing)

Qt 软件调试——windbg初篇(一)

在上一篇《Qt 软件调试&#xff08;二&#xff09;使用dump捕获崩溃信息》中我们结尾处提示大家先准备好windbg&#xff0c;windbg是非常强大的调试工具&#xff0c;对于我们进行代码调试和分析异常有着非常重要的意义。 在Qt软件调试这个系列的首篇&#xff0c;我们介绍了《Qt…

RPG项目01_层级设置

基于“RPG项目01_UI面板Game”&#xff0c; 找到狼人 添加组件&#xff0c;让狼人一定区域自动跟随主角进行攻击 解释&#xff1a;【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态&#xff0c;则不为蓝色 烘培&…

手机备忘录在哪里找出来?

谈及手机备忘录&#xff0c;每一个品牌的手机大家都能找到很多&#xff0c;现在各大手机品牌都开发的有自带的手机备忘录&#xff0c;所以说&#xff1a;手机备忘录在哪里找出来并不难&#xff0c;即便是手机自带的没有备忘录工具&#xff0c;大家也是可以通过手机应用市场搜索…

在AWS EC2中部署和使用Apache Superset的方案

大纲 1 Superset部署1.1 启动AWS EC21.2 下载Superset Docker文件1.3 修改Dockerfile1.4 配置管理员1.5 结果展示1.6 检查数据库驱动1.7 常见错误处理 2 Glue&#xff08;可选参考&#xff09;3 IAM与安全组3.1 使用AWS Athena3.2 使用AWS RedShift或AWS RDS3.2.1 查看AWS Reds…

【电子取证篇】汽车取证数据提取与汽车取证实例浅析(附标准下载)

【电子取证篇】汽车取证数据提取与汽车取证实例浅析&#xff08;附标准下载&#xff09; 关键词&#xff1a;汽车取证&#xff0c;车速鉴定、声像资料鉴定、汽车EDR提取分析 汽车EDR一般记录车辆碰撞前后的数秒&#xff08;5s左右&#xff09;相关数据&#xff0c;包括车辆速…

Redis击穿(热点key失效)

Redis击穿是指在高并发情况下&#xff0c;一个键在缓存中过期失效时&#xff0c;同时有大量请求访问该键&#xff0c;导致所有请求都落到数据库上&#xff0c;对数据库造成压力。这种情况下&#xff0c;数据库可能无法及时处理这些请求&#xff0c;导致性能下降甚至崩溃。 为了…

熟悉tomcat的哪些配置?

Tomcat是一种常用的Java Web服务器&#xff0c;它提供了许多配置选项来控制其行为和性能。以下是一些常见的Tomcat配置&#xff1a; 端口配置&#xff1a;你可以配置Tomcat监听的端口号&#xff0c;通常用于指定HTTP和HTTPS服务的端口。连接池配置&#xff1a;Tomcat的连接池可…

基于openEuler20.03安装openGauss5.0.0及安装DBMind

基于openEuler20.03安装openGauss5.0.0及安装DBMind 一、环境说明二、安装部署三、问题及解决 一、环境说明 虚拟机&#xff1a;VirtualBox操作系统&#xff1a;openEuler20.3LTS &#xff08;x86&#xff09;数据库&#xff1a;openGauss5.0.0 (x86)DBMind&#xff1a;dbmind…

Pytest自动化测试数据驱动yaml/excel/csv/json

数据驱动 数据的改变从而驱动自动化测试用例的执行&#xff0c;最终引起测试结果的改变。简单说就是参数化的应用。 测试驱动在自动化测试中的应用场景&#xff1a; 测试步骤的数据驱动&#xff1b;测试数据的数据驱动&#xff1b;配置的数据驱动&#xff1b; 1、pytest结合…

Linux gtest单元测试

1 安装git sudo apt-get install git2 下载googletest git clone https://github.com/google/googletest.git3 安装googletest 注意1: 如果在 make 过程中报错,可在 CMakeLists.txt 中增加如下行,再执行下面的命令: SET(CMAKE_CXX_FLAGS “-std=c++11”) 注意2: CMakeLists…

Django回顾6

目录 一.Session 1.什么是Session 2.Django中Session相关方法 3.Django中的Session配置 二.中间件 1.什么是中间件 中间件的定义 2.中间件有什么用 3.自定义中间件 process_request和process_reponse &#xff08;1&#xff09;导入 &#xff08;2&#xff09;自定义…

5G常用简称

名称缩写全称缓冲区状态报告BSRBuffer Status Report&#xff08;主小区组MCGMaster Cell groupMCG的节点MNMasternode主小区PCellPrimary Cell&#xff0c;功率余量PHRPower Headroom Report主辅小区PSCellPrimary Secondary CellSCG的节点SNSecondarynode辅小区SCellSecondar…

centos安装node 、npm 、nvm

你好&#xff0c;这是Bing。我可以帮你用nodejs写一个http服务器。&#x1f60a; 根据我的搜索结果&#xff0c;你需要使用 require 指令来加载和引入 http 模块&#xff0c;然后使用 http.createServer 方法来创建一个服务器实例&#xff0c;最后使用 listen 方法来监听一个端…