首先先了解下Kubernetes
1. 引言
在过去,我们在进行程序部署的时候,是直接将环境和程序统一配置部署到主机上,但是这样做容易造成程序与程序之间的混淆,所以为了处理这种问题,我们可以搭建一台不可变的虚拟机镜像,将环境和程序配置部署到虚拟机镜像中,但是虚拟机镜像部署存在体量过于庞大并且不可移动的问题,所以容器技术应运而生,容器技术是基于操作系统级别的虚拟化技术,各个容器与宿主机是隔离的,各个容器之间也是是隔离的,它比虚拟机镜像更容易搭建,并且可以很方便在不同的主机上移动。但是随着分布式、集群等技术在实际应用中越来越多,在实际的生产环境中,我们可能会涉及到多个容器,而这些容器可能会跨越多个服务器主机进行部署,所以一个基于容器技术的分布式架构解决方案应用而生,它就是Kubernetes。
2. Kubernetes的概念
Kubernetes(k8s)是一个基于容器技术的的分布式架构解决方案,是Google开源的容器集群管理系统,Google内部称为Borg,主要用于自动部署、扩展和管理容器化的应用程序,是以Docer为基础的分布式系统架构。 Kubernetes可以对分布式系统进行完美的支撑,它具备完善的集群控制能力,内建有智能的负载均衡器,拥有强大的故障发现和自我修复能力。同时还针对开发、部署测试、运维监控等提供了完善的管理工具。
Kubernetes的核心思想是:一切以服务为中心,根据这一核心思想,Kubernetes可以让在其上构建的系统独立运行在物理机、虚拟机群或者云上,所以,Service(服务)是Kubernetes进行分布式集群构建的核心,必须拥有如下关键特征:
拥有一个唯一指定的名称。 拥有一个虚拟IP和端口。
能够提供某种远程服务能力。
可以被映射到提供这种远程服务能力的一组容器应用上。
Kubernetes是什么?
Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行工作负载15年的经验,并吸收了来自于社区的最佳想法和实践。
Kubernetes有哪些功能?
1.自动装箱
·基于容器对应用运行环境的资源配置要求自动部署应用容器
2.自我修复(自愈能力)
·当容器失败时,会对容器进行重启
·当所部署的Node节点有问题时,会对容器进行重新部署和重新调度
·当容器未通过监控检查时,会关闭此容器
·直到容器正常运行时,才会对外提供服务
3.水平扩展
通过简单的命令、用户UI界面或基于CPU等资源使用情况,对应用容器进行规模扩大或规模剪裁
4.服务发现
用户不需要使用额外的服务发现机制,就能够基于Kubernetes自身能力实现服务发现和负载均衡
5.滚动更新
可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新
6.版本回退
可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退
7.密钥和配置管理
在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。
8.存储编排
自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph、Cinder等)公共云存储服务等
Kubernetes(K8S)教程,容器集群管理系统教程从入门到精通(新版)
Java最新课程:
Java零基础视频教程(2022最新Java入门,含斯坦福大学练习题+力扣算法题
Java基础入门:
java零基础自学首Java入门教程(含Java项目和Java真题)
Javaweb核心基础
JavaWeb基础教程,Java web从入门到企业实战完整版
Spring Cloud最全微服务架构:
史上最全面的springcloud微服务技术栈
Spring全套教程,入门到精通
Spring视频教程,全面深度讲解spring5底层原理
SSM框架教程:
SSM框架教程_Spring+SpringMVC+Maven高级+Spring
SpringBoot2全套视频教程:
SpringBoot2全套视频教程,springboot零基础到项目实战