当前位置: 首页> 房产> 政策 > 软件测试流程及规范_跨境电商b2b平台_网络推广的方法你知道几个?_搜狗官方网站

软件测试流程及规范_跨境电商b2b平台_网络推广的方法你知道几个?_搜狗官方网站

时间:2025/7/10 10:56:40来源:https://blog.csdn.net/2401_82795112/article/details/144374432 浏览次数:0次
软件测试流程及规范_跨境电商b2b平台_网络推广的方法你知道几个?_搜狗官方网站

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

| 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 |


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【K8s】专题十五(4):Kubernetes 网络之 Calico 插件安装、切换网络模式、卸载


目录

一、基本介绍

二、功能特性

三、Corefile 配置示例

四、DNS 策略


一、基本介绍

CoreDNS 是一种使用 Golang 编写、由配置文件控制的插件式 DNS 服务器,自 Kubernetes 1.13 版本起,成为 Kubernetes 的默认 DNS 服务器,通常用于 Kubernetes 集群内部服务发现,允许应用程序之间直接、或通过 Service 对象名称互相访问

CoreDNS 采用 Apache License Version 2 开源协议,是 CNCF 孵化的开源项目,并已正式毕业,成为云原生环境下 DNS 服务器和服务发现的一种成熟解决方案。

CoreDNS 采用插件式架构,可以轻松实现功能扩展。各类插件用于处理 DNS 请求、转发请求、缓存结果、记录日志等。CoreDNS 具有高性能、自动重试、健康检查和负载均衡等功能,确保了 DNS 服务的可靠性。


二、功能特性
  • 插件化(Plugins):CoreDNS 的核心理念是插件化,每个插件执行 DNS 功能,如 Kubernetes 服务发现、Prometheus 指标或重写查询
  • 简单(Simplicity):CoreDNS 使配置文件变得简单,采用 Caddy 中的 DSL 配置方案,即 Corefile 形式的配置文件
  • 服务发现 (Service Discovery):CoreDNS 通过 Kubernetes 插件与 Kubernetes 集成,或通过 ETCD 插件直接与 ETCD 集成
  • 快速和弹性(Fast and Flexible):CoreDNS 的目标是快速高效,因此插件也很灵活,可以根据需要编译 CoreDNS


三、Corefile 配置示例
# kubectl get cm coredns -oyaml -n kube-system 
...
data:Corefile: |.:53 {errorshealth {lameduck 5s}readykubernetes cluster.local in-addr.arpa ip6.arpa {pods insecurefallthrough in-addr.arpa ip6.arpattl 30}prometheus :9153forward . /etc/resolv.conf {max_concurrent 10000}cache 30loopreloadloadbalance}
...

每部分配置语句的解释如下:

  • .:53:表示 CoreDNS 监听在 53 端口上,处理所有到达该端口的 DNS 请求
  • errors:该插件用于将错误记录到标准输出,以便在 CoreDNS 遇到问题时进行调试
  • health:该插件用于提供 CoreDNS 的健康报告,会在 http://localhost:8080/health 处提供健康检查端点
    • lameduck 5s:health 插件的一个选项,表示当 CoreDNS 进程被标记为不健康时等待 5 秒钟才关闭,这段时间允许继续处理未完成请求
  • ready:该插件用于在端口 8181 上提供一个 HTTP 端点,以指示 CoreDNS 是否准备好处理请求。当所有能够表达自身就绪的插件都已就绪时,在此端点返回 200 状态码
  • kubernetes:该插件用于处理 Kubernetes 内部 DNS 解析,将请求解析为集群内部的 Pod 和服务地址
    • cluster.local in-addr.arpa ip6.arpa:指定 Kubernetes 集群的域和反向 DNS 查找域
    • pods insecure:允许 CoreDNS 返回 Pod 的 IP 地址,即使这些 Pod 的 IP 地址没有在 DNS 中注册
    • fallthrough in-addr.arpa ip6.arpa:如果请求无法在 Kubernetes 集群内解析,CoreDNS 会将请求转发到外部 DNS 服务器
    • ttl 30:设置 DNS 记录的生存时间为 30 秒
  • prometheus:该插件用于以 Prometheus 格式在 http://localhost:9153/metrics 上提供 CoreDNS 的度量指标值
  • forward:该插件用于将不在 Kubernetes 集群域内的任何查询转发到预定义的解析器(通常是 /etc/resolv.conf 中指定的 DNS 服务器)
    • max_concurrent 10000:设置最大并发请求的数量为 10000
  • cache:该插件用于启用前端缓存,缓存查询结果 30 秒,以减少对外部 DNS 服务器的请求负载
  • loop:该插件用于检测简单的转发环,如果发现死循环,则中止 CoreDNS 进程
  • reload:该插件用于在 Corefile 内容发生变更后,等待一段时间后自动重新加载使更改生效
  • loadbalance:该插件用于声明一个轮转式 DNS 负载均衡器,它在应答中随机分配 A、AAAA 和 MX 记录的顺序


四、DNS 策略

在 Deployment、StatefulSet 等资源对象中,可以通过 spec.template.spec.dnsPolicy 声明以下几种类型 DNS 策略:

  • Default: Pod 从所在节点继承 DNS 配置,即使用所在节点的 /etc/resolv.conf 来进行解析
  • ClusterFirst:默认策略,Pod 使用 CoreDNS 进行 DNS 解析,若解析不成功,才会从所在节点继承 DNS 配置进行解析
  • ClusterFirstWithHostNet:针对以 HOST 模式(hostNetwork)启动的 Pod,若还需要使用 CoreDNS 进行 DNS 解析,则设置为 ClusterFirstWithHostNet
  • None:不会使用 CoreDNS 或从所在节点继承 DNS 配置进行解析,而是使用自定义的 dnsConfig 配置,示例如下:
...
spec:...template:spec:containers:...dnsPolicy: "None"dnsConfig:nameservers:- 10.96.0.10searches:- suffix1.povilasv.me- suffix2.povilasv.me- suffix3.povilasv.me- kube-system.svc.cluster.local- svc.cluster.local- cluster.localoptions:- name: ndotsvalue: "5"
...

关键字:软件测试流程及规范_跨境电商b2b平台_网络推广的方法你知道几个?_搜狗官方网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: