概念
Kubernetes(通常称为“K8s”)是一个开源系统,用于自动部署、扩展和管理容器化应用程序,最初由谷歌设计并捐赠给云原生计算基金会。<br><br>它旨在提供一个“用于跨主机集群自动部署、扩展和操作应用程序容器的平台”。<br><br>它支持一系列容器工具,包括 Docker
Kubernetes 作为一个容器集群管理系统,用于管理云平台中多个主机上的容器应用,<br><br>Kubernetes 的目标是让部署容器化的应用变得简单且高效,<br><br>所以 Kubernetes 提供了应用部署,规划,更新,维护的一整套完整的机制。
Kubernetes 没有固定要求容器的格式,但是 Kubernetes 使用它自己的 API 和命令行接口来进行容器编排。<br><br>除了 Docker 容器之外,Kubernetes 还支持其他多种容器,如 <font color="#00ff00">rkt、CoreOS</font> 等。<br><br>Kubernetes 是自成体系的管理工具,可以实现<font color="#00ff00">容器调度,资源管理,服务发现,健康检查,自动伸缩,更新升级</font>等,<br><br>也可以在应用模版配置中指定副本数量,服务要求(IO 优先;性能优先等),资源使用区间,标签(Labels等)来匹配特定要求达到预期状态等,<br><br>这些特征便足以征服开发者,再加上 Kubernetes 有一个非常活跃的社区。<br><br>它为用户提供了更多的选择以方便用户扩展编排容器来满足他们的需求。<br><br>但是由于 Kubernetes 使用了自己的 API 接口,所以命令系统是另外一套系统,这也是 kubernetes 门槛比较高的原因所在。<br>
大部分的应用程序我们在部署的时候都会适当的添加监控,对于运行载体容器则更应该如此。<br><br>kubernetes 提供了 liveness probes 来检查我们的应用程序,它是由节点上的 kubelet 定期执行的。
功能
Automated rollouts and rollbacks<br><br>自动推出和回滚
Kubernetes 逐步推出对您的应用程序或其配置的更改,<br>同时监控应用程序的运行状况以确保它不会同时杀死您的所有实例。<br><br>如果出现问题,Kubernetes 将为您回滚更改。<br>利用不断发展的部署解决方案生态系统。
Service discovery and load balancing<br><br>服务发现和负载均衡
无需修改您的应用程序以使用不熟悉的服务发现机制。<br><br>Kubernetes 为 Pod 提供了自己的 IP 地址和一组 Pod 的单个 DNS 名称,<br>并且可以在它们之间进行负载平衡。
Storage orchestration<br><br>存储编排
自动挂载您选择的存储系统,无论是来自本地存储、 GCP或AWS等公共云提供商,<br><br>还是 NFS、iSCSI、Gluster、Ceph、Cinder 或 Flocker 等网络存储系统。
Secret and configuration management<br><br>秘密和配置管理
部署和更新机密和应用程序配置,而无需重建映像,也不会在堆栈配置中暴露机密。
Automatic bin packing<br><br>自动装箱
根据资源需求和其他限制自动放置容器,同时不牺牲可用性。<br><br>混合关键工作负载和尽力而为的工作负载,以提高利用率并节省更多资源。
Batch execution<br><br>批量执行
除了服务之外,Kubernetes 还可以管理您的批处理和 CI 工作负载,<br><br>如果需要,可以替换失败的容器。
IPv4/IPv6 dual-stack<br><br>IPv4/IPv6双栈
将 IPv4 和 IPv6 地址分配给 Pod 和服务
Horizontal scaling<br><br>水平缩放
使用简单的命令、使用 UI 或根据 CPU 使用情况自动缩放您的应用程序。
Self-healing<br><br>自我修复
重新启动失败的容器,在节点死亡时替换和重新调度容器,杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不会将它们通告给客户端。
Designed for extensibility<br><br>专为可扩展性而设计<br>
<br>在不更改上游源代码的情况下向 Kubernetes 集群添加功能。
官网
https://kubernetes.io/
将150多个微服务迁移到k8s
https://youtu.be/H06qrNmGqyE
k8s源码解析
https://github.com/ddfeiyu/understanding-kubernetes