🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## Kubernetes介绍 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用。 Kubernetes主要能帮助我们完成: - 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。 - 存储编排 Kubernetes 允许你自动挂载你选择的存储系统,比如本地存储,类似Docker的数据卷。 - 自动部署和回滚 你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。Kubernetes 会自动帮你根据情况部署创建新容器,并删除现有容器给新容器提供资源。 - 自动完成装箱计算 Kubernetes 允许你设置每个容器的资源,比如CPU和内存。 - 自我修复 Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的容器,并运行状况检查的容器。 - 秘钥与配置管理 Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。 ## Kubernetes架构 Kubernetes 搭建需要至少两个节点,一个Master负责管理,一个Slave搭建在工作服务器上负责分配。 | kubernetes架构 | | :----------------------------------------------------------: | | ![](https://img.kancloud.cn/49/4f/494f844d721f20333534626e9480feee_1378x735.png) | 从图中可以看到各个组件的基本功能: - API Server:作为K8s通讯的核心组件,K8s内部交互以及接收发送指令的组件。 - controller-manager:作为K8s的核心组件,主要做资源调度,根据集群情况分配资源 - etcd:一个key-value的数据库,存储存储集群的状态信息 - scheduler:负责调度每个工作节点 - cloud-controller-manager:负责调度其他云服务产品 - kubelet:管理Pods上面的容器。 - kube-proxy:负责处理其他Slave或客户端的请求。 - Pod:可以简单理解为就是k8s上运行的容器