您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    我们如何做到不停机将ZooKeeper迁移到Kubernetes(2)
    时间:2020-05-06 21:39 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    接上去,我们将让 ZooKeeper 效劳器经过 ClusterIP 效劳停止点对点通讯。为此,我们将结合 ClusterIP 效劳的地址来修正配置文件。这里还需求配置 zk_quorum_listen_all_ips 标志,假设没有这个,ZooKeeper 实例将无法成功绑定到主机接口上不存在的 IP 地址,由于它是一个 Kube 效劳 IP。

    server.1=zk1-kube-svc-0:2888:3888 

    server.2=zk2-kube-svc-1:2888:3888 

    server.3=zk3-kube-svc-2:2888:3888 

    zk_quorum_listen_all_ips: true 

    server.1=zk1-kube-svc-0:2888:3888server.2=zk2-kube-svc-1:2888:3888server.3=zk3-kube-svc-2:2888:3888zk_quorum_listen_all_ips: true

    滚动重新启动这些主机,前面就可以末尾预备用 Pod 交流主机了。

    我们如何做到不停机将ZooKeeper迁移到Kubernetes

    图 4:ZooKeeper 实例如今经过 ClusterIP 效劳与其他实例通讯

    运用 Pod 替代 ZooKeeper 主机

    我们将停止以下这些步骤,每次操作一台效劳器:

    选择一台 ZooKeeper 效劳器及其相应的 ClusterIP 效劳;

    封锁效劳器上的 ZooKeeper 进程;

    运用与被封锁的 ZooKeeper 具有相反效劳器列表配置和 myid 文件的 Pod;

    等候,直到 Pod 中的 ZooKeeper 启动,并与其他 ZooKeeper 节点的数据同步。

    就这样,ZooKeeper 集群如今运转在 Kubernetes 中,并带有之前一切的数据。

    图 5:经过交流后的集群。ZK1 运转在一个 Pod 中,而 ZK2 不需求知道发作了什么

    网络先决条件

    要顺利完成这些步骤,需求确保一些网络设置契合条件。你需求确保:

    可以从一切需求衔接到 ZooKeeper 的效劳重视新路由 Kubernetes Pod 的 IP 地址;

    一切衔接到 ZooKeeper 的效劳器必须可以解析 Kubernetes 效劳主机名;

    一切需求衔接到 ZooKeeper 的效劳器必须运转 kube-proxy,让它们可以拜访 ClusterIP 效劳。

    这些可以经过几种方式来完成。我们运用了一个外部网络插件,相似于 Lyft 的插件:

    https://github.com/aws/amazon-vpc-cni-k8s

    或许 AWS 插件:

    https://github.com/lyft/cni-ipvlan-vpc-k8s

    可以直接将 AWS VPC IP 地址分配给 Pod,而不是运用虚拟叠加网络,所以可以从恣意实例重新路由 Pod 的 IP。叠加网络(如 flannel)也是可以的,只需一切的效劳器都可以衔接到叠加网络。

    【编辑引荐】

    基于Kubernetes的多云和混合云

    Kubernetes中的不足也是坏事

    用于监视 Kubernetes 和 Docker 的六大开源工具

    如何轻松学习 Kubernetes?

    开源、弱小的Linux效劳器集群管理工具!

    (责任编辑:admin)