论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
大数据
›
数据仓库与分析
›
Kubernetes相干的名词表明CoreDNS插件(2)
Kubernetes相干的名词表明CoreDNS插件(2)
大连全瓷种植牙齿制作中心
论坛元老
|
6 天前
|
显示全部楼层
|
阅读模式
楼主
主题
1394
|
帖子
1394
|
积分
4197
为什么需要DNS服务?
service发现是k8s中的一个重要机制,其根本功能为:在集群内通过服务名对服务进行访问,即需要完成从服务名到ClusterIP的解析。
k8s主要有两种service发现机制:环境变量和DNS
。没有DNS服务的时候,k8s会采用环境变量的情势,但一旦有多个service,环境变量会变复杂,为解决该题目,我们使用DNS服务。
什么是CoreDNS?
CoreDNS 是 Kubernetes 的焦点组件之一
,作为默认的
DNS 服务插件
,用于提供集群内的服务发现和域名解析功能。
CoreDNS 不是“可选”插件,而是
Kubernetes 的焦点根本设施组件
,负责集群内 DNS 解析。它的设计轻量、模块化,完美契合 Kubernetes 的服务发现需求。
CoreDNS 在 Kubernetes 中的脚色
替代 Kube-DNS
:自 Kubernetes 1.13 起,CoreDNS 代替了早期的 kube-dns,成为默认的 DNS 服务。
服务发现
:允许 Pod 通过服务名称(如 my-service.namespace.svc.cluster.local)访问其他服务,无需硬编码 IP。
集群域解析
:处置惩罚 .svc.cluster.local、.pod.cluster.local 等集群内域名的解析。
coredns的架构是怎么样的?
通过下图可以很好的理解coredns的架构,
CoreDNS 在 Kubernetes 中以 Pod 的情势运行
,并作为一个(或多个)容器摆设在集群内。
CoreDNS的摆设方式
前面说了
CoreDNS 在 Kubernetes 中以 Pod 的情势运行
,在描述一下其摆设方式:
Pod 中的容器
:
CoreDNS 通常以
Deployment
或
ReplicaSet
的情势摆设在 kube-system 命名空间下,每个 Pod 包含
1 个 CoreDNS 容器
(镜像为 coredns/coredns)。
多副本高可用
:
默认情况下会启动多个副本(例如 2 个),分布在不同的节点上,确保 DNS 服务的高可用性。
为什么以 Pod 情势运行?
隔离性
:
作为独立 Pod 运行,避免与宿主或其他服务冲突。
动态管理
:
可通过 Kubernetes 的机制(如滚动更新、健康检查)维护 CoreDNS 的可用性。
资源限制
:
方便通过 requests/limits 控制 CPU/内存资源。
CoreDNS另有其他替代方案吗?
在 Kubernetes 中,
CoreDNS
是默认的 DNS 和服务发现插件,但确实存在其他替代方案,雷同于
containerd
和
Docker
在容器运行时领域的竞争关系。
主要替代方案
(1) kube-dns(已弃用)
历史地位
:Kubernetes 早期默认的 DNS 服务(由 kube-dns Pod 提供)。
组件
:整合了 skyDNS、dnsmasq 和 sidecar 健康检查。
近况
:自 Kubernetes 1.13 起被 CoreDNS
代替
,但仍可通过手动摆设使用(不保举)。
(2) Istio 的 DNS 署理
场景
:在 Service Mesh 中,Istio 的 Sidecar(Envoy)可接受 DNS 解析,实现更细粒度的流量控制。
特点
:依赖 Istio 的 istio-agent,支持多集群 DNS 和自界说规则。
(3) 其他自界说 DNS 方案
ExternalDNS
:将 Kubernetes Service 记录同步到外部 DNS 系统(如 AWS Route53、Cloudflare)。
NodeLocal DNSCache
:在节点级缓存 DNS 请求以提升性能(需共同 CoreDNS 使用)。
为什么 CoreDNS 是主流?
对比维度
CoreDNS
kube-dns(旧版)
Istio DNS
性能
更高(Go 编写,插件化)较低(多组件协作)依赖 Envoy 署理
机动性
支持插件链(如缓存、转发、日志)固定功能深度集成 Service Mesh
维护性
活跃维护,Kubernetes 官方保举已弃用需额外摆设 Istio
适用场景
通用集群旧版本兼容需要高级流量管理的场景
虽然存在替代品(如 kube-dns 或 Istio 的方案),但
CoreDNS 凭借其性能、机动性和官方支持
成为事实标准。替换 CoreDNS 需审慎评估需求,通常仅在特殊场景(如深度集成 Service Mesh)时才有须要。
前面说的替代方案中的
kube-dns
其实也是coredns的发展进化的一个阶段。
DNS在kubernetes中的进化史
DNS服务在kubernetes中经历了三个阶段(SkyDNS-》KubeDNS-》CoreDNS):
【第一阶段】在
kubernetes 1.2版本
时,dns服务使用的是由
SkyDNS
提供的,由4个容器组成:kube2sky、skydns、etcd和healthz。etcd存储dns记录;kube2sky监控service变化,生成dns记录;skydns读取服务,提供查询服务;healthz提供健康检查。
【第二阶段】在
kubernetes 1.4
版本开始使用
KubeDNS
,有3个容器组成:kubedns、dnsmasq和sidecar。kubedns监控service变化,并记录到内存(存到内存提高性能)中;dnsmasq获取dns记录,提供dns缓存,提供dns查询服务;sidecar提供健康检查。
【第三阶段】从
kubernetes >=1.11
版本开始,dns服务有
CoreDNS
提供,coredns支持自界说dns记录及配置upstream dns server,可以同一管理内部dns和物理dns。coredns只有一个coredns容器。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
大连全瓷种植牙齿制作中心
论坛元老
这个人很懒什么都没写!
楼主热帖
初识C语言
记一次 .NET 某汽贸店 CPU 爆高分析 ...
浅入浅出 1.7和1.8的 HashMap
Net core中使用System.Drawing对上传的 ...
业务安全发展的三个阶段
前后端分离项目(八):后端报错Field ...
java学习第二天
Docker三种自定义网络(bridge、macvla ...
计算数学算式的值
Ceph 存储介绍
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
主机安全
容器及微服务
快速回复
返回顶部
返回列表