首页 文章

Kubernetes架构 - Kubernetes集群管理和初始化节点

提问于
浏览
0

我正在尝试将我的部署方案从docker更改为kubernetes . 现在我探讨了kubernetes的体系结构 - 集群,节点,Pod,服务,副本集/控制器,Kubernetes-cni,kube-ctl ..等等 . 现在我需要开始部署到kubernetes集群 . 在我探索时,我发现了可以在同一台机器中创建单个节点和主机的文档和讨论,也可以在VM中创建 . 还找到了用于群集创建的kubespray和minikube文档 .

在这里,我加入了与kubernetes交手的困惑 . 如果我离开了我们的背景,请原谅我,因为我正处于学习期 .

  • 为了创建和使用kubernetes,为什么在同一个或虚拟机中存在类似单节点和主节点的变体?为什么集群容器存在偏差?

  • 如何决定是否需要在同一台机器上选择单节点和主机,或者我需要将Vms用于不同的节点?

  • Minikube和Kubespray如何在kubernetes架构中提供不同的方法?,因为kubernetes是单一来源的产品 - 谷歌 .

  • 如果我在我的ubuntu 16.04中安装kubeadm,kubernetes-cni和kubelet,我可以在同一台机器上启动节点吗?

任何人都可以帮我澄清这些混淆 . 作为一个好的首发,我面临着很多关于kubernetes架构的误解 . 因此,请通过提供建议和教程以适当的方式指导我 .

  • 提前致谢 -

1 回答

  • 1

    概念和术语的分类非常复杂,文档仍然非常稀疏 .

    1. For creating and working with kubernetes, 
    why there is a variation like single node and master in same or in VMs? 
    Why there is a deviation in cluster container?
    

    这种偏差是为了支持许多不同的使用案例 - 在他们的笔记本电脑上工作的容器工作负载开发人员在没有大量操作仪式的情kubernetes ops人们在小而真实的集群上学习和测试;适用于不同规模工厂的实际 生产环境 工作量 .

    对于第一种情况,对于容器工作负载开发,有一个名为minikube的软件,它类似于kubernetes的分布,可自动创建单个虚拟机 - 使用VirtualBox或其他桌面级虚拟机工具 - 预先配置为运行一个组合的kubernetes主和节点,足以运行真正的kubernetes工作负载,但在笔记本电脑上 .

    对于第二种情况,出于非 生产环境 目的,主机和工作器功能可以在单个机器上运行,或者单个主机可以与少量工作机器一起使用 .

    生产环境 kubernetes集群通常有3或5或7台主机 - 虚拟机或裸机 . 需要多个主服务器来维护etcd的仲裁 - 其中kubernetes存储所有运行时状态 - 在机器故障的情况下 . 3台主机允许1台主机在不中断集群的情况下发生故障 . 5个主人将容忍2个主机故障等 .

    这些主数据可以支持大量的工作机器 - 数十到数百个 - 运行容器工作负载 . 在 生产环境 环境中,不希望在主计算机上运行客户端工作负载 .

    2. How I can decide whether I need to choose single node and master 
    in same machine. Or do I need to use Vms for different nodes?
    

    见上文 - 开发,使用minikube . 对于 生产环境 ,如果您自己运行群集,则计划使用多个冗余主服务器,或使用 Cloud 提供商的托管kubernetes产品 .

    3. How the Minikube and Kubespray is providing different methodology
    in kubernetes architecture?
    

    Minikube仅用于开发 . Kubespray是构建 生产环境 集群时提供一些自动化帮助的众多工具之一 . Kubespray的显着特点是使用Ansible进行机器设置和自动化 . 根据您对Ansible和/或其竞争对手的满意度和兴趣,这可能是也可能不合适 .

    4. Why have so many options when kubernetes is the product of a 
    single source - google.
    

    Kubernetes当然起源于谷歌,但现在有许多公司的数百名或更多工程师,包括微软,亚马逊,RedHat,甲骨文和大量小公司,积极致力于此 . 这是一个了不起的项目 .

    5. If I am installing kubeadm, kubernetes-cni and kubelet in my ubuntu 16.04
    Can I initiate nodes in the same machine ?
    

    Kubeadm是一个设置工具,而不是 生产环境 运行时工具,但是,您可以在同一台机器上运行容器,而不是kubernetes主机所需的位 . 除了etcd,kubelet,apiserver,控制器管理器之外,你还需要运行Docker-Kubelet与Docker对话来安排容器 . 我只建议不要在这台机器上运行任何其他东西 - 不正确的配置会导致机器作为主人/ Worker 的问题,因此任何其他工作都将丢失 .

相关问题