SkyDNS

服务发现系统
授权协议 MIT
开发语言 Google Go
所属分类 服务器软件、 服务发现/注册和协调
软件类型 开源软件
地区 不详
投 递 者 尹承业
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

SkyDNS 是一个相对新的项目它采用Go语言编写,使用了RAFT用于一致性,并提供了HTTP和DNS两种客户端API.它与Etcd和Spotify的DNS模型有点类似,事实上它采用了和Etcd,go-raft同样的RAFT实现。

SkyDNS服务器聚簇在一起,使用RAFT协议,并选择出一个主服务。SkyDNS服务器暴露不同的结点用于服务注册和发现。

为了注册服务,服务会使用基于HTTP的API创建带有TTL的入口。服务必须周期性地通过心跳报告它们的状态。SkyDNS也使用了SRV记录,但它对记录做了扩展用于支持服务版本、环境和地区。

为了发现,客户端使用DNS并检索它们需要连接的服务的SRV记录。客户端需要实现负载均衡或者失效备援,并且周期性的缓存和刷新服务位置数据。

与Spotify使用DNS不同的是,SkyDNS支持服务的动态注册,并且能够在不依赖像Zookeeper或者Etcd的情况下动态注册。

如果你使用了docker,skydock,你应当去检查一下你的容器与 SkyDNS 自动的集成。

  • SkyDNS SkyDNS 是一个域名解析服务器。使用 etcd 作为后端存储 Github 地址: https://github.com/skynetservices/skydns Kubernets 的 kube-dns 是基于 SkyDNS 的实现 Kubernets 当前默认的 DNS 服务 CoreDNS ,是 SkyDNS 的继任者,支持 SkyDNS 的所有特性 熟悉下 SkyDNS

  • Useful link: https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/admin/dns.md     Kube-dns服务后端启动多个POD时的注意事项: 开启kube2sky和skydns的livenessProbe 为skydns添加--no-rec启动参数 在一个skydns pod无法正常提供dn

  • SkyDNS试用 简介 SkyDNS是kubernetes用于服务发现的默认的开源DNS服务。本文将抛开kubernetes单独体验SkyDNS。其开源在github。依赖与etcd作为数据存储。 其官方介绍如下: Version 2.5.2c SkyDNS is a distributed service for announcement and discovery of services bu

  • 目录贴:Kubernetes学习系列   在之前几篇文章的基础,(Centos7部署Kubernetes集群、基于kubernetes集群部署DashBoard、为Kubernetes集群部署本地镜像仓库),本文继续搭建Kubernete中的服务注册发现机制——SkyDNS. 1、部署Cluster DNS 1.1 原理   通过前面对Kubernetes的讨论(Kubernetes核心概念总结)

  • 目的 1 搭建 skydns + etcd 集群 2 把原有的 powerdns 数据迁移至 skydns 中(不可行) 缺陷 无法支持多个域名, 一个 skydns 只有一个唯一域名, 由启动时候 domain 定义 没有主从 DNS 服务器的概念, 即, 无法实现与其他标准 DNS 信息同步功能 DNS SOA 记录不会 INCREMENT skydns 支持一个提供类似 DNS 功能的小

  • Consul vs. SkyDNS SkyDNS是一种旨在提供服务发现的工具。它使用多个中心服务器,这些服务器具有高度一致性和容错性。节点使用HTTP API注册服务,并且可以通过HTTP或DNS进行查询以执行发现。 Consul非常相似,但提供了功能的超集。 Consul还依赖多个中央服务器来提供强大的一致性和容错能力。节点可以使用HTTP API或使用代理注册服务,查询通过HTTP或DNS进行

  • 调研skydns 详解地址 搭建单机版的etcd+skynds 第一步 $go get github.com/coreos/etcd $cd ~/etcd $./bin/etcd (还有一些参数可以随etcd启动,后面详解) 第二步 $go get -u github.com/skynetservices/skydns $cd $GOPATH/src/github.com/skynets

  • 参考: [ skynetservice github ] [ skydns 测试记录 CSDN ] etcd 安装配置 安装 yum install etcd 配置 sed -i 's@ETCD_LISTEN_CLIENT_URLS=.*@ETCD_LISTEN_CLIENT_URLS="http://172.17.0.1:2379"@1' /etc/etcd/etcd.conf sed -i

  • Registrator Registrator 通过检查容器在线或停止,来自动为任何 Docker 容器注册和注销服务 Github 地址: https://github.com/gliderlabs/registrator 熟悉下 Registrator 有助于理解 Kubernets 的服务发现机制 SkyDNS SkyDNS 是一个域名解析服务器。使用 Etcd 作为后端存储 安装、部署可以

 相关资料
  • 服务发现服务[架构概述]。 { "cluster": "{...}", "refresh_delay_ms": "{...}" } cluster (required, object) 承载服务发现服务的上游群集的标准定义。该群集必须实现和运行SDS HTTP API的REST服务。 refresh_delay_ms (required, integer) 每次访问SDS群集的API延迟

  • Kubernetes中为了实现服务实例间的负载均衡和不同服务间的服务发现,创造了Serivce对象,同时又为从集群外部访问集群创建了Ingress对象。

  • 如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot

  • 我正在尝试一个非常简单的Istio设置Docker桌面库伯内特斯安装。 我有2个Spring Boot微服务,并在我的K8s“集群”中部署了这2个服务,没有任何复制。我的YAML文件中只有这两个服务的服务和部署。 我已经安装了 istio,我可以看到我的 pod 中有 2 个容器。一个是Spring靴应用程序,另一个是istio sidecar。 我像这样从服务2向服务1发出一个rest调用,它工

  • LbEndpoint LocalityLbEndpoints ClusterLoadAssignment ClusterLoadAssignment.Policy LbEndpoint LbEndpoint proto EndPoint是指Envoy可以将流量路由到的端口。 { "endpoint": "{...}", "metadata": "{...}", "load_balanc

  • 在配置上游群集时,Envoy需要知道解析这些群集的成员。这被称为服务发现。 支持的服务发现类型 静态 静态是最简单的服务发现类型。通过静态配置明确每个上游主机的网络名称(IP地址/端口,unix域套接字等)。 严格(Strict)DNS 当使用DNS服务发现时,Envoy将持续并异步地解析指定的DNS目标。DNS结果中的每个返回的IP地址将被视为上游群集中的显式主机。 这意味着如果查询返回三个IP