【问题标题】:Setting Kubernetes DNS cluster addon for high availability设置 Kubernetes DNS 集群插件以实现高可用性
【发布时间】:2017-03-12 09:51:55
【问题描述】:

我们在 AWS 上使用 Kubernetes 1.3.6 目前,我们在系统命名空间上有一个集群插件的 DNS pod。 如果运行 pod 的节点由于某种原因出现故障,集群的 DNS 服务将被关闭,并且大部分都无法正常工作。

我的问题是:如何设置更强大的 DNS 服务?我可以只使用 kubectl 扩展复制控制器以获取更多 pod 吗?这行得通吗?

【问题讨论】:

  • github.com/kubernetes/kubernetes/pull/33239 很快就会出现(-ish),这应该让你这样做。
  • @AnirudhRamanathan PR 用于自动扩展 DNS。如果我为多个 pod 扩展复制控制器,今天会发生什么?

标签: kubernetes


【解决方案1】:

您可以手动扩展 DNS 插件(或更改 ReplicationController 的 spec.replicas,具体取决于您的部署方式)。

DNS 插件使用基本的 Kubernetes 对象来实现可用性,就像您可能部署的任何应用程序一样。它位于一个服务(默认称为kube-dns)的后面,该服务将spec.clusterIP 分配给kubelet 知道的相同IP 地址(通过--cluster-dns 标志)。 Service 是集群 DNS 的一致访问点,它将在您拥有的多个 kube-dns Pod 之间对请求进行负载平衡。

【讨论】:

  • 我想知道为什么它首先默认设置为单个 pod。如此关键的单点故障...
  • 根据我的经验,它总是被调度到另一个节点以防节点故障。这会在几秒钟内发生。
  • 部署 Kubernetes 的主要方法包括在创建集群时增加 kube-dns 副本数量的方法。例如,kube-up.sh 通常使用 env var DNS_REPLICAS 来覆盖默认值 1 (one example)。我认为这些安装程序的默认 1 个副本是决定以最少的资源使“踢轮胎”集群工作,而期望用户转向更严重的用例将自定义设置。
猜你喜欢
  • 2016-11-30
  • 1970-01-01
  • 2021-12-11
  • 2019-07-06
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多