Kubernetes官网:https://Kubernetes.io
Kubernetes中文社区:https://www.kubernetes.org.cn/docs
Kubernetes是什么
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理
。
被叫做K8S是因为k和s之间有八个英文字母,所有叫做k8s
Kubernetes通常结合docker容器工作
,并且整合多个运行着docker容器的主机集群
。
Kubernetes的目标:
让部署容器化的应用简单并且高效
Kubernetes一个核心特点
:
能够自主的管理容器来保证云平台中的容器按照用户的期望运行
Kubernetes相关特性
因为这些特性,所以Kubernetes可以高效的工作
自动包装:
根据资源需求和其他约束自动放置容器,同时不会牺牲可用性,混合关键和最大努力的工作负载,以提高资
源利用率并节省更多资源。
横向缩放
使用简单的命令或 UI,或者根据 CPU 的使用情况自动调整应用程序副本数。
自动部署和回滚
Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有
实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。
存储编排
自动安装您所选择的存储系统,无论是本地存储,如公有云提供商 GCP 或 AWS, 还是网络存储系统 NFS,
iSCSI, Gluster, Ceph, Cinder, 或 Flocker。
自我修复
重新启动失败的容器,在节点不可用时,替换和重新编排节点上的容器,终止不对用户定义的健康检查做出
响应的容器,并且不会在客户端准备投放之前将其通告给客户端。
服务发现和负载均衡
不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容
器的单个 DNS 名称,并可以在它们之间进行负载均衡。
密钥和配置管理
部署和更新密钥和应用程序配置,不会重新编译您的镜像,不会在堆栈配置中暴露密钥(secrets)。
批处理
除了服务之外,Kubernetes还可以管理您的批处理和 CI 工作负载,如果需要,替换出现故障的容器。
Kubernetes作用
Kubernetes是一个基于容器技术的分布式架构领先方案
(源于Brog);
Kubernetes是一个开放的开发平台;
因为无侵入性,所以现在的系统很容易迁入到k8s上面
Kubernetes是一个完备的分布式系统支撑平台
完善的集群管理能力
使用Kubernetes可以在物理或虚拟机的Kubernetes集群上运行容器化应用,
Kubernetes能够提供一个以容器为中心的基础架构
,满足在生产环境中运行应用的一些常见需求,
常见需求如下:
多个进程协同工作
存储系统挂载
Distributing secrets
应用健康检测
应用实例的复制
Pod自动伸缩/扩展
Naming and discovering
负载均衡
滚动更新
资源监控
日志访问
调度应用程序
提供认证和授权
使用k8s的好处
1.轻装上阵的开发复杂的系统
2.在全面拥抱微服务架构,可以帮助我们去简化操作,动态的扩容
微服务的核心就是将一个巨大的单体应用拆分成很多小的互相连接的微服务,一个微服务后面可能是多个实例副本在支撑,副本数量可以随着系统负荷的变化而动态调整
3.具备超强的横向扩展能力